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