VirtualBox

Changeset 87040 in vbox for trunk/src/VBox/VMM/VMMR3


Ignore:
Timestamp:
Dec 4, 2020 6:28:01 AM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
141724
Message:

VMM: Better fix for r141682 - Fix delivery of external interrupts when executing nested-guests. Fixes nested-guest SMP hangs described in bugref:9562#c18

Location:
trunk/src/VBox/VMM/VMMR3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/EM.cpp

    r82968 r87040  
    14981498#ifdef VBOX_WITH_NESTED_HWVIRT_VMX
    14991499    /* Handle the "external interrupt" VM-exit intercept. */
    1500     if (    CPUMIsGuestVmxPinCtlsSet(&pVCpu->cpum.GstCtx, VMX_PIN_CTLS_EXT_INT_EXIT)
    1501         && !CPUMIsGuestVmxExitCtlsSet(&pVCpu->cpum.GstCtx, VMX_EXIT_CTLS_ACK_EXT_INT))
     1500    if (CPUMIsGuestVmxPinCtlsSet(&pVCpu->cpum.GstCtx, VMX_PIN_CTLS_EXT_INT_EXIT))
    15021501    {
    15031502        VBOXSTRICTRC rcStrict = IEMExecVmxVmexitExtInt(pVCpu, 0 /* uVector */, true /* fIntPending */);
  • trunk/src/VBox/VMM/VMMR3/TRPM.cpp

    r82968 r87040  
    379379        if (   CPUMIsGuestInVmxNonRootMode(pCtx)
    380380            && CPUMIsGuestVmxInterceptEvents(pCtx)
    381             && CPUMIsGuestVmxPinCtlsSet(pCtx, VMX_PIN_CTLS_EXT_INT_EXIT)
    382             && CPUMIsGuestVmxExitCtlsSet(pCtx, VMX_EXIT_CTLS_ACK_EXT_INT))
     381            && CPUMIsGuestVmxPinCtlsSet(pCtx, VMX_PIN_CTLS_EXT_INT_EXIT))
    383382        {
    384383            VBOXSTRICTRC rcStrict = IEMExecVmxVmexitExtInt(pVCpu, u8Interrupt, false /* fIntPending */);
Note: See TracChangeset for help on using the changeset viewer.

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