lkml.org 
[lkml]   [2020]   [Aug]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [RESEND RFC v2 0/2] add bus lock VM exit support
From
Date
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(-)
>

\
 
 \ /
  Last update: 2020-08-26 12:00    [W:0.045 / U:1.496 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site