mbox series

[RESEND,RFC,v2,0/2] add bus lock VM exit support

Message ID 20200817033604.5836-1-chenyi.qiang@intel.com (mailing list archive)
Headers show
Series add bus lock VM exit support | expand

Message

Chenyi Qiang Aug. 17, 2020, 3:36 a.m. UTC
Resend to rebase on 5.9-rc1.

---

Add the support for bus lock VM exit in KVM. It is a sub-feature of bus
lock detection. Another sub-feature named bus lock debug exception is
blocked due to requirement to rework the HW design:
https://lore.kernel.org/lkml/87r1stmi1x.fsf@nanos.tec.linutronix.de/

In this patch series, the first patch applies Sean's refactor to
vcpu_vmx.exit_reason available at
https://patchwork.kernel.org/patch/11500659.
It is necessary as bus lock VM exit adds a new modifier bit(bit 26) in
exit_reason field in VMCS.

The second patch is the enabling work for bus lock VM exit. Add the
support to set the capability to enable bus lock vm exit. The current
implementation just exit to user space when handling the bus lock
detected in guest.

The concrete throttling policy in user space still needs to be
discussed. We can enforce ratelimit on bus lock in guest, just inject
some sleep time, or any other ideas?

Document for Bus Lock Detection is now available at the latest "Intel
Architecture Instruction Set Extensions Programming Reference".

Document Link:
https://software.intel.com/content/www/us/en/develop/download/intel-architecture-instruction-set-extensions-programming-reference.html


v1->v2 Changelogs:
- resolve Vitaly's comment to introduce the KVM_EXIT_BUS_LOCK and a
  capability to enable it.
- add the support to exit to user space when handling bus locks.
- extend the vcpu->run->flags to indicate bus lock detected for other
  exit reasons when exiting to user space.

Chenyi Qiang (1):
  KVM: VMX: Enable bus lock VM exit

Sean Christopherson (1):
  KVM: VMX: Convert vcpu_vmx.exit_reason to a union

 arch/x86/include/asm/kvm_host.h    |  9 +++
 arch/x86/include/asm/vmx.h         |  1 +
 arch/x86/include/asm/vmxfeatures.h |  1 +
 arch/x86/include/uapi/asm/kvm.h    |  1 +
 arch/x86/include/uapi/asm/vmx.h    |  4 +-
 arch/x86/kvm/vmx/capabilities.h    |  6 ++
 arch/x86/kvm/vmx/nested.c          | 42 ++++++++-----
 arch/x86/kvm/vmx/vmx.c             | 97 ++++++++++++++++++++----------
 arch/x86/kvm/vmx/vmx.h             | 25 +++++++-
 arch/x86/kvm/x86.c                 | 36 ++++++++++-
 arch/x86/kvm/x86.h                 |  5 ++
 include/uapi/linux/kvm.h           |  2 +
 12 files changed, 179 insertions(+), 50 deletions(-)

Comments

Chenyi Qiang Aug. 26, 2020, 9:57 a.m. UTC | #1
Ping for comments

On 8/17/2020 11:36 AM, Chenyi Qiang wrote:
> Resend to rebase on 5.9-rc1.
> 
> ---
> 
> Add the support for bus lock VM exit in KVM. It is a sub-feature of bus
> lock detection. Another sub-feature named bus lock debug exception is
> blocked due to requirement to rework the HW design:
> https://lore.kernel.org/lkml/87r1stmi1x.fsf@nanos.tec.linutronix.de/
> 
> In this patch series, the first patch applies Sean's refactor to
> vcpu_vmx.exit_reason available at
> https://patchwork.kernel.org/patch/11500659.
> It is necessary as bus lock VM exit adds a new modifier bit(bit 26) in
> exit_reason field in VMCS.
> 
> The second patch is the enabling work for bus lock VM exit. Add the
> support to set the capability to enable bus lock vm exit. The current
> implementation just exit to user space when handling the bus lock
> detected in guest.
> 
> The concrete throttling policy in user space still needs to be
> discussed. We can enforce ratelimit on bus lock in guest, just inject
> some sleep time, or any other ideas?
> 
> Document for Bus Lock Detection is now available at the latest "Intel
> Architecture Instruction Set Extensions Programming Reference".
> 
> Document Link:
> https://software.intel.com/content/www/us/en/develop/download/intel-architecture-instruction-set-extensions-programming-reference.html
> 
> 
> v1->v2 Changelogs:
> - resolve Vitaly's comment to introduce the KVM_EXIT_BUS_LOCK and a
>    capability to enable it.
> - add the support to exit to user space when handling bus locks.
> - extend the vcpu->run->flags to indicate bus lock detected for other
>    exit reasons when exiting to user space.
> 
> Chenyi Qiang (1):
>    KVM: VMX: Enable bus lock VM exit
> 
> Sean Christopherson (1):
>    KVM: VMX: Convert vcpu_vmx.exit_reason to a union
> 
>   arch/x86/include/asm/kvm_host.h    |  9 +++
>   arch/x86/include/asm/vmx.h         |  1 +
>   arch/x86/include/asm/vmxfeatures.h |  1 +
>   arch/x86/include/uapi/asm/kvm.h    |  1 +
>   arch/x86/include/uapi/asm/vmx.h    |  4 +-
>   arch/x86/kvm/vmx/capabilities.h    |  6 ++
>   arch/x86/kvm/vmx/nested.c          | 42 ++++++++-----
>   arch/x86/kvm/vmx/vmx.c             | 97 ++++++++++++++++++++----------
>   arch/x86/kvm/vmx/vmx.h             | 25 +++++++-
>   arch/x86/kvm/x86.c                 | 36 ++++++++++-
>   arch/x86/kvm/x86.h                 |  5 ++
>   include/uapi/linux/kvm.h           |  2 +
>   12 files changed, 179 insertions(+), 50 deletions(-)
>