qemu/target-arm
Peter Maydell 72c1d3af6e 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>
2014-03-10 14:56:30 +00:00
..
arm-semi.c exec: Change cpu_memory_rw_debug() argument to CPUState 2013-07-23 02:41:33 +02:00
cpu64.c target-arm: A64: Make cache ID registers visible to AArch64 2014-02-26 17:20:01 +00:00
cpu-qom.h target-arm: Implement AArch64 ID and feature registers 2014-02-26 17:20:05 +00:00
cpu.c target-arm: Add support for AArch32 ARMv8 CRC32 instructions 2014-02-26 17:20:07 +00:00
cpu.h target-arm: Implements the ARM PMCCNTR register 2014-03-10 14:56:28 +00:00
crypto_helper.c target-arm: add support for v8 AES instructions 2013-12-17 19:42:25 +00:00
gdbstub64.c target-arm: Clean up handling of AArch64 PSTATE 2013-12-17 19:42:30 +00:00
gdbstub.c cpu: Introduce CPUClass::gdb_{read,write}_register() 2013-07-27 00:04:17 +02:00
helper-a64.c target-arm: A64: Implement remaining 3-same instructions 2014-02-20 10:35:50 +00:00
helper-a64.h target-arm: A64: Implement remaining 3-same instructions 2014-02-20 10:35:50 +00:00
helper.c target-arm: Implements the ARM PMCCNTR register 2014-03-10 14:56:28 +00:00
helper.h target-arm: Implement WFE as a yield operation 2014-03-10 14:56:30 +00:00
iwmmxt_helper.c misc: Use new rotate functions 2013-09-25 21:23:05 +02:00
kvm32.c target-arm/kvm: Split 32 bit only code into its own file 2013-12-17 19:42:29 +00:00
kvm64.c target-arm: Add minimal KVM AArch64 support 2013-12-17 19:42:30 +00:00
kvm_arm.h arm: vgic device control api support 2014-02-26 17:20:00 +00:00
kvm-consts.h target-arm/kvm-consts.h: Define QEMU constants for known KVM CPUs 2014-02-20 10:35:50 +00:00
kvm-stub.c target-arm: Initialize cpreg list from KVM when using KVM 2013-06-25 18:16:10 +01:00
kvm.c arm: vgic device control api support 2014-02-26 17:20:00 +00:00
machine.c target-arm: Widen exclusive-access support struct fields to 64 bits 2014-01-08 19:07:20 +00:00
Makefile.objs target-arm: A64: add stubs for a64 specific helpers 2013-12-17 19:42:32 +00:00
neon_helper.c target-arm: A64: Implement remaining 3-same instructions 2014-02-20 10:35:50 +00:00
op_addsub.h Correct spelling of licensed 2011-07-23 11:26:12 -05:00
op_helper.c target-arm: Implement WFE as a yield operation 2014-03-10 14:56:30 +00:00
translate-a64.c target-arm: Fix intptr_t vs tcg_target_long 2014-03-10 14:56:29 +00:00
translate.c target-arm: Implement WFE as a yield operation 2014-03-10 14:56:30 +00:00
translate.h target-arm: Implement WFE as a yield operation 2014-03-10 14:56:30 +00:00