On 10/08/2013 11:08 PM, Marc Zyngier wrote:
This is a respin of a patch I posted a long while ago, this time with numbers that I hope to be convincing enough. The basic idea is that spinning on WFE in a guest is a waste of resource, and that we're better of running another vcpu instead. This specially shows when the system is oversubscribed. The guest vcpus can be seen spinning, waiting for a lock to be released while the lock holder is nowhere near a physical CPU. This patch series just enables WFE trapping on both ARM and arm64, and calls kvm_vcpu_on_spin(). This is enough to boost other vcpus, and dramatically reduce the overhead. Branch available at: git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git kvm-arm64/wfe-trap Changes from v1: - Added CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT, as it seems to give slightly better results (Thanks to Raghavendra K T) - Updated commit message with results of 8x configuration Marc Zyngier (2): ARM: KVM: Yield CPU when vcpu executes a WFE arm64: KVM: Yield CPU when vcpu executes a WFE
Using PLE handler and enabling CPU_RELAX_INTERCEPT part of the patches looks fine. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html