VirtualBox

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


Ignore:
Timestamp:
May 7, 2012 3:39:30 PM (13 years ago)
Author:
vboxsync
Message:

VMM/VMMR0/HWVMXR0: Implemented EPT+VPID TLB flushing before VM entry.

File:
1 edited

Legend:

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

    r41173 r41189  
    11031103            }
    11041104
    1105 #ifdef HWACCM_VTX_WITH_EPT
    11061105            if (pVM->hwaccm.s.vmx.msr.vmx_proc_ctls2.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC2_EPT)
    11071106                pVM->hwaccm.s.fNestedPaging = pVM->hwaccm.s.fAllowNestedPaging;
    1108 #endif /* HWACCM_VTX_WITH_EPT */
    1109 #ifdef HWACCM_VTX_WITH_VPID
    1110             if (    (pVM->hwaccm.s.vmx.msr.vmx_proc_ctls2.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC2_VPID)
    1111                 &&  !pVM->hwaccm.s.fNestedPaging)    /* VPID and EPT are mutually exclusive. */
     1107
     1108            if (pVM->hwaccm.s.vmx.msr.vmx_proc_ctls2.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC2_VPID)
    11121109                pVM->hwaccm.s.vmx.fVPID = pVM->hwaccm.s.vmx.fAllowVPID;
    1113 #endif /* HWACCM_VTX_WITH_VPID */
    11141110
    11151111            /* Unrestricted guest execution relies on EPT. */
     
    12121208                    }
    12131209#endif
     1210                    LogRel(("HWACCM: enmFlushEPT    %d\n", pVM->hwaccm.s.vmx.enmFlushEPT));
    12141211                }
    12151212                else
     
    12171214
    12181215                if (pVM->hwaccm.s.vmx.fVPID)
     1216                {
    12191217                    LogRel(("HWACCM: Enabled VPID\n"));
    1220 
    1221                 if (   pVM->hwaccm.s.fNestedPaging
    1222                     || pVM->hwaccm.s.vmx.fVPID)
    1223                 {
    1224                     LogRel(("HWACCM: enmFlushPage    %d\n", pVM->hwaccm.s.vmx.enmFlushPage));
    1225                     LogRel(("HWACCM: enmFlushContext %d\n", pVM->hwaccm.s.vmx.enmFlushContext));
     1218                    LogRel(("HWACCM: enmFlushVPID   %d\n", pVM->hwaccm.s.vmx.enmFlushVPID));
    12261219                }
     1220                else if (pVM->hwaccm.s.vmx.enmFlushVPID == VMX_FLUSH_VPID_NOT_SUPPORTED)
     1221                    LogRel(("HWACCM: Ignoring VPID capabilities of CPU.\n"));
    12271222
    12281223                /* TPR patching status logging. */
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