Re: [PATCH] KVM: VMX: Refresh available regs and IDT vectoring info before NMI handling

From: Sean Christopherson
Date: Mon Aug 28 2023 - 23:15:41 EST


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