Changeset 73795 in vbox for trunk/src/VBox/VMM/VMMR3/CPUM.cpp
- Timestamp:
- Aug 21, 2018 6:34:26 AM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 124479
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/CPUM.cpp
r73745 r73795 988 988 VMXFEATDUMP("VirtNmi - Virtual NMIs ", fVmxVirtNmi); 989 989 VMXFEATDUMP("PreemptTimer - VMX preemption timer ", fVmxPreemptTimer); 990 VMXFEATDUMP("PostedInt - Posted interrupts ", fVmxPostedInt); 990 991 /* Processor-based controls. */ 991 992 VMXFEATDUMP("IntWindowExit - Interrupt-window exiting ", fVmxIntWindowExit); … … 1000 1001 VMXFEATDUMP("Cr8LoadExit - CR8-load exiting ", fVmxCr8LoadExit); 1001 1002 VMXFEATDUMP("Cr8StoreExit - CR8-store exiting ", fVmxCr8StoreExit); 1002 VMXFEATDUMP(" TprShadow - TPR shadow ", fVmxTprShadow);1003 VMXFEATDUMP("UseTprShadow - Use TPR shadow ", fVmxUseTprShadow); 1003 1004 VMXFEATDUMP("NmiWindowExit - NMI-window exiting ", fVmxNmiWindowExit); 1004 1005 VMXFEATDUMP("MovDRxExit - Mov-DR exiting ", fVmxMovDRxExit); … … 1019 1020 VMXFEATDUMP("WbinvdExit - WBINVD exiting ", fVmxWbinvdExit); 1020 1021 VMXFEATDUMP("UnrestrictedGuest - Unrestricted guest ", fVmxUnrestrictedGuest); 1022 VMXFEATDUMP("ApicRegVirt - APIC-register virtualization ", fVmxApicRegVirt); 1023 VMXFEATDUMP("VirtIntDelivery - Virtual-interrupt delivery ", fVmxVirtIntDelivery); 1021 1024 VMXFEATDUMP("PauseLoopExit - PAUSE-loop exiting ", fVmxPauseLoopExit); 1022 1025 VMXFEATDUMP("Invpcid - Enable INVPCID ", fVmxInvpcid); 1026 VMXFEATDUMP("VmFuncs - Enable VM Functions ", fVmxVmFunc); 1023 1027 VMXFEATDUMP("VmcsShadowing - VMCS shadowing ", fVmxVmcsShadowing); 1028 VMXFEATDUMP("EptVe - EPT violations can cause #VE ", fVmxEptXcptVe); 1029 VMXFEATDUMP("XsavesXRstors - Enable XSAVES/XRSTORS ", fVmxXsavesXrstors); 1024 1030 /* VM-entry controls. */ 1025 1031 VMXFEATDUMP("EntryLoadDebugCtls - Load debug controls on VM-entry ", fVmxEntryLoadDebugCtls); 1026 1032 VMXFEATDUMP("Ia32eModeGuest - IA-32e mode guest ", fVmxIa32eModeGuest); 1027 1033 VMXFEATDUMP("EntryLoadEferMsr - Load IA32_EFER on VM-entry ", fVmxEntryLoadEferMsr); 1034 VMXFEATDUMP("EntryLoadPatMsr - Load IA32_PAT on VM-entry ", fVmxEntryLoadPatMsr); 1028 1035 /* VM-exit controls. */ 1029 1036 VMXFEATDUMP("ExitSaveDebugCtls - Save debug controls on VM-exit ", fVmxExitSaveDebugCtls); 1030 1037 VMXFEATDUMP("HostAddrSpaceSize - Host address-space size ", fVmxHostAddrSpaceSize); 1031 1038 VMXFEATDUMP("ExitAckExtInt - Acknowledge interrupt on VM-exit ", fVmxExitAckExtInt); 1039 VMXFEATDUMP("ExitSavePatMsr - Save IA32_PAT on VM-exit ", fVmxExitSavePatMsr); 1040 VMXFEATDUMP("ExitLoadPatMsr - Load IA32_PAT on VM-exit ", fVmxExitLoadPatMsr); 1032 1041 VMXFEATDUMP("ExitSaveEferMsr - Save IA32_EFER on VM-exit ", fVmxExitSaveEferMsr); 1033 1042 VMXFEATDUMP("ExitLoadEferMsr - Load IA32_EFER on VM-exit ", fVmxExitLoadEferMsr); … … 1035 1044 VMXFEATDUMP("ExitStoreEferLma - Store EFER.LMA on VM-exit ", fVmxExitStoreEferLma); 1036 1045 VMXFEATDUMP("VmwriteAll - VMWRITE to any VMCS field ", fVmxVmwriteAll); 1046 VMXFEATDUMP("EntryInjectSoftInt - Inject softint. with 0-len instr. ", fVmxEntryInjectSoftInt); 1047 /* Miscellaneous data. */ 1048 VMXFEATDUMP("ExitStoreEferLma - Inject softint. with 0-len instr. ", fVmxExitStoreEferLma); 1049 VMXFEATDUMP("VmwriteAll - Inject softint. with 0-len instr. ", fVmxVmwriteAll); 1037 1050 VMXFEATDUMP("EntryInjectSoftInt - Inject softint. with 0-len instr. ", fVmxEntryInjectSoftInt); 1038 1051 #undef VMXFEATDUMP … … 1070 1083 pHostFeat->fVmxVirtNmi = RT_BOOL(fPinCtls & VMX_PIN_CTLS_VIRT_NMI); 1071 1084 pHostFeat->fVmxPreemptTimer = RT_BOOL(fPinCtls & VMX_PIN_CTLS_PREEMPT_TIMER); 1085 pHostFeat->fVmxPostedInt = RT_BOOL(fPinCtls & VMX_PIN_CTLS_POSTED_INT); 1072 1086 1073 1087 /* Processor-based VM-execution controls. */ … … 1084 1098 pHostFeat->fVmxCr8LoadExit = RT_BOOL(fProcCtls & VMX_PROC_CTLS_CR8_LOAD_EXIT); 1085 1099 pHostFeat->fVmxCr8StoreExit = RT_BOOL(fProcCtls & VMX_PROC_CTLS_CR8_STORE_EXIT); 1086 pHostFeat->fVmx TprShadow= RT_BOOL(fProcCtls & VMX_PROC_CTLS_USE_TPR_SHADOW);1100 pHostFeat->fVmxUseTprShadow = RT_BOOL(fProcCtls & VMX_PROC_CTLS_USE_TPR_SHADOW); 1087 1101 pHostFeat->fVmxNmiWindowExit = RT_BOOL(fProcCtls & VMX_PROC_CTLS_NMI_WINDOW_EXIT); 1088 1102 pHostFeat->fVmxMovDRxExit = RT_BOOL(fProcCtls & VMX_PROC_CTLS_MOV_DR_EXIT); … … 1107 1121 pHostFeat->fVmxWbinvdExit = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_WBINVD_EXIT); 1108 1122 pHostFeat->fVmxUnrestrictedGuest = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_UNRESTRICTED_GUEST); 1123 pHostFeat->fVmxApicRegVirt = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_APIC_REG_VIRT); 1124 pHostFeat->fVmxVirtIntDelivery = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_VIRT_INT_DELIVERY); 1109 1125 pHostFeat->fVmxPauseLoopExit = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_PAUSE_LOOP_EXIT); 1110 1126 pHostFeat->fVmxInvpcid = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_INVPCID); 1127 pHostFeat->fVmxVmFunc = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_VMFUNC); 1111 1128 pHostFeat->fVmxVmcsShadowing = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_VMCS_SHADOWING); 1129 pHostFeat->fVmxEptXcptVe = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_EPT_VE); 1130 pHostFeat->fVmxXsavesXrstors = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_XSAVES_XRSTORS); 1131 pHostFeat->fVmxUseTscScaling = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_TSC_SCALING); 1112 1132 } 1113 1133 … … 1117 1137 pHostFeat->fVmxIa32eModeGuest = RT_BOOL(fEntryCtls & VMX_ENTRY_CTLS_IA32E_MODE_GUEST); 1118 1138 pHostFeat->fVmxEntryLoadEferMsr = RT_BOOL(fEntryCtls & VMX_ENTRY_CTLS_LOAD_EFER_MSR); 1139 pHostFeat->fVmxEntryLoadPatMsr = RT_BOOL(fEntryCtls & VMX_ENTRY_CTLS_LOAD_PAT_MSR); 1119 1140 1120 1141 /* VM-exit controls. */ … … 1123 1144 pHostFeat->fVmxHostAddrSpaceSize = RT_BOOL(fExitCtls & VMX_EXIT_CTLS_HOST_ADDR_SPACE_SIZE); 1124 1145 pHostFeat->fVmxExitAckExtInt = RT_BOOL(fExitCtls & VMX_EXIT_CTLS_ACK_EXT_INT); 1146 pHostFeat->fVmxExitSavePatMsr = RT_BOOL(fExitCtls & VMX_EXIT_CTLS_SAVE_PAT_MSR); 1147 pHostFeat->fVmxExitLoadPatMsr = RT_BOOL(fExitCtls & VMX_EXIT_CTLS_LOAD_PAT_MSR); 1125 1148 pHostFeat->fVmxExitSaveEferMsr = RT_BOOL(fExitCtls & VMX_EXIT_CTLS_SAVE_EFER_MSR); 1126 1149 pHostFeat->fVmxExitLoadEferMsr = RT_BOOL(fExitCtls & VMX_EXIT_CTLS_LOAD_EFER_MSR); … … 1146 1169 EmuFeat.fVmxNmiExit = 1; 1147 1170 EmuFeat.fVmxVirtNmi = 0; 1148 EmuFeat.fVmxPreemptTimer = 0; 1171 EmuFeat.fVmxPreemptTimer = 0; /** @todo NSTVMX: enable this. */ 1172 EmuFeat.fVmxPostedInt = 0; 1149 1173 EmuFeat.fVmxIntWindowExit = 1; 1150 1174 EmuFeat.fVmxTscOffsetting = 1; … … 1158 1182 EmuFeat.fVmxCr8LoadExit = 1; 1159 1183 EmuFeat.fVmxCr8StoreExit = 1; 1160 EmuFeat.fVmx TprShadow= 0;1184 EmuFeat.fVmxUseTprShadow = 0; 1161 1185 EmuFeat.fVmxNmiWindowExit = 0; 1162 1186 EmuFeat.fVmxMovDRxExit = 1; … … 1176 1200 EmuFeat.fVmxWbinvdExit = 1; 1177 1201 EmuFeat.fVmxUnrestrictedGuest = 0; 1202 EmuFeat.fVmxApicRegVirt = 0; 1203 EmuFeat.fVmxVirtIntDelivery = 0; 1178 1204 EmuFeat.fVmxPauseLoopExit = 0; 1179 1205 EmuFeat.fVmxInvpcid = 1; 1206 EmuFeat.fVmxVmFunc = 0; 1180 1207 EmuFeat.fVmxVmcsShadowing = 0; 1208 EmuFeat.fVmxEptXcptVe = 0; 1209 EmuFeat.fVmxXsavesXrstors = 0; 1210 EmuFeat.fVmxUseTscScaling = 0; 1181 1211 EmuFeat.fVmxEntryLoadDebugCtls = 1; 1182 1212 EmuFeat.fVmxIa32eModeGuest = 1; 1183 1213 EmuFeat.fVmxEntryLoadEferMsr = 1; 1214 EmuFeat.fVmxEntryLoadPatMsr = 0; 1184 1215 EmuFeat.fVmxExitSaveDebugCtls = 1; 1185 1216 EmuFeat.fVmxHostAddrSpaceSize = 1; 1186 1217 EmuFeat.fVmxExitAckExtInt = 0; 1218 EmuFeat.fVmxExitSavePatMsr = 0; 1219 EmuFeat.fVmxExitLoadPatMsr = 0; 1187 1220 EmuFeat.fVmxExitSaveEferMsr = 1; 1188 1221 EmuFeat.fVmxExitLoadEferMsr = 1; … … 1208 1241 pGuestFeat->fVmxVirtNmi = (pBaseFeat->fVmxVirtNmi & EmuFeat.fVmxVirtNmi ); 1209 1242 pGuestFeat->fVmxPreemptTimer = (pBaseFeat->fVmxPreemptTimer & EmuFeat.fVmxPreemptTimer ); 1243 pGuestFeat->fVmxPostedInt = (pBaseFeat->fVmxPostedInt & EmuFeat.fVmxPostedInt ); 1210 1244 pGuestFeat->fVmxIntWindowExit = (pBaseFeat->fVmxIntWindowExit & EmuFeat.fVmxIntWindowExit ); 1211 1245 pGuestFeat->fVmxTscOffsetting = (pBaseFeat->fVmxTscOffsetting & EmuFeat.fVmxTscOffsetting ); … … 1219 1253 pGuestFeat->fVmxCr8LoadExit = (pBaseFeat->fVmxCr8LoadExit & EmuFeat.fVmxCr8LoadExit ); 1220 1254 pGuestFeat->fVmxCr8StoreExit = (pBaseFeat->fVmxCr8StoreExit & EmuFeat.fVmxCr8StoreExit ); 1221 pGuestFeat->fVmx TprShadow = (pBaseFeat->fVmxTprShadow & EmuFeat.fVmxTprShadow);1255 pGuestFeat->fVmxUseTprShadow = (pBaseFeat->fVmxUseTprShadow & EmuFeat.fVmxUseTprShadow ); 1222 1256 pGuestFeat->fVmxNmiWindowExit = (pBaseFeat->fVmxNmiWindowExit & EmuFeat.fVmxNmiWindowExit ); 1223 1257 pGuestFeat->fVmxMovDRxExit = (pBaseFeat->fVmxMovDRxExit & EmuFeat.fVmxMovDRxExit ); … … 1237 1271 pGuestFeat->fVmxWbinvdExit = (pBaseFeat->fVmxWbinvdExit & EmuFeat.fVmxWbinvdExit ); 1238 1272 pGuestFeat->fVmxUnrestrictedGuest = (pBaseFeat->fVmxUnrestrictedGuest & EmuFeat.fVmxUnrestrictedGuest ); 1273 pGuestFeat->fVmxApicRegVirt = (pBaseFeat->fVmxApicRegVirt & EmuFeat.fVmxApicRegVirt ); 1274 pGuestFeat->fVmxVirtIntDelivery = (pBaseFeat->fVmxVirtIntDelivery & EmuFeat.fVmxVirtIntDelivery ); 1239 1275 pGuestFeat->fVmxPauseLoopExit = (pBaseFeat->fVmxPauseLoopExit & EmuFeat.fVmxPauseLoopExit ); 1240 1276 pGuestFeat->fVmxInvpcid = (pBaseFeat->fVmxInvpcid & EmuFeat.fVmxInvpcid ); 1277 pGuestFeat->fVmxVmFunc = (pBaseFeat->fVmxVmFunc & EmuFeat.fVmxVmFunc ); 1241 1278 pGuestFeat->fVmxVmcsShadowing = (pBaseFeat->fVmxVmcsShadowing & EmuFeat.fVmxVmcsShadowing ); 1279 pGuestFeat->fVmxEptXcptVe = (pBaseFeat->fVmxEptXcptVe & EmuFeat.fVmxEptXcptVe ); 1280 pGuestFeat->fVmxXsavesXrstors = (pBaseFeat->fVmxXsavesXrstors & EmuFeat.fVmxXsavesXrstors ); 1281 pGuestFeat->fVmxUseTscScaling = (pBaseFeat->fVmxUseTscScaling & EmuFeat.fVmxUseTscScaling ); 1242 1282 pGuestFeat->fVmxEntryLoadDebugCtls = (pBaseFeat->fVmxEntryLoadDebugCtls & EmuFeat.fVmxEntryLoadDebugCtls ); 1243 1283 pGuestFeat->fVmxIa32eModeGuest = (pBaseFeat->fVmxIa32eModeGuest & EmuFeat.fVmxIa32eModeGuest ); 1244 pGuestFeat->fVmxEntryLoadEferMsr = (pBaseFeat->fVmxEntryLoadEferMsr & EmuFeat.fVmxEntryLoadEferMsr); 1284 pGuestFeat->fVmxEntryLoadEferMsr = (pBaseFeat->fVmxEntryLoadEferMsr & EmuFeat.fVmxEntryLoadEferMsr ); 1285 pGuestFeat->fVmxEntryLoadPatMsr = (pBaseFeat->fVmxEntryLoadPatMsr & EmuFeat.fVmxEntryLoadPatMsr ); 1245 1286 pGuestFeat->fVmxExitSaveDebugCtls = (pBaseFeat->fVmxExitSaveDebugCtls & EmuFeat.fVmxExitSaveDebugCtls ); 1246 1287 pGuestFeat->fVmxHostAddrSpaceSize = (pBaseFeat->fVmxHostAddrSpaceSize & EmuFeat.fVmxHostAddrSpaceSize ); 1247 1288 pGuestFeat->fVmxExitAckExtInt = (pBaseFeat->fVmxExitAckExtInt & EmuFeat.fVmxExitAckExtInt ); 1289 pGuestFeat->fVmxExitSavePatMsr = (pBaseFeat->fVmxExitSavePatMsr & EmuFeat.fVmxExitSavePatMsr ); 1290 pGuestFeat->fVmxExitLoadPatMsr = (pBaseFeat->fVmxExitLoadPatMsr & EmuFeat.fVmxExitLoadPatMsr ); 1248 1291 pGuestFeat->fVmxExitSaveEferMsr = (pBaseFeat->fVmxExitSaveEferMsr & EmuFeat.fVmxExitSaveEferMsr ); 1249 1292 pGuestFeat->fVmxExitLoadEferMsr = (pBaseFeat->fVmxExitLoadEferMsr & EmuFeat.fVmxExitLoadEferMsr );
Note:
See TracChangeset
for help on using the changeset viewer.