diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2013-08-02 11:41:13 +0100 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2013-10-29 18:25:25 +0000 |
commit | d241aac798eb042e605f78c31a4122e583b2cd13 (patch) | |
tree | 0b2f77cfbf32cfd1ff8b46a302d4480d9cb5c8ae /arch/arm64/kvm/Kconfig | |
parent | 4a10c2ac2f368583138b774ca41fac4207911983 (diff) | |
download | linux-d241aac798eb042e605f78c31a4122e583b2cd13.tar.gz linux-d241aac798eb042e605f78c31a4122e583b2cd13.tar.bz2 linux-d241aac798eb042e605f78c31a4122e583b2cd13.zip |
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>
Diffstat (limited to 'arch/arm64/kvm/Kconfig')
-rw-r--r-- | arch/arm64/kvm/Kconfig | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig index 21e90820bd23..4480ab339a00 100644 --- a/arch/arm64/kvm/Kconfig +++ b/arch/arm64/kvm/Kconfig @@ -21,6 +21,7 @@ config KVM select MMU_NOTIFIER select PREEMPT_NOTIFIERS select ANON_INODES + select HAVE_KVM_CPU_RELAX_INTERCEPT select KVM_MMIO select KVM_ARM_HOST select KVM_ARM_VGIC |