- Timestamp:
- Dec 7, 2015 12:26:47 PM (9 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMR0.cpp
r58913 r59020 119 119 /** Host EFER value (set by ring-0 VMX init) */ 120 120 uint64_t u64HostEfer; 121 122 /** Host SMM monitor control (used for logging/diagnostics) */ 123 uint64_t u64HostSmmMonitorCtl; 121 124 122 125 /** VMX MSR values */ … … 383 386 * Read all relevant registers and MSRs. 384 387 */ 385 g_HmR0.vmx.u64HostCr4 = ASMGetCR4(); 386 g_HmR0.vmx.u64HostEfer = ASMRdMsr(MSR_K6_EFER); 387 g_HmR0.vmx.Msrs.u64BasicInfo = ASMRdMsr(MSR_IA32_VMX_BASIC_INFO); 388 g_HmR0.vmx.Msrs.VmxPinCtls.u = ASMRdMsr(MSR_IA32_VMX_PINBASED_CTLS); 389 g_HmR0.vmx.Msrs.VmxProcCtls.u = ASMRdMsr(MSR_IA32_VMX_PROCBASED_CTLS); 390 g_HmR0.vmx.Msrs.VmxExit.u = ASMRdMsr(MSR_IA32_VMX_EXIT_CTLS); 391 g_HmR0.vmx.Msrs.VmxEntry.u = ASMRdMsr(MSR_IA32_VMX_ENTRY_CTLS); 392 g_HmR0.vmx.Msrs.u64Misc = ASMRdMsr(MSR_IA32_VMX_MISC); 393 g_HmR0.vmx.Msrs.u64Cr0Fixed0 = ASMRdMsr(MSR_IA32_VMX_CR0_FIXED0); 394 g_HmR0.vmx.Msrs.u64Cr0Fixed1 = ASMRdMsr(MSR_IA32_VMX_CR0_FIXED1); 395 g_HmR0.vmx.Msrs.u64Cr4Fixed0 = ASMRdMsr(MSR_IA32_VMX_CR4_FIXED0); 396 g_HmR0.vmx.Msrs.u64Cr4Fixed1 = ASMRdMsr(MSR_IA32_VMX_CR4_FIXED1); 397 g_HmR0.vmx.Msrs.u64VmcsEnum = ASMRdMsr(MSR_IA32_VMX_VMCS_ENUM); 388 g_HmR0.vmx.u64HostCr4 = ASMGetCR4(); 389 g_HmR0.vmx.u64HostSmmMonitorCtl = ASMRdMsr(MSR_IA32_SMM_MONITOR_CTL); 390 g_HmR0.vmx.u64HostEfer = ASMRdMsr(MSR_K6_EFER); 391 g_HmR0.vmx.Msrs.u64BasicInfo = ASMRdMsr(MSR_IA32_VMX_BASIC_INFO); 392 g_HmR0.vmx.Msrs.VmxPinCtls.u = ASMRdMsr(MSR_IA32_VMX_PINBASED_CTLS); 393 g_HmR0.vmx.Msrs.VmxProcCtls.u = ASMRdMsr(MSR_IA32_VMX_PROCBASED_CTLS); 394 g_HmR0.vmx.Msrs.VmxExit.u = ASMRdMsr(MSR_IA32_VMX_EXIT_CTLS); 395 g_HmR0.vmx.Msrs.VmxEntry.u = ASMRdMsr(MSR_IA32_VMX_ENTRY_CTLS); 396 g_HmR0.vmx.Msrs.u64Misc = ASMRdMsr(MSR_IA32_VMX_MISC); 397 g_HmR0.vmx.Msrs.u64Cr0Fixed0 = ASMRdMsr(MSR_IA32_VMX_CR0_FIXED0); 398 g_HmR0.vmx.Msrs.u64Cr0Fixed1 = ASMRdMsr(MSR_IA32_VMX_CR0_FIXED1); 399 g_HmR0.vmx.Msrs.u64Cr4Fixed0 = ASMRdMsr(MSR_IA32_VMX_CR4_FIXED0); 400 g_HmR0.vmx.Msrs.u64Cr4Fixed1 = ASMRdMsr(MSR_IA32_VMX_CR4_FIXED1); 401 g_HmR0.vmx.Msrs.u64VmcsEnum = ASMRdMsr(MSR_IA32_VMX_VMCS_ENUM); 398 402 /* VPID 16 bits ASID. */ 399 g_HmR0.uMaxAsid = 0x10000; /* exclusive */403 g_HmR0.uMaxAsid = 0x10000; /* exclusive */ 400 404 401 405 if (g_HmR0.vmx.Msrs.VmxProcCtls.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC_USE_SECONDARY_EXEC_CTRL) … … 1214 1218 pVM->hm.s.vmx.u64HostCr4 = g_HmR0.vmx.u64HostCr4; 1215 1219 pVM->hm.s.vmx.u64HostEfer = g_HmR0.vmx.u64HostEfer; 1220 pVM->hm.s.vmx.u64HostSmmMonitorCtl = g_HmR0.vmx.u64HostSmmMonitorCtl; 1216 1221 pVM->hm.s.vmx.Msrs = g_HmR0.vmx.Msrs; 1217 1222 pVM->hm.s.svm.u64MsrHwcr = g_HmR0.svm.u64MsrHwcr; … … 1289 1294 /* Make sure we don't touch HM after we've disabled HM in preparation of a suspend. */ 1290 1295 AssertReturn(!ASMAtomicReadBool(&g_HmR0.fSuspended), VERR_HM_SUSPEND_PENDING); 1296 1297 LogRel(("pVM=%p EMT=%p\n", pVM, RTThreadNativeSelf())); 1291 1298 1292 1299 /* On first entry we'll sync everything. */ -
trunk/src/VBox/VMM/VMMR3/HM.cpp
r58938 r59020 1124 1124 LogRel(("HM: Host CR4 = %#RX64\n", pVM->hm.s.vmx.u64HostCr4)); 1125 1125 LogRel(("HM: Host EFER = %#RX64\n", pVM->hm.s.vmx.u64HostEfer)); 1126 LogRel(("HM: MSR_IA32_SMM_MONITOR_CTL = %#RX64\n", pVM->hm.s.vmx.u64HostSmmMonitorCtl)); 1126 1127 LogRel(("HM: MSR_IA32_FEATURE_CONTROL = %#RX64\n", pVM->hm.s.vmx.Msrs.u64FeatureCtrl)); 1127 1128 if (!(pVM->hm.s.vmx.Msrs.u64FeatureCtrl & MSR_IA32_FEATURE_CONTROL_LOCK)) -
trunk/src/VBox/VMM/include/HMInternal.h
r59003 r59020 449 449 /** Host CR4 value (set by ring-0 VMX init) */ 450 450 uint64_t u64HostCr4; 451 451 /** Host SMM monitor control (set by ring-0 VMX init) */ 452 uint64_t u64HostSmmMonitorCtl; 452 453 /** Host EFER value (set by ring-0 VMX init) */ 453 454 uint64_t u64HostEfer;
Note:
See TracChangeset
for help on using the changeset viewer.