mbox series

[00/15] Unify MSR intercepts in x86

Message ID 20241127201929.4005605-1-aaronlewis@google.com (mailing list archive)
Headers show
Series Unify MSR intercepts in x86 | expand

Message

Aaron Lewis Nov. 27, 2024, 8:19 p.m. UTC
The goal of this series is to unify MSR intercepts into common code between
VMX and SVM.

The high level structure of this series is to:
 1. Modify SVM MSR intercepts to adopt how VMX does it.
 2. Hoist the newly updated SVM MSR intercept implementation to common x86 code.
 3. Hoist the VMX MSR intercept implementation to common x86 code.

Aaron Lewis (8):
  KVM: SVM: Invert the polarity of the "shadow" MSR interception bitmaps
  KVM: SVM: Track MSRPM as "unsigned long", not "u32"
  KVM: x86: SVM: Adopt VMX style MSR intercepts in SVM
  KVM: SVM: Don't "NULL terminate" the list of possible passthrough MSRs
  KVM: x86: Track possible passthrough MSRs in kvm_x86_ops
  KVM: x86: Move ownership of passthrough MSR "shadow" to common x86
  KVM: x86: Hoist SVM MSR intercepts to common x86 code
  KVM: x86: Hoist VMX MSR intercepts to common x86 code

Anish Ghulati (2):
  KVM: SVM: Disable intercepts for all direct access MSRs on MSR filter changes
  KVM: SVM: Delete old SVM MSR management code

Sean Christopherson (5):
  KVM: x86: Use non-atomic bit ops to manipulate "shadow" MSR intercepts
  KVM: SVM: Use non-atomic bit ops to manipulate MSR interception bitmaps
  KVM: SVM: Pass through GHCB MSR if and only if VM is SEV-ES
  KVM: SVM: Drop "always" flag from list of possible passthrough MSRs
  KVM: VMX: Make list of possible passthrough MSRs "const"

 arch/x86/include/asm/kvm-x86-ops.h |   5 +-
 arch/x86/include/asm/kvm_host.h    |  18 ++
 arch/x86/kvm/svm/sev.c             |  11 +-
 arch/x86/kvm/svm/svm.c             | 300 ++++++++++++-----------------
 arch/x86/kvm/svm/svm.h             |  30 +--
 arch/x86/kvm/vmx/main.c            |  30 +++
 arch/x86/kvm/vmx/vmx.c             | 144 +++-----------
 arch/x86/kvm/vmx/vmx.h             |  11 +-
 arch/x86/kvm/x86.c                 | 129 ++++++++++++-
 arch/x86/kvm/x86.h                 |   3 +
 10 files changed, 358 insertions(+), 323 deletions(-)

Comments

Sean Christopherson Nov. 27, 2024, 8:56 p.m. UTC | #1
On Wed, Nov 27, 2024, Aaron Lewis wrote:
> The goal of this series is to unify MSR intercepts into common code between
> VMX and SVM.
> 
> The high level structure of this series is to:
>  1. Modify SVM MSR intercepts to adopt how VMX does it.
>  2. Hoist the newly updated SVM MSR intercept implementation to common x86 code.
>  3. Hoist the VMX MSR intercept implementation to common x86 code.
> 
> Aaron Lewis (8):
>   KVM: SVM: Invert the polarity of the "shadow" MSR interception bitmaps
>   KVM: SVM: Track MSRPM as "unsigned long", not "u32"
>   KVM: x86: SVM: Adopt VMX style MSR intercepts in SVM
>   KVM: SVM: Don't "NULL terminate" the list of possible passthrough MSRs
>   KVM: x86: Track possible passthrough MSRs in kvm_x86_ops
>   KVM: x86: Move ownership of passthrough MSR "shadow" to common x86
>   KVM: x86: Hoist SVM MSR intercepts to common x86 code
>   KVM: x86: Hoist VMX MSR intercepts to common x86 code
> 
> Anish Ghulati (2):
>   KVM: SVM: Disable intercepts for all direct access MSRs on MSR filter changes
>   KVM: SVM: Delete old SVM MSR management code
> 
> Sean Christopherson (5):
>   KVM: x86: Use non-atomic bit ops to manipulate "shadow" MSR intercepts
>   KVM: SVM: Use non-atomic bit ops to manipulate MSR interception bitmaps
>   KVM: SVM: Pass through GHCB MSR if and only if VM is SEV-ES
>   KVM: SVM: Drop "always" flag from list of possible passthrough MSRs
>   KVM: VMX: Make list of possible passthrough MSRs "const"
> 
>  arch/x86/include/asm/kvm-x86-ops.h |   5 +-
>  arch/x86/include/asm/kvm_host.h    |  18 ++
>  arch/x86/kvm/svm/sev.c             |  11 +-
>  arch/x86/kvm/svm/svm.c             | 300 ++++++++++++-----------------
>  arch/x86/kvm/svm/svm.h             |  30 +--
>  arch/x86/kvm/vmx/main.c            |  30 +++
>  arch/x86/kvm/vmx/vmx.c             | 144 +++-----------
>  arch/x86/kvm/vmx/vmx.h             |  11 +-
>  arch/x86/kvm/x86.c                 | 129 ++++++++++++-
>  arch/x86/kvm/x86.h                 |   3 +
>  10 files changed, 358 insertions(+), 323 deletions(-)
> 
> -- 
> 2.47.0.338.g60cca15819-goog

Please use `git format-patch` with `--base`, and in general read
Documentation/process/maintainer-kvm-x86.rst and
Documentation/process/maintainer-tip.rst