VirtualBox

Changeset 78650 in vbox for trunk/src/VBox


Ignore:
Timestamp:
May 22, 2019 9:41:16 AM (6 years ago)
Author:
vboxsync
Message:

VMM: Nested VMX: bugref:9180 Added RTIT_CTL MSR to the virtual VMCS. Brought up rest of HM definitions to the latest VT-x specs. Spaces.

Location:
trunk/src/VBox/VMM
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/HMAll.cpp

    r78253 r78650  
    113113    EXIT_REASON(VMX_EXIT_PML_FULL               ,  62, "Page-modification log full."),
    114114    EXIT_REASON(VMX_EXIT_XSAVES                 ,  63, "XSAVES instruction."),
    115     EXIT_REASON(VMX_EXIT_XRSTORS                ,  64, "XRSTORS instruction.")
     115    EXIT_REASON(VMX_EXIT_XRSTORS                ,  64, "XRSTORS instruction."),
     116    EXIT_REASON_NIL(),
     117    EXIT_REASON(VMX_EXIT_SPP_EVENT              ,  66, "SPP-related event."),
     118    EXIT_REASON(VMX_EXIT_UMWAIT                 ,  67, "UMWAIT instruction."),
     119    EXIT_REASON(VMX_EXIT_TPAUSE                 ,  68, "TPAUSE instruction.")
    116120};
    117121/** Array index of the last valid VT-x exit reason. */
    118 #define MAX_EXITREASON_VTX                         64
     122#define MAX_EXITREASON_VTX                         68
    119123
    120124/** A partial list of \#EXIT reason descriptions for AMD-V, used to describe
  • trunk/src/VBox/VMM/VMMAll/HMVMXAll.cpp

    r78645 r78650  
    10461046        LogRel(("  %sPDPTE 3                    = %#RX64\n",   pszPrefix, pVmcs->u64GuestPdpte3.u));
    10471047        LogRel(("  %sBNDCFGS                    = %#RX64\n",   pszPrefix, pVmcs->u64GuestBndcfgsMsr.u));
     1048        LogRel(("  %sRTIT_CTL                   = %#RX64\n",   pszPrefix, pVmcs->u64GuestRtitCtlMsr.u));
    10481049
    10491050        /* Natural width. */
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h

    r78646 r78650  
    287287        /*     8 */ RT_UOFFSETOF(VMXVVMCS, u64GuestPdpte3),
    288288        /*     9 */ RT_UOFFSETOF(VMXVVMCS, u64GuestBndcfgsMsr),
    289         /* 10-17 */ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX,
    290         /* 18-25 */ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX
     289        /*    10 */ RT_UOFFSETOF(VMXVVMCS, u64GuestRtitCtlMsr),
     290        /* 11-18 */ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX
     291        /* 19-25 */ UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX
    291292    },
    292293    /* VMX_VMCS_ENC_WIDTH_64BIT | VMX_VMCS_ENC_TYPE_HOST_STATE: */
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r78647 r78650  
    485485static const PFNVMXEXITHANDLER g_apfnVMExitHandlers[VMX_EXIT_MAX + 1] =
    486486{
    487  /* 00  VMX_EXIT_XCPT_OR_NMI             */  hmR0VmxExitXcptOrNmi,
    488  /* 01  VMX_EXIT_EXT_INT                 */  hmR0VmxExitExtInt,
    489  /* 02  VMX_EXIT_TRIPLE_FAULT            */  hmR0VmxExitTripleFault,
    490  /* 03  VMX_EXIT_INIT_SIGNAL             */  hmR0VmxExitErrUnexpected,
    491  /* 04  VMX_EXIT_SIPI                    */  hmR0VmxExitErrUnexpected,
    492  /* 05  VMX_EXIT_IO_SMI                  */  hmR0VmxExitErrUnexpected,
    493  /* 06  VMX_EXIT_SMI                     */  hmR0VmxExitErrUnexpected,
    494  /* 07  VMX_EXIT_INT_WINDOW              */  hmR0VmxExitIntWindow,
    495  /* 08  VMX_EXIT_NMI_WINDOW              */  hmR0VmxExitNmiWindow,
    496  /* 09  VMX_EXIT_TASK_SWITCH             */  hmR0VmxExitTaskSwitch,
    497  /* 10  VMX_EXIT_CPUID                   */  hmR0VmxExitCpuid,
    498  /* 11  VMX_EXIT_GETSEC                  */  hmR0VmxExitGetsec,
    499  /* 12  VMX_EXIT_HLT                     */  hmR0VmxExitHlt,
    500  /* 13  VMX_EXIT_INVD                    */  hmR0VmxExitInvd,
    501  /* 14  VMX_EXIT_INVLPG                  */  hmR0VmxExitInvlpg,
    502  /* 15  VMX_EXIT_RDPMC                   */  hmR0VmxExitRdpmc,
    503  /* 16  VMX_EXIT_RDTSC                   */  hmR0VmxExitRdtsc,
    504  /* 17  VMX_EXIT_RSM                     */  hmR0VmxExitSetPendingXcptUD,
    505  /* 18  VMX_EXIT_VMCALL                  */  hmR0VmxExitVmcall,
     487    /*  0  VMX_EXIT_XCPT_OR_NMI             */  hmR0VmxExitXcptOrNmi,
     488    /*  1  VMX_EXIT_EXT_INT                 */  hmR0VmxExitExtInt,
     489    /*  2  VMX_EXIT_TRIPLE_FAULT            */  hmR0VmxExitTripleFault,
     490    /*  3  VMX_EXIT_INIT_SIGNAL             */  hmR0VmxExitErrUnexpected,
     491    /*  4  VMX_EXIT_SIPI                    */  hmR0VmxExitErrUnexpected,
     492    /*  5  VMX_EXIT_IO_SMI                  */  hmR0VmxExitErrUnexpected,
     493    /*  6  VMX_EXIT_SMI                     */  hmR0VmxExitErrUnexpected,
     494    /*  7  VMX_EXIT_INT_WINDOW              */  hmR0VmxExitIntWindow,
     495    /*  8  VMX_EXIT_NMI_WINDOW              */  hmR0VmxExitNmiWindow,
     496    /*  9  VMX_EXIT_TASK_SWITCH             */  hmR0VmxExitTaskSwitch,
     497    /* 10  VMX_EXIT_CPUID                   */  hmR0VmxExitCpuid,
     498    /* 11  VMX_EXIT_GETSEC                  */  hmR0VmxExitGetsec,
     499    /* 12  VMX_EXIT_HLT                     */  hmR0VmxExitHlt,
     500    /* 13  VMX_EXIT_INVD                    */  hmR0VmxExitInvd,
     501    /* 14  VMX_EXIT_INVLPG                  */  hmR0VmxExitInvlpg,
     502    /* 15  VMX_EXIT_RDPMC                   */  hmR0VmxExitRdpmc,
     503    /* 16  VMX_EXIT_RDTSC                   */  hmR0VmxExitRdtsc,
     504    /* 17  VMX_EXIT_RSM                     */  hmR0VmxExitSetPendingXcptUD,
     505    /* 18  VMX_EXIT_VMCALL                  */  hmR0VmxExitVmcall,
    506506#ifdef VBOX_WITH_NESTED_HWVIRT_VMX
    507  /* 19  VMX_EXIT_VMCLEAR                 */  hmR0VmxExitVmclear,
    508  /* 20  VMX_EXIT_VMLAUNCH                */  hmR0VmxExitVmlaunch,
    509  /* 21  VMX_EXIT_VMPTRLD                 */  hmR0VmxExitVmptrld,
    510  /* 22  VMX_EXIT_VMPTRST                 */  hmR0VmxExitVmptrst,
    511  /* 23  VMX_EXIT_VMREAD                  */  hmR0VmxExitVmread,
    512  /* 24  VMX_EXIT_VMRESUME                */  hmR0VmxExitVmresume,
    513  /* 25  VMX_EXIT_VMWRITE                 */  hmR0VmxExitVmwrite,
    514  /* 26  VMX_EXIT_VMXOFF                  */  hmR0VmxExitVmxoff,
    515  /* 27  VMX_EXIT_VMXON                   */  hmR0VmxExitVmxon,
     507    /* 19  VMX_EXIT_VMCLEAR                 */  hmR0VmxExitVmclear,
     508    /* 20  VMX_EXIT_VMLAUNCH                */  hmR0VmxExitVmlaunch,
     509    /* 21  VMX_EXIT_VMPTRLD                 */  hmR0VmxExitVmptrld,
     510    /* 22  VMX_EXIT_VMPTRST                 */  hmR0VmxExitVmptrst,
     511    /* 23  VMX_EXIT_VMREAD                  */  hmR0VmxExitVmread,
     512    /* 24  VMX_EXIT_VMRESUME                */  hmR0VmxExitVmresume,
     513    /* 25  VMX_EXIT_VMWRITE                 */  hmR0VmxExitVmwrite,
     514    /* 26  VMX_EXIT_VMXOFF                  */  hmR0VmxExitVmxoff,
     515    /* 27  VMX_EXIT_VMXON                   */  hmR0VmxExitVmxon,
    516516#else
    517  /* 19  VMX_EXIT_VMCLEAR                 */  hmR0VmxExitSetPendingXcptUD,
    518  /* 20  VMX_EXIT_VMLAUNCH                */  hmR0VmxExitSetPendingXcptUD,
    519  /* 21  VMX_EXIT_VMPTRLD                 */  hmR0VmxExitSetPendingXcptUD,
    520  /* 22  VMX_EXIT_VMPTRST                 */  hmR0VmxExitSetPendingXcptUD,
    521  /* 23  VMX_EXIT_VMREAD                  */  hmR0VmxExitSetPendingXcptUD,
    522  /* 24  VMX_EXIT_VMRESUME                */  hmR0VmxExitSetPendingXcptUD,
    523  /* 25  VMX_EXIT_VMWRITE                 */  hmR0VmxExitSetPendingXcptUD,
    524  /* 26  VMX_EXIT_VMXOFF                  */  hmR0VmxExitSetPendingXcptUD,
    525  /* 27  VMX_EXIT_VMXON                   */  hmR0VmxExitSetPendingXcptUD,
     517    /* 19  VMX_EXIT_VMCLEAR                 */  hmR0VmxExitSetPendingXcptUD,
     518    /* 20  VMX_EXIT_VMLAUNCH                */  hmR0VmxExitSetPendingXcptUD,
     519    /* 21  VMX_EXIT_VMPTRLD                 */  hmR0VmxExitSetPendingXcptUD,
     520    /* 22  VMX_EXIT_VMPTRST                 */  hmR0VmxExitSetPendingXcptUD,
     521    /* 23  VMX_EXIT_VMREAD                  */  hmR0VmxExitSetPendingXcptUD,
     522    /* 24  VMX_EXIT_VMRESUME                */  hmR0VmxExitSetPendingXcptUD,
     523    /* 25  VMX_EXIT_VMWRITE                 */  hmR0VmxExitSetPendingXcptUD,
     524    /* 26  VMX_EXIT_VMXOFF                  */  hmR0VmxExitSetPendingXcptUD,
     525    /* 27  VMX_EXIT_VMXON                   */  hmR0VmxExitSetPendingXcptUD,
    526526#endif
    527  /* 28  VMX_EXIT_MOV_CRX                 */  hmR0VmxExitMovCRx,
    528  /* 29  VMX_EXIT_MOV_DRX                 */  hmR0VmxExitMovDRx,
    529  /* 30  VMX_EXIT_IO_INSTR                */  hmR0VmxExitIoInstr,
    530  /* 31  VMX_EXIT_RDMSR                   */  hmR0VmxExitRdmsr,
    531  /* 32  VMX_EXIT_WRMSR                   */  hmR0VmxExitWrmsr,
    532  /* 33  VMX_EXIT_ERR_INVALID_GUEST_STATE */  hmR0VmxExitErrInvalidGuestState,
    533  /* 34  VMX_EXIT_ERR_MSR_LOAD            */  hmR0VmxExitErrUnexpected,
    534  /* 35  UNDEFINED                        */  hmR0VmxExitErrUnexpected,
    535  /* 36  VMX_EXIT_MWAIT                   */  hmR0VmxExitMwait,
    536  /* 37  VMX_EXIT_MTF                     */  hmR0VmxExitMtf,
    537  /* 38  UNDEFINED                        */  hmR0VmxExitErrUnexpected,
    538  /* 39  VMX_EXIT_MONITOR                 */  hmR0VmxExitMonitor,
    539  /* 40  VMX_EXIT_PAUSE                   */  hmR0VmxExitPause,
    540  /* 41  VMX_EXIT_ERR_MACHINE_CHECK       */  hmR0VmxExitErrUnexpected,
    541  /* 42  UNDEFINED                        */  hmR0VmxExitErrUnexpected,
    542  /* 43  VMX_EXIT_TPR_BELOW_THRESHOLD     */  hmR0VmxExitTprBelowThreshold,
    543  /* 44  VMX_EXIT_APIC_ACCESS             */  hmR0VmxExitApicAccess,
    544  /* 45  VMX_EXIT_VIRTUALIZED_EOI         */  hmR0VmxExitErrUnexpected,
    545  /* 46  VMX_EXIT_GDTR_IDTR_ACCESS        */  hmR0VmxExitXdtrAccess,
    546  /* 47  VMX_EXIT_LDTR_TR_ACCESS          */  hmR0VmxExitXdtrAccess,
    547  /* 48  VMX_EXIT_EPT_VIOLATION           */  hmR0VmxExitEptViolation,
    548  /* 49  VMX_EXIT_EPT_MISCONFIG           */  hmR0VmxExitEptMisconfig,
    549  /* 50  VMX_EXIT_INVEPT                  */  hmR0VmxExitSetPendingXcptUD,
    550  /* 51  VMX_EXIT_RDTSCP                  */  hmR0VmxExitRdtscp,
    551  /* 52  VMX_EXIT_PREEMPT_TIMER           */  hmR0VmxExitPreemptTimer,
     527    /* 28  VMX_EXIT_MOV_CRX                 */  hmR0VmxExitMovCRx,
     528    /* 29  VMX_EXIT_MOV_DRX                 */  hmR0VmxExitMovDRx,
     529    /* 30  VMX_EXIT_IO_INSTR                */  hmR0VmxExitIoInstr,
     530    /* 31  VMX_EXIT_RDMSR                   */  hmR0VmxExitRdmsr,
     531    /* 32  VMX_EXIT_WRMSR                   */  hmR0VmxExitWrmsr,
     532    /* 33  VMX_EXIT_ERR_INVALID_GUEST_STATE */  hmR0VmxExitErrInvalidGuestState,
     533    /* 34  VMX_EXIT_ERR_MSR_LOAD            */  hmR0VmxExitErrUnexpected,
     534    /* 35  UNDEFINED                        */  hmR0VmxExitErrUnexpected,
     535    /* 36  VMX_EXIT_MWAIT                   */  hmR0VmxExitMwait,
     536    /* 37  VMX_EXIT_MTF                     */  hmR0VmxExitMtf,
     537    /* 38  UNDEFINED                        */  hmR0VmxExitErrUnexpected,
     538    /* 39  VMX_EXIT_MONITOR                 */  hmR0VmxExitMonitor,
     539    /* 40  VMX_EXIT_PAUSE                   */  hmR0VmxExitPause,
     540    /* 41  VMX_EXIT_ERR_MACHINE_CHECK       */  hmR0VmxExitErrUnexpected,
     541    /* 42  UNDEFINED                        */  hmR0VmxExitErrUnexpected,
     542    /* 43  VMX_EXIT_TPR_BELOW_THRESHOLD     */  hmR0VmxExitTprBelowThreshold,
     543    /* 44  VMX_EXIT_APIC_ACCESS             */  hmR0VmxExitApicAccess,
     544    /* 45  VMX_EXIT_VIRTUALIZED_EOI         */  hmR0VmxExitErrUnexpected,
     545    /* 46  VMX_EXIT_GDTR_IDTR_ACCESS        */  hmR0VmxExitXdtrAccess,
     546    /* 47  VMX_EXIT_LDTR_TR_ACCESS          */  hmR0VmxExitXdtrAccess,
     547    /* 48  VMX_EXIT_EPT_VIOLATION           */  hmR0VmxExitEptViolation,
     548    /* 49  VMX_EXIT_EPT_MISCONFIG           */  hmR0VmxExitEptMisconfig,
     549    /* 50  VMX_EXIT_INVEPT                  */  hmR0VmxExitSetPendingXcptUD,
     550    /* 51  VMX_EXIT_RDTSCP                  */  hmR0VmxExitRdtscp,
     551    /* 52  VMX_EXIT_PREEMPT_TIMER           */  hmR0VmxExitPreemptTimer,
    552552#ifdef VBOX_WITH_NESTED_HWVIRT_VMX
    553  /* 53  VMX_EXIT_INVVPID                 */  hmR0VmxExitInvvpid,
     553    /* 53  VMX_EXIT_INVVPID                 */  hmR0VmxExitInvvpid,
    554554#else
    555  /* 53  VMX_EXIT_INVVPID                 */  hmR0VmxExitSetPendingXcptUD,
     555    /* 53  VMX_EXIT_INVVPID                 */  hmR0VmxExitSetPendingXcptUD,
    556556#endif
    557  /* 54  VMX_EXIT_WBINVD                  */  hmR0VmxExitWbinvd,
    558  /* 55  VMX_EXIT_XSETBV                  */  hmR0VmxExitXsetbv,
    559  /* 56  VMX_EXIT_APIC_WRITE              */  hmR0VmxExitErrUnexpected,
    560  /* 57  VMX_EXIT_RDRAND                  */  hmR0VmxExitRdrand,
    561  /* 58  VMX_EXIT_INVPCID                 */  hmR0VmxExitInvpcid,
    562  /* 59  VMX_EXIT_VMFUNC                  */  hmR0VmxExitSetPendingXcptUD,
    563  /* 60  VMX_EXIT_ENCLS                   */  hmR0VmxExitSetPendingXcptUD,
    564  /* 61  VMX_EXIT_RDSEED                  */  hmR0VmxExitSetPendingXcptUD,
    565  /* 62  VMX_EXIT_PML_FULL                */  hmR0VmxExitErrUnexpected,
    566  /* 63  VMX_EXIT_XSAVES                  */  hmR0VmxExitSetPendingXcptUD,
    567  /* 64  VMX_EXIT_XRSTORS                 */  hmR0VmxExitSetPendingXcptUD,
     557    /* 54  VMX_EXIT_WBINVD                  */  hmR0VmxExitWbinvd,
     558    /* 55  VMX_EXIT_XSETBV                  */  hmR0VmxExitXsetbv,
     559    /* 56  VMX_EXIT_APIC_WRITE              */  hmR0VmxExitErrUnexpected,
     560    /* 57  VMX_EXIT_RDRAND                  */  hmR0VmxExitRdrand,
     561    /* 58  VMX_EXIT_INVPCID                 */  hmR0VmxExitInvpcid,
     562    /* 59  VMX_EXIT_VMFUNC                  */  hmR0VmxExitSetPendingXcptUD,
     563    /* 60  VMX_EXIT_ENCLS                   */  hmR0VmxExitSetPendingXcptUD,
     564    /* 61  VMX_EXIT_RDSEED                  */  hmR0VmxExitSetPendingXcptUD,
     565    /* 62  VMX_EXIT_PML_FULL                */  hmR0VmxExitErrUnexpected,
     566    /* 63  VMX_EXIT_XSAVES                  */  hmR0VmxExitSetPendingXcptUD,
     567    /* 64  VMX_EXIT_XRSTORS                 */  hmR0VmxExitSetPendingXcptUD,
     568    /* 65  UNDEFINED                        */  hmR0VmxExitErrUnexpected,
     569    /* 66  VMX_EXIT_SPP_EVENT               */  hmR0VmxExitErrUnexpected,
     570    /* 67  VMX_EXIT_UMWAIT                  */  hmR0VmxExitSetPendingXcptUD,
     571    /* 68  VMX_EXIT_TPAUSE                  */  hmR0VmxExitSetPendingXcptUD,
    568572};
    569573#endif /* HMVMX_USE_FUNCTION_TABLE */
  • trunk/src/VBox/VMM/VMMR3/CPUM.cpp

    r78621 r78650  
    461461    SSMFIELD_ENTRY(       VMXVVMCS, u64GuestPdpte3),
    462462    SSMFIELD_ENTRY(       VMXVVMCS, u64GuestBndcfgsMsr),
     463    SSMFIELD_ENTRY(       VMXVVMCS, u64GuestRtitCtlMsr),
    463464    SSMFIELD_ENTRY_IGNORE(VMXVVMCS, au64Reserved2),
    464465
     
    38963897        pHlp->pfnPrintf(pHlp, "  %sPDPTE 3                    = %#RX64\n",   pszPrefix, pVmcs->u64GuestPdpte3.u);
    38973898        pHlp->pfnPrintf(pHlp, "  %sBNDCFGS                    = %#RX64\n",   pszPrefix, pVmcs->u64GuestBndcfgsMsr.u);
     3899        pHlp->pfnPrintf(pHlp, "  %sRTIT_CTL                   = %#RX64\n",   pszPrefix, pVmcs->u64GuestRtitCtlMsr.u);
    38983900
    38993901        /* Natural width. */
  • trunk/src/VBox/VMM/VMMR3/HM.cpp

    r78632 r78650  
    13631363    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "PML",                   VMX_PROC_CTLS2_PML);
    13641364    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "EPT_VE",                VMX_PROC_CTLS2_EPT_VE);
    1365     HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "CONCEAL_FROM_PT",       VMX_PROC_CTLS2_CONCEAL_FROM_PT);
     1365    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "CONCEAL_VMX_FROM_PT",   VMX_PROC_CTLS2_CONCEAL_VMX_FROM_PT);
    13661366    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "XSAVES_XRSTORS",        VMX_PROC_CTLS2_XSAVES_XRSTORS);
     1367    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "MODE_BASED_EPT_PERM",   VMX_PROC_CTLS2_MODE_BASED_EPT_PERM);
     1368    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "SPPTP_EPT",             VMX_PROC_CTLS2_SPPTP_EPT);
     1369    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "PT_EPT",                VMX_PROC_CTLS2_PT_EPT);
    13671370    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "TSC_SCALING",           VMX_PROC_CTLS2_TSC_SCALING);
     1371    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "USER_WAIT_PAUSE",       VMX_PROC_CTLS2_USER_WAIT_PAUSE);
     1372    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "ENCLV_EXIT",            VMX_PROC_CTLS2_ENCLV_EXIT);
    13681373}
    13691374
     
    13861391    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "LOAD_PAT_MSR",        VMX_ENTRY_CTLS_LOAD_PAT_MSR);
    13871392    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "LOAD_EFER_MSR",       VMX_ENTRY_CTLS_LOAD_EFER_MSR);
     1393    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "LOAD_BNDCFGS_MSR",    VMX_ENTRY_CTLS_LOAD_BNDCFGS_MSR);
     1394    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "CONCEAL_VMX_FROM_PT", VMX_ENTRY_CTLS_CONCEAL_VMX_FROM_PT);
     1395    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "LOAD_RTIT_CTL_MSR",   VMX_ENTRY_CTLS_LOAD_RTIT_CTL_MSR);
    13881396}
    13891397
     
    14081416    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "LOAD_EFER_MSR",          VMX_EXIT_CTLS_LOAD_EFER_MSR);
    14091417    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "SAVE_PREEMPT_TIMER",     VMX_EXIT_CTLS_SAVE_PREEMPT_TIMER);
     1418    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "CLEAR_BNDCFGS_MSR",      VMX_EXIT_CTLS_CLEAR_BNDCFGS_MSR);
     1419    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "CONCEAL_VMX_FROM_PT",    VMX_EXIT_CTLS_CONCEAL_VMX_FROM_PT);
     1420    HMVMX_REPORT_FEAT(fAllowed1, fAllowed0, "CLEAR_RTIT_CTL_MSR",     VMX_EXIT_CTLS_CLEAR_RTIT_CTL_MSR);
    14101421}
    14111422
     
    30023013                    {
    30033014                        uint32_t const u32Val = pVmcsInfo->u32ProcCtls2;
    3004                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_VIRT_APIC_ACCESS  );
    3005                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_EPT               );
    3006                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_DESC_TABLE_EXIT   );
    3007                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_RDTSCP            );
    3008                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_VIRT_X2APIC_MODE  );
    3009                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_VPID              );
    3010                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_WBINVD_EXIT       );
    3011                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_UNRESTRICTED_GUEST);
    3012                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_APIC_REG_VIRT     );
    3013                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_VIRT_INT_DELIVERY );
    3014                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_PAUSE_LOOP_EXIT   );
    3015                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_RDRAND_EXIT       );
    3016                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_INVPCID           );
    3017                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_VMFUNC            );
    3018                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_VMCS_SHADOWING    );
    3019                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_ENCLS_EXIT        );
    3020                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_RDSEED_EXIT       );
    3021                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_PML               );
    3022                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_EPT_VE            );
    3023                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_CONCEAL_FROM_PT   );
    3024                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_XSAVES_XRSTORS    );
    3025                         HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_TSC_SCALING       );
     3015                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_VIRT_APIC_ACCESS   );
     3016                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_EPT                );
     3017                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_DESC_TABLE_EXIT    );
     3018                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_RDTSCP             );
     3019                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_VIRT_X2APIC_MODE   );
     3020                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_VPID               );
     3021                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_WBINVD_EXIT        );
     3022                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_UNRESTRICTED_GUEST );
     3023                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_APIC_REG_VIRT      );
     3024                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_VIRT_INT_DELIVERY  );
     3025                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_PAUSE_LOOP_EXIT    );
     3026                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_RDRAND_EXIT        );
     3027                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_INVPCID            );
     3028                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_VMFUNC             );
     3029                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_VMCS_SHADOWING     );
     3030                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_ENCLS_EXIT         );
     3031                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_RDSEED_EXIT        );
     3032                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_PML                );
     3033                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_EPT_VE             );
     3034                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_CONCEAL_VMX_FROM_PT);
     3035                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_XSAVES_XRSTORS     );
     3036                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_MODE_BASED_EPT_PERM);
     3037                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_SPPTP_EPT          );
     3038                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_PT_EPT             );
     3039                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_TSC_SCALING        );
     3040                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_USER_WAIT_PAUSE    );
     3041                        HMVMX_LOGREL_FEAT(u32Val, VMX_PROC_CTLS2_ENCLV_EXIT         );
    30263042                    }
    30273043                    LogRel(("HM: CPU[%u] EntryCtls            %#RX32\n", i, pVmcsInfo->u32EntryCtls));
     
    30353051                        HMVMX_LOGREL_FEAT(u32Val, VMX_ENTRY_CTLS_LOAD_PAT_MSR       );
    30363052                        HMVMX_LOGREL_FEAT(u32Val, VMX_ENTRY_CTLS_LOAD_EFER_MSR      );
     3053                        HMVMX_LOGREL_FEAT(u32Val, VMX_ENTRY_CTLS_LOAD_BNDCFGS_MSR   );
     3054                        HMVMX_LOGREL_FEAT(u32Val, VMX_ENTRY_CTLS_CONCEAL_VMX_FROM_PT);
     3055                        HMVMX_LOGREL_FEAT(u32Val, VMX_ENTRY_CTLS_LOAD_RTIT_CTL_MSR  );
    30373056                    }
    30383057                    LogRel(("HM: CPU[%u] ExitCtls             %#RX32\n", i, pVmcsInfo->u32ExitCtls));
     
    30483067                        HMVMX_LOGREL_FEAT(u32Val, VMX_EXIT_CTLS_LOAD_EFER_MSR         );
    30493068                        HMVMX_LOGREL_FEAT(u32Val, VMX_EXIT_CTLS_SAVE_PREEMPT_TIMER    );
     3069                        HMVMX_LOGREL_FEAT(u32Val, VMX_EXIT_CTLS_CLEAR_BNDCFGS_MSR     );
     3070                        HMVMX_LOGREL_FEAT(u32Val, VMX_EXIT_CTLS_CONCEAL_VMX_FROM_PT   );
     3071                        HMVMX_LOGREL_FEAT(u32Val, VMX_EXIT_CTLS_CLEAR_RTIT_CTL_MSR    );
    30503072                    }
    30513073                    LogRel(("HM: CPU[%u] HCPhysMsrBitmap      %#RHp\n",  i, pVmcsInfo->HCPhysMsrBitmap));
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