VirtualBox

Changeset 82011 in vbox


Ignore:
Timestamp:
Nov 20, 2019 3:44:19 AM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
134814
Message:

VMM/HM: Added logging of new Intel CPU features.

Location:
trunk
Files:
2 edited

Legend:

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

    r81292 r82011  
    14861486#define VMX_BF_BASIC_TRUE_CTLS_SHIFT                            55
    14871487#define VMX_BF_BASIC_TRUE_CTLS_MASK                             UINT64_C(0x0080000000000000)
    1488 /** Bits 56:63 are reserved and RAZ. */
    1489 #define VMX_BF_BASIC_RSVD_56_63_SHIFT                           56
    1490 #define VMX_BF_BASIC_RSVD_56_63_MASK                            UINT64_C(0xff00000000000000)
     1488/** Whether VM-entry can delivery error code for all hardware exception vectors. */
     1489#define VMX_BF_BASIC_XCPT_ERRCODE_SHIFT                         56
     1490#define VMX_BF_BASIC_XCPT_ERRCODE_MASK                          UINT64_C(0x0100000000000000)
     1491/** Bits 57:63 are reserved and RAZ. */
     1492#define VMX_BF_BASIC_RSVD_56_63_SHIFT                           57
     1493#define VMX_BF_BASIC_RSVD_56_63_MASK                            UINT64_C(0xfe00000000000000)
    14911494RT_BF_ASSERT_COMPILE_CHECKS(VMX_BF_BASIC_, UINT64_C(0), UINT64_MAX,
    14921495                            (VMCS_ID, RSVD_32, VMCS_SIZE, RSVD_45_47, PHYSADDR_WIDTH, DUAL_MON, VMCS_MEM_TYPE,
    1493                              VMCS_INS_OUTS, TRUE_CTLS, RSVD_56_63));
     1496                             VMCS_INS_OUTS, TRUE_CTLS, XCPT_ERRCODE, RSVD_56_63));
    14941497/** @} */
    14951498
     
    16151618/** Supports accessed and dirty flags for EPT. */
    16161619#define MSR_IA32_VMX_EPT_VPID_CAP_EPT_ACCESS_DIRTY              RT_BIT_64(21)
     1620/** Supports advanced VM-exit info. for EPT violations. */
     1621#define MSR_IA32_VMX_EPT_VPID_CAP_ADVEXITINFO_EPT               RT_BIT_64(22)
     1622/** Supports supervisor shadow-stack control. */
     1623#define MSR_IA32_VMX_EPT_VPID_CAP_SSS                           RT_BIT_64(23)
    16171624/** Supports single-context INVEPT type. */
    16181625#define MSR_IA32_VMX_EPT_VPID_CAP_INVEPT_SINGLE_CONTEXT         RT_BIT_64(25)
     
    16571664#define VMX_BF_EPT_VPID_CAP_EPT_ACCESS_DIRTY_SHIFT              21
    16581665#define VMX_BF_EPT_VPID_CAP_EPT_ACCESS_DIRTY_MASK               UINT64_C(0x0000000000200000)
    1659 #define VMX_BF_EPT_VPID_CAP_RSVD_22_24_SHIFT                    22
    1660 #define VMX_BF_EPT_VPID_CAP_RSVD_22_24_MASK                     UINT64_C(0x0000000001c00000)
     1666#define VMX_BF_EPT_VPID_CAP_ADVEXITINFO_EPT_SHIFT               22
     1667#define VMX_BF_EPT_VPID_CAP_ADVEXITINFO_EPT_MASK                UINT64_C(0x0000000000400000)
     1668#define VMX_BF_EPT_VPID_CAP_SSS_SHIFT                           23
     1669#define VMX_BF_EPT_VPID_CAP_SSS_MASK                            UINT64_C(0x0000000000800000)
     1670#define VMX_BF_EPT_VPID_CAP_RSVD_24_SHIFT                       24
     1671#define VMX_BF_EPT_VPID_CAP_RSVD_24_MASK                        UINT64_C(0x0000000001000000)
    16611672#define VMX_BF_EPT_VPID_CAP_INVEPT_SINGLE_CTX_SHIFT             25
    16621673#define VMX_BF_EPT_VPID_CAP_INVEPT_SINGLE_CTX_MASK              UINT64_C(0x0000000002000000)
     
    16811692RT_BF_ASSERT_COMPILE_CHECKS(VMX_BF_EPT_VPID_CAP_, UINT64_C(0), UINT64_MAX,
    16821693                            (RWX_X_ONLY, RSVD_1_5, PAGE_WALK_LENGTH_4, RSVD_7, EMT_UC, RSVD_9_13, EMT_WB, RSVD_15, PDE_2M,
    1683                              PDPTE_1G, RSVD_18_19, INVEPT, EPT_ACCESS_DIRTY, RSVD_22_24, INVEPT_SINGLE_CTX,
     1694                             PDPTE_1G, RSVD_18_19, INVEPT, EPT_ACCESS_DIRTY, ADVEXITINFO_EPT, SSS, RSVD_24, INVEPT_SINGLE_CTX,
    16841695                             INVEPT_ALL_CTX, RSVD_27_31, INVVPID, RSVD_33_39, INVVPID_INDIV_ADDR, INVVPID_SINGLE_CTX,
    16851696                             INVVPID_ALL_CTX, INVVPID_SINGLE_CTX_RETAIN_GLOBALS, RSVD_44_63));
     
    23842395/** Whether the guest IA32_RTIT MSR is loaded on VM-entry. */
    23852396#define VMX_ENTRY_CTLS_LOAD_RTIT_CTL_MSR                        RT_BIT(18)
     2397/** Whether the guest CET-related MSRs and SPP are loaded on VM-entry. */
     2398#define VMX_ENTRY_CTLS_LOAD_CET_STATE                           RT_BIT(20)
    23862399/** Default1 class when true-capability MSRs are not supported. */
    23872400#define VMX_ENTRY_CTLS_DEFAULT1                                 UINT32_C(0x000011ff)
     
    24522465/** Whether IA32_RTIT_CTL MSR is cleared on VM-exit. */
    24532466#define VMX_EXIT_CTLS_CLEAR_RTIT_CTL_MSR                        RT_BIT(25)
     2467/** Whether CET-related MSRs and SPP are loaded on VM-exit. */
     2468#define VMX_EXIT_CTLS_LOAD_CET_STATE                            RT_BIT(28)
    24542469/** Default1 class when true-capability MSRs are not supported. */
    24552470#define VMX_EXIT_CTLS_DEFAULT1                                  UINT32_C(0x00036dff)
  • trunk/src/VBox/VMM/VMMR3/HM.cpp

    r81790 r82011  
    11851185    LogRel(("HM:   OUTS & INS instruction-info       = %RTbool\n",  RT_BF_GET(uBasicMsr, VMX_BF_BASIC_VMCS_INS_OUTS)));
    11861186    LogRel(("HM:   Supports true-capability MSRs     = %RTbool\n",  RT_BF_GET(uBasicMsr, VMX_BF_BASIC_TRUE_CTLS)));
     1187    LogRel(("HM:   VM-entry Xcpt error-code optional = %RTbool\n",  RT_BF_GET(uBasicMsr, VMX_BF_BASIC_XCPT_ERRCODE)));
    11871188}
    11881189
     
    13451346    HMVMX_REPORT_MSR_CAP(fCaps, "INVEPT",                                MSR_IA32_VMX_EPT_VPID_CAP_INVEPT);
    13461347    HMVMX_REPORT_MSR_CAP(fCaps, "EPT_ACCESS_DIRTY",                      MSR_IA32_VMX_EPT_VPID_CAP_EPT_ACCESS_DIRTY);
     1348    HMVMX_REPORT_MSR_CAP(fCaps, "ADVEXITINFO_EPT",                       MSR_IA32_VMX_EPT_VPID_CAP_ADVEXITINFO_EPT);
     1349    HMVMX_REPORT_MSR_CAP(fCaps, "SSS",                                   MSR_IA32_VMX_EPT_VPID_CAP_SSS);
    13471350    HMVMX_REPORT_MSR_CAP(fCaps, "INVEPT_SINGLE_CONTEXT",                 MSR_IA32_VMX_EPT_VPID_CAP_INVEPT_SINGLE_CONTEXT);
    13481351    HMVMX_REPORT_MSR_CAP(fCaps, "INVEPT_ALL_CONTEXTS",                   MSR_IA32_VMX_EPT_VPID_CAP_INVEPT_ALL_CONTEXTS);
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