VirtualBox

Changeset 99653 in vbox for trunk/src/VBox/VMM/VMMR0


Ignore:
Timestamp:
May 8, 2023 7:17:30 AM (22 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
157182
Message:

VMM: Nested VMX: bugref:10318 Separate injection of events between guest and nested-guest, far fewer checks, better readability at slight cost of duplication.
Fixed priority of NMI-window and interrupt-window VM-exits as they can occur regardless of whether an interrupt is pending.
Fixed NMI issue with SMP nested Hyper-V enabled Windows Server 2008 R2 guest by clearing VMCPU_FF_INTERRUPT_NMI on virtual NMI-exit.
Fixed vmxHCExitNmiWindowNested to call vmxHCExitNmiWindow rather than vmxHCExitIntWindow when the nested-hypervisor intercept wasn't set.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r98465 r99653  
    59245924
    59255925    uint32_t fIntrState;
    5926     rcStrict = vmxHCEvaluatePendingEvent(pVCpu, pVmxTransient->pVmcsInfo, pVmxTransient->fIsNestedGuest,
    5927                                          &fIntrState);
    5928 
    59295926#ifdef VBOX_WITH_NESTED_HWVIRT_VMX
     5927    if (!pVmxTransient->fIsNestedGuest)
     5928        rcStrict = vmxHCEvaluatePendingEvent(pVCpu, pVmxTransient->pVmcsInfo, &fIntrState);
     5929    else
     5930        rcStrict = vmxHCEvaluatePendingEventNested(pVCpu, pVmxTransient->pVmcsInfo, &fIntrState);
     5931
    59305932    /*
    59315933     * While evaluating pending events if something failed (unlikely) or if we were
     
    59415943    }
    59425944#else
     5945    rcStrict = vmxHCEvaluatePendingEvent(pVCpu, pVmxTransient->pVmcsInfo, &fIntrState);
    59435946    Assert(rcStrict == VINF_SUCCESS);
    59445947#endif
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette