OSDN Git Service

target-arm: Implement WFE as a yield operation
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 10 Mar 2014 14:56:30 +0000 (14:56 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 10 Mar 2014 14:56:30 +0000 (14:56 +0000)
commit72c1d3af6e9c2745edfeaa71918a68bcee4b79db
treed7d01966c8d75f5427fc2a9bce5994b17fe79253
parent2b194951c592ad670ddf3bc5764216408ade46f8
target-arm: Implement WFE as a yield operation

Implement WFE to yield our timeslice to the next CPU.
This avoids slowdowns in multicore configurations caused
by one core busy-waiting on a spinlock which can't possibly
be unlocked until the other core has an opportunity to run.
This speeds up my test case A15 dual-core boot by a factor
of three (though it is still four or five times slower than
a single-core boot).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1393339545-22111-1-git-send-email-peter.maydell@linaro.org
Reviewed-by: Richard Henderson <rth@twiddle.net>
Tested-by: Rob Herring <rob.herring@linaro.org>
include/exec/cpu-defs.h
target-arm/helper.h
target-arm/op_helper.c
target-arm/translate.c
target-arm/translate.h