Re: [Qemu-devel] [PATCH v3] KVM: x86: Fix nmi injection failure when vcpu got blocked

2017-05-30 Thread Paolo Bonzini
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) && >

Re: [Qemu-devel] [PATCH v3] KVM: x86: Fix nmi injection failure when vcpu got blocked

2017-05-30 Thread Radim Krčmář
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

[Qemu-devel] [PATCH v3] KVM: x86: Fix nmi injection failure when vcpu got blocked

2017-05-25 Thread 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 injected into vm. The reason is: 1 It sets nmi_queued t