Re: [PATCHv2 5/7] KVM: SVM: Add VNMI support in inject_nmi
From: Sean Christopherson
Date: Fri Jul 29 2022 - 09:53:24 EST
On Fri, Jul 29, 2022, Shukla, Santosh wrote:
> Hi Sean,
>
> On 7/21/2022 3:11 AM, Sean Christopherson wrote:
> > On Sat, Jul 09, 2022, Santosh Shukla wrote:
> >> + ++vcpu->stat.nmi_injections;
> >> + if (is_vnmi_enabled(svm)) {
> >> + vmcb = get_vnmi_vmcb(svm);
> >> + WARN_ON(vmcb->control.int_ctl & V_NMI_PENDING);
> >
> > Haven't read the spec, but based on the changelog I assume the flag doesn't get
> > cleared until the NMI is fully delivered. That means this WARN will fire if a
> > VM-Exit occurs during delivery as KVM will re-inject the event, e.g. if KVM is
> > using shadow paging and a #PF handle by KVM occurs during delivery.
> >
>
> Right,.
>
>
> For the above scenario i.e.. if VMEXIT happens during delivery of virtual NMI
> then EXITINTINFO will be set accordingly and V_NMI_MASK is saved as 0.
> hypervisor will re-inject event in next VMRUN.
>
> I just wanted to track above scenario,. I will replace it with pr_debug().
No, this is normal (albeit uncommon) behavior, don't print anything. Even if it
weren't normal behavior, pr_debug() is usually the wrong choice in KVM.