lkml.org 
[lkml]   [2020]   [Apr]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 16/22] KVM: nVMX: Prioritize SMI over nested IRQ/NMI
    Date
    From: Sean Christopherson <sean.j.christopherson@intel.com>

    Check for an unblocked SMI in vmx_check_nested_events() so that pending
    SMIs are correctly prioritized over IRQs and NMIs when the latter events
    will trigger VM-Exit. This also fixes an issue where an SMI that was
    marked pending while processing a nested VM-Enter wouldn't trigger an
    immediate exit, i.e. would be incorrectly delayed until L2 happened to
    take a VM-Exit.

    Fixes: 64d6067057d96 ("KVM: x86: stubs for SMM support")
    Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
    Message-Id: <20200423022550.15113-10-sean.j.christopherson@intel.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    ---
    arch/x86/kvm/vmx/nested.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c
    index 188ff4cfdbaf..2c36f3f53108 100644
    --- a/arch/x86/kvm/vmx/nested.c
    +++ b/arch/x86/kvm/vmx/nested.c
    @@ -3750,6 +3750,12 @@ static int vmx_check_nested_events(struct kvm_vcpu *vcpu)
    return 0;
    }

    + if (vcpu->arch.smi_pending && !is_smm(vcpu)) {
    + if (block_nested_events)
    + return -EBUSY;
    + goto no_vmexit;
    + }
    +
    if (vcpu->arch.nmi_pending && !vmx_nmi_blocked(vcpu)) {
    if (block_nested_events)
    return -EBUSY;
    --
    2.18.2

    \
     
     \ /
      Last update: 2020-04-25 09:03    [W:4.304 / U:0.140 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site