Re: [PATCHv2 5/7] KVM: SVM: Add VNMI support in inject_nmi

From: Shukla, Santosh
Date: Fri Jul 29 2022 - 09:56:06 EST




On 7/29/2022 7:23 PM, Sean Christopherson wrote:
> 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

Ok.

Thanks,
Santosh

> weren't normal behavior, pr_debug() is usually the wrong choice in KVM.