On 30/05/2017 15:36, Radim Krčmář wrote:
>> -if (atomic_read(&vcpu->arch.nmi_queued))
>> +if (kvm_test_request(KVM_REQ_NMI, vcpu) ||
>> +(vcpu->arch.nmi_pending &&
> I think the logic should be
>
> if ((kvm_test_request(KVM_REQ_NMI, vcpu) || vcpu->arch.nmi_pending) &&
>
2017-05-26 13:16+0800, Zhuangyanying:
> From: ZhuangYanying
>
> When spin_lock_irqsave() deadlock occurs inside the guest, vcpu threads,
> other than the lock-holding one, would enter into S state because of
> pvspinlock. Then inject NMI via libvirt API "inject-nmi", the NMI could
> not be inject
From: ZhuangYanying
When spin_lock_irqsave() deadlock occurs inside the guest, vcpu threads,
other than the lock-holding one, would enter into S state because of
pvspinlock. Then inject NMI via libvirt API "inject-nmi", the NMI could
not be injected into vm.
The reason is:
1 It sets nmi_queued t