KVM VMX changes for 6.3. The highlight is moving NMI VM-Exit handling under the noinstr umbrella. The following changes since commit 7cb79f433e75b05d1635aefaa851cfcd1cb7dc4f: KVM: PPC: Fix refactoring goof in kvmppc_e500mc_init() (2023-01-24 13:00:32 -0500) are available in the Git repository at: https://github.com/kvm-x86/linux.git tags/kvm-x86-vmx-6.3 for you to fetch changes up to 93827a0a36396f2fd6368a54a020f420c8916e9b: KVM: VMX: Fix crash due to uninitialized current_vmcs (2023-02-07 09:02:50 -0800) ---------------------------------------------------------------- KVM VMX changes for 6.3: - Handle NMI VM-Exits before leaving the noinstr region - A few trivial cleanups in the VM-Enter flows - Stop enabling VMFUNC for L1 purely to document that KVM doesn't support EPTP switching (or any other VM function) for L1 - Fix a crash when using eVMCS's enlighted MSR bitmaps ---------------------------------------------------------------- Alexandru Matei (1): KVM: VMX: Fix crash due to uninitialized current_vmcs Alexey Dobriyan (1): KVM: VMX: don't use "unsigned long" in vmx_vcpu_enter_exit() Sean Christopherson (8): KVM: VMX: Access @flags as a 32-bit value in __vmx_vcpu_run() KVM: x86: Make vmx_get_exit_qual() and vmx_get_intr_info() noinstr-friendly KVM: VMX: Allow VM-Fail path of VMREAD helper to be instrumented KVM: VMX: Always inline eVMCS read/write helpers KVM: VMX: Always inline to_vmx() and to_kvm_vmx() x86/entry: KVM: Use dedicated VMX NMI entry for 32-bit kernels too KVM: VMX: Provide separate subroutines for invoking NMI vs. IRQ handlers KVM: VMX: Handle NMI VM-Exits in noinstr region Yu Zhang (2): KVM: VMX: Do not trap VMFUNC instructions for L1 guests. KVM: nVMX: Simplify the setting of SECONDARY_EXEC_ENABLE_VMFUNC for nested. arch/x86/include/asm/idtentry.h | 16 ++++----- arch/x86/kernel/nmi.c | 8 ++--- arch/x86/kvm/kvm_cache_regs.h | 12 +++++++ arch/x86/kvm/vmx/hyperv.h | 31 ++++++---------- arch/x86/kvm/vmx/nested.c | 21 +++++------ arch/x86/kvm/vmx/vmcs.h | 4 +-- arch/x86/kvm/vmx/vmenter.S | 80 ++++++++++++++++++++++------------------- arch/x86/kvm/vmx/vmx.c | 72 ++++++++++++++++++++++--------------- arch/x86/kvm/vmx/vmx.h | 18 +++++----- arch/x86/kvm/vmx/vmx_ops.h | 2 ++ arch/x86/kvm/x86.h | 6 ++-- 11 files changed, 143 insertions(+), 127 deletions(-)