Skip to content
  • Vitaly Kuznetsov's avatar
    KVM: x86: svm: make sure NMI is injected after nmi_singlestep · 99c22179
    Vitaly Kuznetsov authored
    
    
    I noticed that apic test from kvm-unit-tests always hangs on my EPYC 7401P,
    the hanging test nmi-after-sti is trying to deliver 30000 NMIs and tracing
    shows that we're sometimes able to deliver a few but never all.
    
    When we're trying to inject an NMI we may fail to do so immediately for
    various reasons, however, we still need to inject it so enable_nmi_window()
    arms nmi_singlestep mode. #DB occurs as expected, but we're not checking
    for pending NMIs before entering the guest and unless there's a different
    event to process, the NMI will never get delivered.
    
    Make KVM_REQ_EVENT request on the vCPU from db_interception() to make sure
    pending NMIs are checked and possibly injected.
    
    Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    99c22179