• Sean Christopherson's avatar
    KVM: VMX: Read cached VM-Exit reason to detect external interrupt · 49def500
    Sean Christopherson authored
    Generic x86 code invokes the kvm_x86_ops external interrupt handler on
    all VM-Exits regardless of the actual exit type.  Use the already-cached
    EXIT_REASON to determine if the VM-Exit was due to an interrupt, thus
    avoiding an extra VMREAD (to query VM_EXIT_INTR_INFO) for all other
    types of VM-Exit.
    
    In addition to avoiding the extra VMREAD, checking the EXIT_REASON
    instead of VM_EXIT_INTR_INFO makes it more obvious that
    vmx_handle_external_intr() is called for all VM-Exits, e.g. someone
    unfamiliar with the flow might wonder under what condition(s)
    VM_EXIT_INTR_INFO does not contain a valid interrupt, which is
    simply not possible since KVM always runs with "ack interrupt on exit".
    
    WARN once if VM_EXIT_INTR_INFO doesn't contain a valid interrupt on
    an EXTERNAL_INTERRUPT VM-Exit, as such a condition would indicate a
    hardware bug.
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    49def500
vmcs.h 3.42 KB