On Thu, 24 Aug 2023 18:45:32 -0700, Sean Christopherson wrote: > Reset the mask of available "registers" and refresh the IDT vectoring > info snapshot in vmx_vcpu_enter_exit(), before KVM potentially handles a > an NMI VM-Exit. One of the "registers" that KVM VMX lazily loads is the > vmcs.VM_EXIT_INTR_INFO field, which is holds the vector+type on "exception > or NMI" VM-Exits, i.e. is needed to identify NMIs. Clearing the available > registers bitmask after handling NMIs results in KVM querying info from > the last VM-Exit that read vmcs.VM_EXIT_INTR_INFO, and leads to both > missed NMIs and spurious NMIs in the host. > > [...] Applied to kvm-x86 vmx, gonna try to squeeze this into the initial 6.6 pull request as I got confirmation from another reporter that this fixed their problem[*]. I'll make sure to make note of this patch in the pull request to Paolo, worst case scenario I'll drop this one commit if Paolo spots something. https://lore.kernel.org/all/SY4P282MB10841E53BAF421675FCE991D9DE0A@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/ [1/1] KVM: VMX: Refresh available regs and IDT vectoring info before NMI handling https://github.com/kvm-x86/linux/commit/50011c2a2457 -- https://github.com/kvm-x86/linux/tree/next https://github.com/kvm-x86/linux/tree/fixes