2018-03-12 19:53 GMT+08:00 Wanpeng Li <kernellwp@xxxxxxxxx>: > Provides userspace with per-VM capability(KVM_CAP_X86_DISABLE_EXITS) to > not intercept MWAIT/HLT/PAUSE in order that to improve latency in some > workloads. When running cyclictest in the guest w/ vCPU pin on host and cyclictest pin in guest, the avg latency can be reduced 40%. Regards, Wanpeng Li > > The patchset implements the original proposal from Radim. > https://www.spinics.net/lists/kvm/msg146879.html > > In addition, thanks to Jan H. Schönherr's attempt last year. > > v1 -> v2: > * remove blinding setting KVM_ENABLE_CAP statement in doc > * move PV_UNHALT associated statement to 2/3 > * rename kvm_mwait_can_in_guest to kvm_can_mwait_in_guest > * remove unconditionally set INTERCEPT HLT in svm > * call vmx_clear_hlt() from pre_enter_smm() > * add a check to kvm_update_cpuid() that forbits KVM_FEATURE_PV_UNHALT > when halt exits are disabld > > Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> > Cc: Radim Krčmář <rkrcmar@xxxxxxxxxx> > Cc: Jan H. Schönherr <jschoenh@xxxxxxxxx> > > Wanpeng Li (3): > KVM: X86: Provides userspace with a capability to not intercept MWAIT > KVM: X86: Provides userspace with a capability to not intercept HLT > KVM: X86: Provides userspace with a capability to not intercept PAUSE > > Documentation/virtual/kvm/api.txt | 24 ++++++++++++------- > arch/x86/include/asm/kvm_host.h | 4 ++++ > arch/x86/kvm/cpuid.c | 5 ++++ > arch/x86/kvm/svm.c | 9 ++++--- > arch/x86/kvm/vmx.c | 50 ++++++++++++++++++++++++++++++++------- > arch/x86/kvm/x86.c | 29 +++++++++++++++++++---- > arch/x86/kvm/x86.h | 24 +++++++++++++++---- > include/uapi/linux/kvm.h | 2 +- > tools/include/uapi/linux/kvm.h | 2 +- > 9 files changed, 118 insertions(+), 31 deletions(-) > > -- > 2.7.4 >