• Sean Christopherson's avatar
    KVM: nVMX: Split VM-Exit reflection logic into L0 vs. L1 wants · 2c1f3323
    Sean Christopherson authored
    Split the logic that determines whether a nested VM-Exit is reflected
    into L1 into "L0 wants" and "L1 wants" to document the core control flow
    at a high level.  If L0 wants the VM-Exit, e.g. because the exit is due
    to a hardware event that isn't passed through to L1, then KVM should
    handle the exit in L0 without considering L1's configuration.  Then, if
    L0 doesn't want the exit, KVM needs to query L1's wants to determine
    whether or not L1 "caused" the exit, e.g. by setting an exiting control,
    versus the exit occurring due to an L0 setting, e.g. when L0 intercepts
    an action that L1 chose to pass-through.
    
    Note, this adds an extra read on vmcs.VM_EXIT_INTR_INFO for exception.
    This will be addressed in a future patch via a VMX-wide enhancement,
    rather than pile on another case where vmx->exit_intr_info is
    conditionally available.
    Suggested-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Message-Id: <20200415175519.14230-6-sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    2c1f3323
nested.c 198 KB