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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
>




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux