mbox series

[GIT,PULL] KVM: x86: Fixes and cleanups for 6.2

Message ID Y4lHxds8pvBhxXFX@google.com (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL] KVM: x86: Fixes and cleanups for 6.2 | expand

Pull-request

https://github.com/kvm-x86/linux.git tags/kvm-x86-fixes-6.2-1

Message

Sean Christopherson Dec. 2, 2022, 12:33 a.m. UTC
Please pull misc x86 fixes and cleanups that have been floating around for a
while.  These haven't been plugged into any bot-visible branch; I forgot about
most of them until doing a bit of fall/winter cleaning.  That said, the only
one that is substantially complex is Anton's TSC snapshot fix, and that's been
on the lists for many months.

Jim's IBPB fix is arguably fodder for 6.1, but the bug has been around for
2+ years so squeezing it in this late in the cycle doesn't seem necessary.

Holler if any of these give you pause!

Thanks!


The following changes since commit df0bb47baa95aad133820b149851d5b94cbc6790:

  KVM: x86: fix uninitialized variable use on KVM_REQ_TRIPLE_FAULT (2022-11-30 11:50:39 -0500)

are available in the Git repository at:

  https://github.com/kvm-x86/linux.git tags/kvm-x86-fixes-6.2-1

for you to fetch changes up to 3ebcbd2244f5a69e06e5f655bfbd8127c08201c7:

  KVM: x86: Use current rather than snapshotted TSC frequency if it is constant (2022-11-30 16:31:27 -0800)

----------------------------------------------------------------
Misc KVM x86 fixes and cleanups for 6.2:

 - One-off fixes for various emulation flows (SGX, VMXON, NRIPS=0).

 - Reinstate IBPB on emulated VM-Exit that was incorrectly dropped a few
   years back when eliminating unnecessary barriers when switching between
   vmcs01 and vmcs02.

 - Clean up the MSR filter docs.

 - Clean up vmread_error_trampoline() to make it more obvious that params
   must be passed on the stack, even for x86-64.

 - Let userspace set all supported bits in MSR_IA32_FEAT_CTL irrespective
   of the current guest CPUID.

 - Fudge around a race with TSC refinement that results in KVM incorrectly
   thinking a guest needs TSC scaling when running on a CPU with a
   constant TSC, but no hardware-enumerated TSC frequency.

----------------------------------------------------------------
Anton Romanov (1):
      KVM: x86: Use current rather than snapshotted TSC frequency if it is constant

Jim Mattson (2):
      KVM: VMX: Guest usage of IA32_SPEC_CTRL is likely
      KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS

Peng Hao (1):
      KVM: x86: Keep the lock order consistent between SRCU and gpc spinlock

Sean Christopherson (12):
      KVM: VMX: Resume guest immediately when injecting #GP on ECREATE
      KVM: x86: Fail emulation during EMULTYPE_SKIP on any exception
      KVM: SVM: Skip WRMSR fastpath on VM-Exit if next RIP isn't valid
      KVM: nVMX: Inject #GP, not #UD, if "generic" VMXON CR0/CR4 check fails
      KVM: x86: Delete documentation for READ|WRITE in KVM_X86_SET_MSR_FILTER
      KVM: x86: Reword MSR filtering docs to more precisely define behavior
      KVM: x86: Clean up KVM_CAP_X86_USER_SPACE_MSR documentation
      KVM: nVMX: Reword comments about generating nested CR0/4 read shadows
      KVM: VMX: Make vmread_error_trampoline() uncallable from C code
      KVM: VMX: Allow userspace to set all supported FEATURE_CONTROL bits
      KVM: VMX: Move MSR_IA32_FEAT_CTL.LOCKED check into "is valid" helper
      KVM: selftests: Verify userspace can stuff IA32_FEATURE_CONTROL at will

Zhao Liu (1):
      KVM: SVM: Replace kmap_atomic() with kmap_local_page()

 Documentation/virt/kvm/api.rst                         | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------
 arch/x86/kvm/svm/sev.c                                 |   4 ++--
 arch/x86/kvm/svm/svm.c                                 |  10 ++++++++--
 arch/x86/kvm/vmx/nested.c                              |  80 +++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
 arch/x86/kvm/vmx/nested.h                              |   7 ++++---
 arch/x86/kvm/vmx/sgx.c                                 |   4 +++-
 arch/x86/kvm/vmx/vmenter.S                             |   2 ++
 arch/x86/kvm/vmx/vmx.c                                 |  51 ++++++++++++++++++++++++++++++++++++++----------
 arch/x86/kvm/vmx/vmx_ops.h                             |  18 +++++++++++++++--
 arch/x86/kvm/x86.c                                     |  48 +++++++++++++++++++++++++++++++++------------
 arch/x86/kvm/xen.c                                     |   4 ++--
 tools/testing/selftests/kvm/include/x86_64/processor.h |   2 ++
 tools/testing/selftests/kvm/x86_64/vmx_msrs_test.c     |  47 ++++++++++++++++++++++++++++++++++++++++++++
 13 files changed, 277 insertions(+), 117 deletions(-)

Comments

Paolo Bonzini Dec. 2, 2022, 5:59 p.m. UTC | #1
On 12/2/22 01:33, Sean Christopherson wrote:
> Please pull misc x86 fixes and cleanups that have been floating around for a
> while.  These haven't been plugged into any bot-visible branch; I forgot about
> most of them until doing a bit of fall/winter cleaning.  That said, the only
> one that is substantially complex is Anton's TSC snapshot fix, and that's been
> on the lists for many months.
> 
> Jim's IBPB fix is arguably fodder for 6.1, but the bug has been around for
> 2+ years so squeezing it in this late in the cycle doesn't seem necessary.
> 
> Holler if any of these give you pause!

All good!  Pulled, thanks.

Paolo