Changeset 87543 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Feb 2, 2021 5:00:24 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 142569
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/HM.cpp
r87531 r87543 1073 1073 { 1074 1074 LogRel(("HM: Failed to initialize VT-x / AMD-V: %Rrc\n", pVM->hm.s.rcInit)); 1075 LogRel(("HM: VMX MSR_IA32_FEATURE_CONTROL=%RX64\n", pVM->hm.s.vmx.Msrs .u64FeatCtrl));1075 LogRel(("HM: VMX MSR_IA32_FEATURE_CONTROL=%RX64\n", pVM->hm.s.vmx.MsrsForRing3.u64FeatCtrl)); 1076 1076 switch (pVM->hm.s.rcInit) 1077 1077 { … … 1502 1502 1503 1503 LogFunc(("pVM->hm.s.vmx.fSupported = %d\n", pVM->hm.s.vmx.fSupported)); 1504 AssertLogRelReturn(pVM->hm.s.vmx.Msrs .u64FeatCtrl != 0, VERR_HM_IPE_4);1504 AssertLogRelReturn(pVM->hm.s.vmx.MsrsForRing3.u64FeatCtrl != 0, VERR_HM_IPE_4); 1505 1505 1506 1506 LogRel(("HM: Using VT-x implementation 3.0\n")); … … 1510 1510 LogRel(("HM: MSR_IA32_SMM_MONITOR_CTL = %#RX64\n", pVM->hm.s.vmx.u64HostSmmMonitorCtl)); 1511 1511 1512 hmR3VmxReportFeatCtlMsr(pVM->hm.s.vmx.Msrs .u64FeatCtrl);1513 hmR3VmxReportBasicMsr(pVM->hm.s.vmx.Msrs .u64Basic);1514 1515 hmR3VmxReportPinBasedCtlsMsr(&pVM->hm.s.vmx.Msrs .PinCtls);1516 hmR3VmxReportProcBasedCtlsMsr(&pVM->hm.s.vmx.Msrs .ProcCtls);1517 if (pVM->hm.s.vmx.Msrs .ProcCtls.n.allowed1 & VMX_PROC_CTLS_USE_SECONDARY_CTLS)1518 hmR3VmxReportProcBasedCtls2Msr(&pVM->hm.s.vmx.Msrs .ProcCtls2);1519 1520 hmR3VmxReportEntryCtlsMsr(&pVM->hm.s.vmx.Msrs .EntryCtls);1521 hmR3VmxReportExitCtlsMsr(&pVM->hm.s.vmx.Msrs .ExitCtls);1522 1523 if (RT_BF_GET(pVM->hm.s.vmx.Msrs .u64Basic, VMX_BF_BASIC_TRUE_CTLS))1512 hmR3VmxReportFeatCtlMsr(pVM->hm.s.vmx.MsrsForRing3.u64FeatCtrl); 1513 hmR3VmxReportBasicMsr(pVM->hm.s.vmx.MsrsForRing3.u64Basic); 1514 1515 hmR3VmxReportPinBasedCtlsMsr(&pVM->hm.s.vmx.MsrsForRing3.PinCtls); 1516 hmR3VmxReportProcBasedCtlsMsr(&pVM->hm.s.vmx.MsrsForRing3.ProcCtls); 1517 if (pVM->hm.s.vmx.MsrsForRing3.ProcCtls.n.allowed1 & VMX_PROC_CTLS_USE_SECONDARY_CTLS) 1518 hmR3VmxReportProcBasedCtls2Msr(&pVM->hm.s.vmx.MsrsForRing3.ProcCtls2); 1519 1520 hmR3VmxReportEntryCtlsMsr(&pVM->hm.s.vmx.MsrsForRing3.EntryCtls); 1521 hmR3VmxReportExitCtlsMsr(&pVM->hm.s.vmx.MsrsForRing3.ExitCtls); 1522 1523 if (RT_BF_GET(pVM->hm.s.vmx.MsrsForRing3.u64Basic, VMX_BF_BASIC_TRUE_CTLS)) 1524 1524 { 1525 1525 /* We don't extensively dump the true capability MSRs as we don't use them, see @bugref{9180#c5}. */ 1526 LogRel(("HM: MSR_IA32_VMX_TRUE_PINBASED_CTLS = %#RX64\n", pVM->hm.s.vmx.Msrs .TruePinCtls));1527 LogRel(("HM: MSR_IA32_VMX_TRUE_PROCBASED_CTLS = %#RX64\n", pVM->hm.s.vmx.Msrs .TrueProcCtls));1528 LogRel(("HM: MSR_IA32_VMX_TRUE_ENTRY_CTLS = %#RX64\n", pVM->hm.s.vmx.Msrs .TrueEntryCtls));1529 LogRel(("HM: MSR_IA32_VMX_TRUE_EXIT_CTLS = %#RX64\n", pVM->hm.s.vmx.Msrs .TrueExitCtls));1530 } 1531 1532 hmR3VmxReportMiscMsr(pVM, pVM->hm.s.vmx.Msrs .u64Misc);1533 hmR3VmxReportVmcsEnumMsr(pVM->hm.s.vmx.Msrs .u64VmcsEnum);1534 if (pVM->hm.s.vmx.Msrs .u64EptVpidCaps)1535 hmR3VmxReportEptVpidCapsMsr(pVM->hm.s.vmx.Msrs .u64EptVpidCaps);1536 if (pVM->hm.s.vmx.Msrs .u64VmFunc)1537 hmR3VmxReportVmFuncMsr(pVM->hm.s.vmx.Msrs .u64VmFunc);1538 hmR3VmxReportCrFixedMsrs(&pVM->hm.s.vmx.Msrs );1526 LogRel(("HM: MSR_IA32_VMX_TRUE_PINBASED_CTLS = %#RX64\n", pVM->hm.s.vmx.MsrsForRing3.TruePinCtls)); 1527 LogRel(("HM: MSR_IA32_VMX_TRUE_PROCBASED_CTLS = %#RX64\n", pVM->hm.s.vmx.MsrsForRing3.TrueProcCtls)); 1528 LogRel(("HM: MSR_IA32_VMX_TRUE_ENTRY_CTLS = %#RX64\n", pVM->hm.s.vmx.MsrsForRing3.TrueEntryCtls)); 1529 LogRel(("HM: MSR_IA32_VMX_TRUE_EXIT_CTLS = %#RX64\n", pVM->hm.s.vmx.MsrsForRing3.TrueExitCtls)); 1530 } 1531 1532 hmR3VmxReportMiscMsr(pVM, pVM->hm.s.vmx.MsrsForRing3.u64Misc); 1533 hmR3VmxReportVmcsEnumMsr(pVM->hm.s.vmx.MsrsForRing3.u64VmcsEnum); 1534 if (pVM->hm.s.vmx.MsrsForRing3.u64EptVpidCaps) 1535 hmR3VmxReportEptVpidCapsMsr(pVM->hm.s.vmx.MsrsForRing3.u64EptVpidCaps); 1536 if (pVM->hm.s.vmx.MsrsForRing3.u64VmFunc) 1537 hmR3VmxReportVmFuncMsr(pVM->hm.s.vmx.MsrsForRing3.u64VmFunc); 1538 hmR3VmxReportCrFixedMsrs(&pVM->hm.s.vmx.MsrsForRing3); 1539 1539 1540 1540 #ifdef TODO_9217_VMCSINFO … … 1564 1564 */ 1565 1565 AssertLogRelReturn( !pVM->hm.s.fNestedPagingCfg 1566 || (pVM->hm.s.vmx.Msrs .ProcCtls2.n.allowed1 & VMX_PROC_CTLS2_EPT),1566 || (pVM->hm.s.vmx.MsrsForRing3.ProcCtls2.n.allowed1 & VMX_PROC_CTLS2_EPT), 1567 1567 VERR_HM_IPE_1); 1568 1568 AssertLogRelReturn( !pVM->hm.s.vmx.fUnrestrictedGuest 1569 || ( (pVM->hm.s.vmx.Msrs .ProcCtls2.n.allowed1 & VMX_PROC_CTLS2_UNRESTRICTED_GUEST)1569 || ( (pVM->hm.s.vmx.MsrsForRing3.ProcCtls2.n.allowed1 & VMX_PROC_CTLS2_UNRESTRICTED_GUEST) 1570 1570 && pVM->hm.s.fNestedPagingCfg), 1571 1571 VERR_HM_IPE_1); … … 1576 1576 * in Nehalems and secondary VM exec. controls should be supported in all of them, but nonetheless it's Intel... 1577 1577 */ 1578 if ( !(pVM->hm.s.vmx.Msrs .ProcCtls.n.allowed1 & VMX_PROC_CTLS_USE_SECONDARY_CTLS)1578 if ( !(pVM->hm.s.vmx.MsrsForRing3.ProcCtls.n.allowed1 & VMX_PROC_CTLS_USE_SECONDARY_CTLS) 1579 1579 && CPUMR3GetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_RDTSCP)) 1580 1580 { … … 1749 1749 if (pVM->hm.s.vmx.fUseVmcsShadowing) 1750 1750 { 1751 bool const fFullVmcsShadow = RT_BOOL(pVM->hm.s.vmx.Msrs .u64Misc & VMX_MISC_VMWRITE_ALL);1751 bool const fFullVmcsShadow = RT_BOOL(pVM->hm.s.vmx.MsrsForRing3.u64Misc & VMX_MISC_VMWRITE_ALL); 1752 1752 LogRel(("HM: Enabled %s VMCS shadowing\n", fFullVmcsShadow ? "full" : "partial")); 1753 1753 } … … 3072 3072 if (iStatusCode == VERR_VMX_UNABLE_TO_START_VM) 3073 3073 { 3074 LogRel(("HM: VERR_VMX_UNABLE_TO_START_VM: VM-entry allowed-1 %#RX32\n", pVM->hm.s.vmx.Msrs .EntryCtls.n.allowed1));3075 LogRel(("HM: VERR_VMX_UNABLE_TO_START_VM: VM-entry allowed-0 %#RX32\n", pVM->hm.s.vmx.Msrs .EntryCtls.n.allowed0));3074 LogRel(("HM: VERR_VMX_UNABLE_TO_START_VM: VM-entry allowed-1 %#RX32\n", pVM->hm.s.vmx.MsrsForRing3.EntryCtls.n.allowed1)); 3075 LogRel(("HM: VERR_VMX_UNABLE_TO_START_VM: VM-entry allowed-0 %#RX32\n", pVM->hm.s.vmx.MsrsForRing3.EntryCtls.n.allowed0)); 3076 3076 } 3077 3077 else if (iStatusCode == VERR_VMX_INVALID_VMXON_PTR)
Note:
See TracChangeset
for help on using the changeset viewer.