Re: [PATCH v2 0/3] Provides userspace with per-VM capability to improve latency

From: Wanpeng Li
Date: Wed May 23 2018 - 06:28:42 EST


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
>