VirtualBox

Changeset 43803 in vbox


Ignore:
Timestamp:
Nov 5, 2012 1:50:57 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
81813
Message:

VMM/VMMR0: bits.

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/hm_vmx.h

    r43771 r43803  
    659659
    660660
    661 /** @name MSR_IA32_VMX_EPT_CAPS; EPT capabilities MSR
    662  * @{
    663  */
    664 #define MSR_IA32_VMX_EPT_CAPS_RWX_X_ONLY                                    RT_BIT_64(0)
    665 #define MSR_IA32_VMX_EPT_CAPS_RWX_W_ONLY                                    RT_BIT_64(1)
    666 #define MSR_IA32_VMX_EPT_CAPS_RWX_WX_ONLY                                   RT_BIT_64(2)
    667 #define MSR_IA32_VMX_EPT_CAPS_GAW_21_BITS                                   RT_BIT_64(3)
    668 #define MSR_IA32_VMX_EPT_CAPS_GAW_30_BITS                                   RT_BIT_64(4)
    669 #define MSR_IA32_VMX_EPT_CAPS_GAW_39_BITS                                   RT_BIT_64(5)
    670 #define MSR_IA32_VMX_EPT_CAPS_GAW_48_BITS                                   RT_BIT_64(6)
    671 #define MSR_IA32_VMX_EPT_CAPS_GAW_57_BITS                                   RT_BIT_64(7)
    672 #define MSR_IA32_VMX_EPT_CAPS_EMT_UC                                        RT_BIT_64(8)
    673 #define MSR_IA32_VMX_EPT_CAPS_EMT_WC                                        RT_BIT_64(9)
    674 #define MSR_IA32_VMX_EPT_CAPS_EMT_WT                                        RT_BIT_64(12)
    675 #define MSR_IA32_VMX_EPT_CAPS_EMT_WP                                        RT_BIT_64(13)
    676 #define MSR_IA32_VMX_EPT_CAPS_EMT_WB                                        RT_BIT_64(14)
    677 #define MSR_IA32_VMX_EPT_CAPS_SP_21_BITS                                    RT_BIT_64(16)
    678 #define MSR_IA32_VMX_EPT_CAPS_SP_30_BITS                                    RT_BIT_64(17)
    679 #define MSR_IA32_VMX_EPT_CAPS_SP_39_BITS                                    RT_BIT_64(18)
    680 #define MSR_IA32_VMX_EPT_CAPS_SP_48_BITS                                    RT_BIT_64(19)
    681 #define MSR_IA32_VMX_EPT_CAPS_INVEPT                                        RT_BIT_64(20)
    682 #define MSR_IA32_VMX_EPT_CAPS_INVEPT_CAPS_SINGLE_CONTEXT                    RT_BIT_64(25)
    683 #define MSR_IA32_VMX_EPT_CAPS_INVEPT_CAPS_ALL_CONTEXTS                      RT_BIT_64(26)
    684 #define MSR_IA32_VMX_EPT_CAPS_INVVPID                                       RT_BIT_64(32)
    685 #define MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_INDIV_ADDR                       RT_BIT_64(40)
    686 #define MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_SINGLE_CONTEXT                   RT_BIT_64(41)
    687 #define MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_ALL_CONTEXTS                     RT_BIT_64(42)
    688 #define MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_SINGLE_CONTEXT_RETAIN_GLOBALS    RT_BIT_64(43)
     661/** @name MSR_IA32_VMX_EPT_VPID_CAPS; EPT capabilities MSR
     662 * @{
     663 */
     664#define MSR_IA32_VMX_EPT_VPID_CAP_RWX_X_ONLY                                RT_BIT_64(0)
     665#define MSR_IA32_VMX_EPT_VPID_CAP_RWX_W_ONLY                                RT_BIT_64(1)
     666#define MSR_IA32_VMX_EPT_VPID_CAP_RWX_WX_ONLY                               RT_BIT_64(2)
     667#define MSR_IA32_VMX_EPT_VPID_CAP_GAW_21_BITS                               RT_BIT_64(3)
     668#define MSR_IA32_VMX_EPT_VPID_CAP_GAW_30_BITS                               RT_BIT_64(4)
     669#define MSR_IA32_VMX_EPT_VPID_CAP_GAW_39_BITS                               RT_BIT_64(5)
     670#define MSR_IA32_VMX_EPT_VPID_CAP_GAW_48_BITS                               RT_BIT_64(6)
     671#define MSR_IA32_VMX_EPT_VPID_CAP_GAW_57_BITS                               RT_BIT_64(7)
     672#define MSR_IA32_VMX_EPT_VPID_CAP_EMT_UC                                    RT_BIT_64(8)
     673#define MSR_IA32_VMX_EPT_VPID_CAP_EMT_WC                                    RT_BIT_64(9)
     674#define MSR_IA32_VMX_EPT_VPID_CAP_EMT_WT                                    RT_BIT_64(12)
     675#define MSR_IA32_VMX_EPT_VPID_CAP_EMT_WP                                    RT_BIT_64(13)
     676#define MSR_IA32_VMX_EPT_VPID_CAP_EMT_WB                                    RT_BIT_64(14)
     677#define MSR_IA32_VMX_EPT_VPID_CAP_SP_21_BITS                                RT_BIT_64(16)
     678#define MSR_IA32_VMX_EPT_VPID_CAP_SP_30_BITS                                RT_BIT_64(17)
     679#define MSR_IA32_VMX_EPT_VPID_CAP_SP_39_BITS                                RT_BIT_64(18)
     680#define MSR_IA32_VMX_EPT_VPID_CAP_SP_48_BITS                                RT_BIT_64(19)
     681#define MSR_IA32_VMX_EPT_VPID_CAP_INVEPT                                    RT_BIT_64(20)
     682#define MSR_IA32_VMX_EPT_VPID_CAP_INVEPT_SINGLE_CONTEXT                     RT_BIT_64(25)
     683#define MSR_IA32_VMX_EPT_VPID_CAP_INVEPT_ALL_CONTEXTS                       RT_BIT_64(26)
     684#define MSR_IA32_VMX_EPT_VPID_CAP_INVVPID                                   RT_BIT_64(32)
     685#define MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_INDIV_ADDR                        RT_BIT_64(40)
     686#define MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_SINGLE_CONTEXT                    RT_BIT_64(41)
     687#define MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_ALL_CONTEXTS                      RT_BIT_64(42)
     688#define MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_SINGLE_CONTEXT_RETAIN_GLOBALS     RT_BIT_64(43)
    689689
    690690/** @} */
  • trunk/include/iprt/x86.h

    r42588 r43803  
    10201020#define MSR_IA32_VMX_PROCBASED_CTLS2        0x48B
    10211021/** EPT capabilities. */
    1022 #define MSR_IA32_VMX_EPT_CAPS               0x48C
     1022#define MSR_IA32_VMX_EPT_VPID_CAP           0x48C
    10231023/** DS Save Area (R/W). */
    10241024#define MSR_IA32_DS_AREA                    0x600
  • trunk/src/VBox/VMM/VMMR0/HMR0.cpp

    r43494 r43803  
    136136            uint64_t                vmx_cr4_fixed1;
    137137            uint64_t                vmx_vmcs_enum;
    138             uint64_t                vmx_eptcaps;
     138            uint64_t                vmx_ept_vpid_caps;
    139139        } msr;
    140140        /* Last instruction error */
     
    426426                    if (  g_HvmR0.vmx.msr.vmx_proc_ctls2.n.allowed1
    427427                        & (VMX_VMCS_CTRL_PROC_EXEC2_EPT | VMX_VMCS_CTRL_PROC_EXEC2_VPID))
    428                         g_HvmR0.vmx.msr.vmx_eptcaps = ASMRdMsr(MSR_IA32_VMX_EPT_CAPS);
     428                    {
     429                        g_HvmR0.vmx.msr.vmx_ept_vpid_caps = ASMRdMsr(MSR_IA32_VMX_EPT_VPID_CAP);
     430                    }
    429431                }
    430432
     
    12131215    pVM->hm.s.vmx.msr.vmx_cr4_fixed1    = g_HvmR0.vmx.msr.vmx_cr4_fixed1;
    12141216    pVM->hm.s.vmx.msr.vmx_vmcs_enum     = g_HvmR0.vmx.msr.vmx_vmcs_enum;
    1215     pVM->hm.s.vmx.msr.vmx_eptcaps       = g_HvmR0.vmx.msr.vmx_eptcaps;
     1217    pVM->hm.s.vmx.msr.vmx_ept_vpid_caps = g_HvmR0.vmx.msr.vmx_ept_vpid_caps;
    12161218    pVM->hm.s.svm.msrHwcr               = g_HvmR0.svm.msrHwcr;
    12171219    pVM->hm.s.svm.u32Rev                = g_HvmR0.svm.u32Rev;
  • trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp

    r43798 r43803  
    166166    if (   pVM
    167167        && pVM->hm.s.vmx.fVpid
    168         && (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_ALL_CONTEXTS))
     168        && (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_ALL_CONTEXTS))
    169169    {
    170170        hmR0VmxFlushVPID(pVM, NULL /* pvCpu */, VMX_FLUSH_VPID_ALL_CONTEXTS, 0 /* GCPtr */);
     
    431431    if (pVM->hm.s.fNestedPaging)
    432432    {
    433         if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVEPT)
    434         {
    435             if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVEPT_CAPS_SINGLE_CONTEXT)
     433        if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVEPT)
     434        {
     435            if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVEPT_SINGLE_CONTEXT)
    436436                pVM->hm.s.vmx.enmFlushEpt = VMX_FLUSH_EPT_SINGLE_CONTEXT;
    437             else if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVEPT_CAPS_ALL_CONTEXTS)
     437            else if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVEPT_ALL_CONTEXTS)
    438438                pVM->hm.s.vmx.enmFlushEpt = VMX_FLUSH_EPT_ALL_CONTEXTS;
    439439            else
     
    460460    if (pVM->hm.s.vmx.fVpid)
    461461    {
    462         if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID)
    463         {
    464             if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_SINGLE_CONTEXT)
     462        if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID)
     463        {
     464            if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_SINGLE_CONTEXT)
    465465                pVM->hm.s.vmx.enmFlushVpid = VMX_FLUSH_VPID_SINGLE_CONTEXT;
    466             else if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_ALL_CONTEXTS)
     466            else if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_ALL_CONTEXTS)
    467467                pVM->hm.s.vmx.enmFlushVpid = VMX_FLUSH_VPID_ALL_CONTEXTS;
    468468            else
     
    472472                 * We do not handle other flush type combinations, ignore VPID capabilities.
    473473                 */
    474                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_INDIV_ADDR)
     474                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_INDIV_ADDR)
    475475                    Log(("VMXR0SetupVM: Only VMX_FLUSH_VPID_INDIV_ADDR supported. Ignoring VPID.\n"));
    476                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_SINGLE_CONTEXT_RETAIN_GLOBALS)
     476                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_SINGLE_CONTEXT_RETAIN_GLOBALS)
    477477                    Log(("VMXR0SetupVM: Only VMX_FLUSH_VPID_SINGLE_CONTEXT_RETAIN_GLOBALS supported. Ignoring VPID.\n"));
    478478                pVM->hm.s.vmx.enmFlushVpid = VMX_FLUSH_VPID_NOT_SUPPORTED;
     
    25522552        else
    25532553        {
    2554             if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_SINGLE_CONTEXT)
     2554            if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_SINGLE_CONTEXT)
    25552555                hmR0VmxFlushVPID(pVM, pVCpu, VMX_FLUSH_VPID_SINGLE_CONTEXT, 0 /* GCPtr */);
    25562556            else
     
    25792579             * as supported by the CPU.
    25802580             */
    2581             if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_INDIV_ADDR)
     2581            if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_INDIV_ADDR)
    25822582            {
    25832583                for (unsigned i = 0; i < pVCpu->hm.s.TlbShootdown.cPages; i++)
     
    27422742             * as supported by the CPU.
    27432743             */
    2744             if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_INDIV_ADDR)
     2744            if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_INDIV_ADDR)
    27452745            {
    27462746                for (unsigned i = 0; i < pVCpu->hm.s.TlbShootdown.cPages; i++)
     
    51015101        {
    51025102            /* If we can flush just this page do it, otherwise flush as little as possible. */
    5103             if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_INDIV_ADDR)
     5103            if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_INDIV_ADDR)
    51045104                hmR0VmxFlushVPID(pVM, pVCpu, VMX_FLUSH_VPID_INDIV_ADDR, GCVirt);
    51055105            else
  • trunk/src/VBox/VMM/VMMR3/HM.cpp

    r43756 r43803  
    10491049                LogRel(("HM:    VMX_VMCS_CTRL_EXIT_CONTROLS_SAVE_VMX_PREEMPT_TIMER *must* be set\n"));
    10501050
    1051             if (pVM->hm.s.vmx.msr.vmx_eptcaps)
     1051            if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps)
    10521052            {
    1053                 LogRel(("HM: MSR_IA32_VMX_EPT_VPID_CAPS    = %RX64\n", pVM->hm.s.vmx.msr.vmx_eptcaps));
    1054 
    1055                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_RWX_X_ONLY)
    1056                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_RWX_X_ONLY\n"));
    1057                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_RWX_W_ONLY)
    1058                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_RWX_W_ONLY\n"));
    1059                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_RWX_WX_ONLY)
    1060                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_RWX_WX_ONLY\n"));
    1061                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_GAW_21_BITS)
    1062                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_GAW_21_BITS\n"));
    1063                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_GAW_30_BITS)
    1064                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_GAW_30_BITS\n"));
    1065                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_GAW_39_BITS)
    1066                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_GAW_39_BITS\n"));
    1067                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_GAW_48_BITS)
    1068                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_GAW_48_BITS\n"));
    1069                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_GAW_57_BITS)
    1070                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_GAW_57_BITS\n"));
    1071                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_EMT_UC)
    1072                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_EMT_UC\n"));
    1073                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_EMT_WC)
    1074                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_EMT_WC\n"));
    1075                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_EMT_WT)
    1076                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_EMT_WT\n"));
    1077                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_EMT_WP)
    1078                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_EMT_WP\n"));
    1079                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_EMT_WB)
    1080                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_EMT_WB\n"));
    1081                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_SP_21_BITS)
    1082                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_SP_21_BITS\n"));
    1083                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_SP_30_BITS)
    1084                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_SP_30_BITS\n"));
    1085                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_SP_39_BITS)
    1086                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_SP_39_BITS\n"));
    1087                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_SP_48_BITS)
    1088                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_SP_48_BITS\n"));
    1089                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVEPT)
    1090                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_INVEPT\n"));
    1091                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVEPT_CAPS_SINGLE_CONTEXT)
    1092                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_INVEPT_CAPS_SINGLE_CONTEXT\n"));
    1093                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVEPT_CAPS_ALL_CONTEXTS)
    1094                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_INVEPT_CAPS_ALL_CONTEXTS\n"));
    1095                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID)
    1096                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_INVVPID\n"));
    1097                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_INDIV_ADDR)
    1098                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_INDIV_ADDR\n"));
    1099                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_SINGLE_CONTEXT)
    1100                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_SINGLE_CONTEXT\n"));
    1101                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_ALL_CONTEXTS)
    1102                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_ALL_CONTEXTS\n"));
    1103                 if (pVM->hm.s.vmx.msr.vmx_eptcaps & MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_SINGLE_CONTEXT_RETAIN_GLOBALS)
    1104                     LogRel(("HM:    MSR_IA32_VMX_EPT_CAPS_INVVPID_CAPS_SINGLE_CONTEXT_RETAIN_GLOBALS\n"));
     1053                LogRel(("HM: MSR_IA32_VMX_EPT_VPID_CAP     = %RX64\n", pVM->hm.s.vmx.msr.vmx_ept_vpid_caps));
     1054
     1055                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_RWX_X_ONLY)
     1056                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_RWX_X_ONLY\n"));
     1057                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_RWX_W_ONLY)
     1058                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_RWX_W_ONLY\n"));
     1059                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_RWX_WX_ONLY)
     1060                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_RWX_WX_ONLY\n"));
     1061                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_GAW_21_BITS)
     1062                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_GAW_21_BITS\n"));
     1063                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_GAW_30_BITS)
     1064                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_GAW_30_BITS\n"));
     1065                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_GAW_39_BITS)
     1066                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_GAW_39_BITS\n"));
     1067                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_GAW_48_BITS)
     1068                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_GAW_48_BITS\n"));
     1069                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_GAW_57_BITS)
     1070                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_GAW_57_BITS\n"));
     1071                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_EMT_UC)
     1072                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_EMT_UC\n"));
     1073                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_EMT_WC)
     1074                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_EMT_WC\n"));
     1075                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_EMT_WT)
     1076                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_EMT_WT\n"));
     1077                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_EMT_WP)
     1078                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_EMT_WP\n"));
     1079                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_EMT_WB)
     1080                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_EMT_WB\n"));
     1081                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_SP_21_BITS)
     1082                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_SP_21_BITS\n"));
     1083                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_SP_30_BITS)
     1084                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_SP_30_BITS\n"));
     1085                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_SP_39_BITS)
     1086                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_SP_39_BITS\n"));
     1087                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_SP_48_BITS)
     1088                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_SP_48_BITS\n"));
     1089                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVEPT)
     1090                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_INVEPT\n"));
     1091                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVEPT_SINGLE_CONTEXT)
     1092                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_INVEPT_SINGLE_CONTEXT\n"));
     1093                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVEPT_ALL_CONTEXTS)
     1094                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_INVEPT_ALL_CONTEXTS\n"));
     1095                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID)
     1096                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_INVVPID\n"));
     1097                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_INDIV_ADDR)
     1098                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_INDIV_ADDR\n"));
     1099                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_SINGLE_CONTEXT)
     1100                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_SINGLE_CONTEXT\n"));
     1101                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_ALL_CONTEXTS)
     1102                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_ALL_CONTEXTS\n"));
     1103                if (pVM->hm.s.vmx.msr.vmx_ept_vpid_caps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_SINGLE_CONTEXT_RETAIN_GLOBALS)
     1104                    LogRel(("HM:    MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_SINGLE_CONTEXT_RETAIN_GLOBALS\n"));
    11051105            }
    11061106
  • trunk/src/VBox/VMM/include/HMInternal.h

    r43798 r43803  
    357357            uint64_t                vmx_cr4_fixed1;
    358358            uint64_t                vmx_vmcs_enum;
    359             uint64_t                vmx_eptcaps;
     359            uint64_t                vmx_ept_vpid_caps;
    360360        } msr;
    361361
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