android_kernel_samsung_msm8976/arch/arm64/kvm
Marc Zyngier 06e55300b2 arm64: KVM: Yield CPU when vcpu executes a WFE
On an (even slightly) oversubscribed system, spinlocks are quickly
becoming a bottleneck, as some vcpus are spinning, waiting for a
lock to be released, while the vcpu holding the lock may not be
running at all.

The solution is to trap blocking WFEs and tell KVM that we're
now spinning. This ensures that other vpus will get a scheduling
boost, allowing the lock to be released more quickly. Also, using
CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT slightly improves the performance
when the VM is severely overcommited.

Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Git-commit: d241aac798eb042e605f78c31a4122e583b2cd13
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Ian Maund <imaund@codeaurora.org>
2014-02-07 13:49:56 -08:00
..
emulate.c arm64: KVM: 32bit conditional execution emulation 2014-02-07 13:49:35 -08:00
guest.c ARM64: KVM: Implement kvm_vcpu_preferred_target() function 2014-02-07 13:49:49 -08:00
handle_exit.c arm64: KVM: Yield CPU when vcpu executes a WFE 2014-02-07 13:49:56 -08:00
hyp-init.S arm64: KVM: hypervisor initialization code 2014-02-07 13:49:32 -08:00
hyp.S arm64: KVM: add missing dsb before invalidating Stage-2 TLBs 2014-02-07 13:49:42 -08:00
inject_fault.c arm64: KVM: 32bit guest fault injection 2014-02-07 13:49:36 -08:00
Kconfig arm64: KVM: Yield CPU when vcpu executes a WFE 2014-02-07 13:49:56 -08:00
Makefile arm64: KVM: 32bit conditional execution emulation 2014-02-07 13:49:35 -08:00
regmap.c arm64: KVM: 32bit GP register access 2014-02-07 13:49:35 -08:00
reset.c arm64: KVM: enable initialization of a 32bit vcpu 2014-02-07 13:49:36 -08:00
sys_regs.c arm64: KVM: perform save/restore of PAR_EL1 2014-02-07 13:49:42 -08:00
sys_regs.h
sys_regs_generic_v8.c arm64: KVM: CPU specific 32bit coprocessor access 2014-02-07 13:49:35 -08:00