Changeset 78524 in vbox
- Timestamp:
- May 15, 2019 4:55:54 AM (5 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
-
include/VBox/vmm/hm_vmx.h (modified) (6 diffs)
-
src/VBox/VMM/VMMAll/HMVMXAll.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/hm_vmx.h
r78481 r78524 855 855 } StrIo; 856 856 857 /** INVEPT, INVPCID, INVVPID information. */ 857 858 struct 858 859 { … … 973 974 } RdrandRdseed; 974 975 976 /** VMREAD, VMWRITE information. */ 975 977 struct 976 978 { … … 1477 1479 1478 1480 /** @name VMX MSR - Miscellaneous data. 1479 * Bit fields for MSR_IA32_VMX_MISC.1480 1481 * @{ 1481 1482 */ … … 1494 1495 /** Maximum CR3-target count supported by the CPU. */ 1495 1496 #define VMX_MISC_CR3_TARGET_COUNT(a_MiscMsr) (((a) >> 16) & 0xff) 1497 1498 /** Bit fields for MSR_IA32_VMX_MISC. */ 1496 1499 /** Relationship between the preemption timer and tsc. */ 1497 1500 #define VMX_BF_MISC_PREEMPT_TIMER_TSC_SHIFT 0 … … 1577 1580 * @{ 1578 1581 */ 1582 /** Supports execute-only translations by EPT. */ 1579 1583 #define MSR_IA32_VMX_EPT_VPID_CAP_RWX_X_ONLY RT_BIT_64(0) 1584 /** Supports page-walk length of 4. */ 1580 1585 #define MSR_IA32_VMX_EPT_VPID_CAP_PAGE_WALK_LENGTH_4 RT_BIT_64(6) 1586 /** Supports EPT paging-structure memory type to be uncacheable. */ 1581 1587 #define MSR_IA32_VMX_EPT_VPID_CAP_EMT_UC RT_BIT_64(8) 1588 /** Supports EPT paging structure memory type to be write-back. */ 1582 1589 #define MSR_IA32_VMX_EPT_VPID_CAP_EMT_WB RT_BIT_64(14) 1590 /** Supports EPT PDE to map a 2 MB page. */ 1583 1591 #define MSR_IA32_VMX_EPT_VPID_CAP_PDE_2M RT_BIT_64(16) 1592 /** Supports EPT PDPTE to map a 1 GB page. */ 1584 1593 #define MSR_IA32_VMX_EPT_VPID_CAP_PDPTE_1G RT_BIT_64(17) 1594 /** Supports INVEPT instruction. */ 1585 1595 #define MSR_IA32_VMX_EPT_VPID_CAP_INVEPT RT_BIT_64(20) 1596 /** Supports accessed and dirty flags for EPT. */ 1586 1597 #define MSR_IA32_VMX_EPT_VPID_CAP_EPT_ACCESS_DIRTY RT_BIT_64(21) 1598 /** Supports single-context INVEPT type. */ 1587 1599 #define MSR_IA32_VMX_EPT_VPID_CAP_INVEPT_SINGLE_CONTEXT RT_BIT_64(25) 1600 /** Supports all-context INVEPT type. */ 1588 1601 #define MSR_IA32_VMX_EPT_VPID_CAP_INVEPT_ALL_CONTEXTS RT_BIT_64(26) 1602 /** Supports INVVPID instruction. */ 1589 1603 #define MSR_IA32_VMX_EPT_VPID_CAP_INVVPID RT_BIT_64(32) 1604 /** Supports individual-address INVVPID type. */ 1590 1605 #define MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_INDIV_ADDR RT_BIT_64(40) 1606 /** Supports single-context INVVPID type. */ 1591 1607 #define MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_SINGLE_CONTEXT RT_BIT_64(41) 1608 /** Supports all-context INVVPID type. */ 1592 1609 #define MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_ALL_CONTEXTS RT_BIT_64(42) 1610 /** Supports singe-context-retaining-globals INVVPID type. */ 1593 1611 #define MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_SINGLE_CONTEXT_RETAIN_GLOBALS RT_BIT_64(43) 1612 1613 /** Bit fields for MSR_IA32_VMX_EPT_VPID_CAP. */ 1614 #define VMX_BF_EPT_VPID_CAP_RWX_X_ONLY_SHIFT 0 1615 #define VMX_BF_EPT_VPID_CAP_RWX_X_ONLY_MASK UINT64_C(0x0000000000000001) 1616 #define VMX_BF_EPT_VPID_CAP_RSVD_1_5_SHIFT 1 1617 #define VMX_BF_EPT_VPID_CAP_RSVD_1_5_MASK UINT64_C(0x000000000000003e) 1618 #define VMX_BF_EPT_VPID_CAP_PAGE_WALK_LENGTH_4_SHIFT 6 1619 #define VMX_BF_EPT_VPID_CAP_PAGE_WALK_LENGTH_4_MASK UINT64_C(0x0000000000000040) 1620 #define VMX_BF_EPT_VPID_CAP_RSVD_7_SHIFT 7 1621 #define VMX_BF_EPT_VPID_CAP_RSVD_7_MASK UINT64_C(0x0000000000000080) 1622 #define VMX_BF_EPT_VPID_CAP_EMT_UC_SHIFT 8 1623 #define VMX_BF_EPT_VPID_CAP_EMT_UC_MASK UINT64_C(0x0000000000000100) 1624 #define VMX_BF_EPT_VPID_CAP_RSVD_9_13_SHIFT 9 1625 #define VMX_BF_EPT_VPID_CAP_RSVD_9_13_MASK UINT64_C(0x0000000000003e00) 1626 #define VMX_BF_EPT_VPID_CAP_EMT_WB_SHIFT 14 1627 #define VMX_BF_EPT_VPID_CAP_EMT_WB_MASK UINT64_C(0x0000000000004000) 1628 #define VMX_BF_EPT_VPID_CAP_RSVD_15_SHIFT 15 1629 #define VMX_BF_EPT_VPID_CAP_RSVD_15_MASK UINT64_C(0x0000000000008000) 1630 #define VMX_BF_EPT_VPID_CAP_PDE_2M_SHIFT 16 1631 #define VMX_BF_EPT_VPID_CAP_PDE_2M_MASK UINT64_C(0x0000000000010000) 1632 #define VMX_BF_EPT_VPID_CAP_PDPTE_1G_SHIFT 17 1633 #define VMX_BF_EPT_VPID_CAP_PDPTE_1G_MASK UINT64_C(0x0000000000020000) 1634 #define VMX_BF_EPT_VPID_CAP_RSVD_18_19_SHIFT 18 1635 #define VMX_BF_EPT_VPID_CAP_RSVD_18_19_MASK UINT64_C(0x00000000000c0000) 1636 #define VMX_BF_EPT_VPID_CAP_INVEPT_SHIFT 20 1637 #define VMX_BF_EPT_VPID_CAP_INVEPT_MASK UINT64_C(0x0000000000100000) 1638 #define VMX_BF_EPT_VPID_CAP_EPT_ACCESS_DIRTY_SHIFT 21 1639 #define VMX_BF_EPT_VPID_CAP_EPT_ACCESS_DIRTY_MASK UINT64_C(0x0000000000200000) 1640 #define VMX_BF_EPT_VPID_CAP_RSVD_22_24_SHIFT 22 1641 #define VMX_BF_EPT_VPID_CAP_RSVD_22_24_MASK UINT64_C(0x0000000001c00000) 1642 #define VMX_BF_EPT_VPID_CAP_INVEPT_SINGLE_CTX_SHIFT 25 1643 #define VMX_BF_EPT_VPID_CAP_INVEPT_SINGLE_CTX_MASK UINT64_C(0x0000000002000000) 1644 #define VMX_BF_EPT_VPID_CAP_INVEPT_ALL_CTX_SHIFT 26 1645 #define VMX_BF_EPT_VPID_CAP_INVEPT_ALL_CTX_MASK UINT64_C(0x0000000004000000) 1646 #define VMX_BF_EPT_VPID_CAP_RSVD_27_31_SHIFT 27 1647 #define VMX_BF_EPT_VPID_CAP_RSVD_27_31_MASK UINT64_C(0x00000000f8000000) 1648 #define VMX_BF_EPT_VPID_CAP_INVVPID_SHIFT 32 1649 #define VMX_BF_EPT_VPID_CAP_INVVPID_MASK UINT64_C(0x0000000100000000) 1650 #define VMX_BF_EPT_VPID_CAP_RSVD_33_39_SHIFT 33 1651 #define VMX_BF_EPT_VPID_CAP_RSVD_33_39_MASK UINT64_C(0x000000fe00000000) 1652 #define VMX_BF_EPT_VPID_CAP_INVVPID_INDIV_ADDR_SHIFT 40 1653 #define VMX_BF_EPT_VPID_CAP_INVVPID_INDIV_ADDR_MASK UINT64_C(0x0000010000000000) 1654 #define VMX_BF_EPT_VPID_CAP_INVVPID_SINGLE_CTX_SHIFT 41 1655 #define VMX_BF_EPT_VPID_CAP_INVVPID_SINGLE_CTX_MASK UINT64_C(0x0000020000000000) 1656 #define VMX_BF_EPT_VPID_CAP_INVVPID_ALL_CTX_SHIFT 42 1657 #define VMX_BF_EPT_VPID_CAP_INVVPID_ALL_CTX_MASK UINT64_C(0x0000040000000000) 1658 #define VMX_BF_EPT_VPID_CAP_INVVPID_SINGLE_CTX_RETAIN_GLOBALS_SHIFT 43 1659 #define VMX_BF_EPT_VPID_CAP_INVVPID_SINGLE_CTX_RETAIN_GLOBALS_MASK UINT64_C(0x0000080000000000) 1660 #define VMX_BF_EPT_VPID_CAP_RSVD_44_63_SHIFT 44 1661 #define VMX_BF_EPT_VPID_CAP_RSVD_44_63_MASK UINT64_C(0xfffff00000000000) 1662 RT_BF_ASSERT_COMPILE_CHECKS(VMX_BF_EPT_VPID_CAP_, UINT64_C(0), UINT64_MAX, 1663 (RWX_X_ONLY, RSVD_1_5, PAGE_WALK_LENGTH_4, RSVD_7, EMT_UC, RSVD_9_13, EMT_WB, RSVD_15, PDE_2M, 1664 PDPTE_1G, RSVD_18_19, INVEPT, EPT_ACCESS_DIRTY, RSVD_22_24, INVEPT_SINGLE_CTX, 1665 INVEPT_ALL_CTX, RSVD_27_31, INVVPID, RSVD_33_39, INVVPID_INDIV_ADDR, INVVPID_SINGLE_CTX, 1666 INVVPID_ALL_CTX, INVVPID_SINGLE_CTX_RETAIN_GLOBALS, RSVD_44_63)); 1594 1667 /** @} */ 1595 1668 … … 3881 3954 kVmxVDiag_Vmread_RealOrV86Mode, 3882 3955 kVmxVDiag_Vmread_VmxRoot, 3956 /* INVVPID. */ 3957 kVmxVDiag_Invvpid_Cpl, 3958 kVmxVDiag_Invvpid_DescRsvd, 3959 kVmxVDiag_Invvpid_LongModeCS, 3960 kVmxVDiag_Invvpid_RealOrV86Mode, 3961 kVmxVDiag_Invvpid_TypeInvalid, 3962 kVmxVDiag_Invvpid_Type0InvalidAddr, 3963 kVmxVDiag_Invvpid_Type0InvalidVpid, 3964 kVmxVDiag_Invvpid_Type1InvalidVpid, 3965 kVmxVDiag_Invvpid_Type3InvalidVpid, 3966 kVmxVDiag_Invvpid_VmxRoot, 3883 3967 /* VMLAUNCH/VMRESUME. */ 3884 3968 kVmxVDiag_Vmentry_AddrApicAccess, -
trunk/src/VBox/VMM/VMMAll/HMVMXAll.cpp
r78481 r78524 131 131 VMXV_DIAG_DESC(kVmxVDiag_Vmread_RealOrV86Mode , "RealOrV86Mode" ), 132 132 VMXV_DIAG_DESC(kVmxVDiag_Vmread_VmxRoot , "VmxRoot" ), 133 /* INVVPID. */ 134 VMXV_DIAG_DESC(kVmxVDiag_Invvpid_Cpl , "Cpl" ), 135 VMXV_DIAG_DESC(kVmxVDiag_Invvpid_DescRsvd , "DescRsvd" ), 136 VMXV_DIAG_DESC(kVmxVDiag_Invvpid_LongModeCS , "LongModeCS" ), 137 VMXV_DIAG_DESC(kVmxVDiag_Invvpid_RealOrV86Mode , "RealOrV86Mode" ), 138 VMXV_DIAG_DESC(kVmxVDiag_Invvpid_TypeInvalid , "TypeInvalid" ), 139 VMXV_DIAG_DESC(kVmxVDiag_Invvpid_Type0InvalidAddr , "Type0InvalidAddr" ), 140 VMXV_DIAG_DESC(kVmxVDiag_Invvpid_Type0InvalidVpid , "Type0InvalidVpid" ), 141 VMXV_DIAG_DESC(kVmxVDiag_Invvpid_Type1InvalidVpid , "Type1InvalidVpid" ), 142 VMXV_DIAG_DESC(kVmxVDiag_Invvpid_Type3InvalidVpid , "Type3InvalidVpid" ), 143 VMXV_DIAG_DESC(kVmxVDiag_Invvpid_VmxRoot , "VmxRoot" ), 133 144 /* VMLAUNCH/VMRESUME. */ 134 145 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_AddrApicAccess , "AddrApicAccess" ),
Note:
See TracChangeset
for help on using the changeset viewer.

