Changeset 47583 in vbox
- Timestamp:
- Aug 7, 2013 11:56:08 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/HM.cpp
r47512 r47583 978 978 LogRel(("HM: Using VT-x implementation 2.0!\n")); 979 979 #endif 980 LogRel(("HM: Host CR4 = % 08X\n", pVM->hm.s.vmx.hostCR4));981 LogRel(("HM: MSR_IA32_FEATURE_CONTROL = % RX64\n", pVM->hm.s.vmx.msr.feature_ctrl));982 LogRel(("HM: MSR_IA32_VMX_BASIC_INFO = % RX64\n", pVM->hm.s.vmx.msr.vmx_basic_info));983 LogRel(("HM: VMCS id = % x\n", MSR_IA32_VMX_BASIC_INFO_VMCS_ID(pVM->hm.s.vmx.msr.vmx_basic_info)));984 LogRel(("HM: VMCS size = % x\n", MSR_IA32_VMX_BASIC_INFO_VMCS_SIZE(pVM->hm.s.vmx.msr.vmx_basic_info)));980 LogRel(("HM: Host CR4 = %#RX64\n", pVM->hm.s.vmx.hostCR4)); 981 LogRel(("HM: MSR_IA32_FEATURE_CONTROL = %#RX64\n", pVM->hm.s.vmx.msr.feature_ctrl)); 982 LogRel(("HM: MSR_IA32_VMX_BASIC_INFO = %#RX64\n", pVM->hm.s.vmx.msr.vmx_basic_info)); 983 LogRel(("HM: VMCS id = %#x\n", MSR_IA32_VMX_BASIC_INFO_VMCS_ID(pVM->hm.s.vmx.msr.vmx_basic_info))); 984 LogRel(("HM: VMCS size = %#x\n", MSR_IA32_VMX_BASIC_INFO_VMCS_SIZE(pVM->hm.s.vmx.msr.vmx_basic_info))); 985 985 LogRel(("HM: VMCS physical address limit = %s\n", MSR_IA32_VMX_BASIC_INFO_VMCS_PHYS_WIDTH(pVM->hm.s.vmx.msr.vmx_basic_info) ? "< 4 GB" : "None")); 986 LogRel(("HM: VMCS memory type = % x\n", MSR_IA32_VMX_BASIC_INFO_VMCS_MEM_TYPE(pVM->hm.s.vmx.msr.vmx_basic_info)));987 LogRel(("HM: Dual-monitor treatment = % d\n",MSR_IA32_VMX_BASIC_INFO_VMCS_DUAL_MON(pVM->hm.s.vmx.msr.vmx_basic_info)));988 LogRel(("HM: OUTS & INS instruction-info = % d\n",MSR_IA32_VMX_BASIC_INFO_VMCS_INS_OUTS(pVM->hm.s.vmx.msr.vmx_basic_info)));989 LogRel(("HM: Max resume loops = % RX32\n", pVM->hm.s.cMaxResumeLoops));990 991 LogRel(("HM: MSR_IA32_VMX_PINBASED_CTLS = % RX64\n", pVM->hm.s.vmx.msr.vmx_pin_ctls.u));986 LogRel(("HM: VMCS memory type = %#x\n", MSR_IA32_VMX_BASIC_INFO_VMCS_MEM_TYPE(pVM->hm.s.vmx.msr.vmx_basic_info))); 987 LogRel(("HM: Dual-monitor treatment = %RTbool\n", !!MSR_IA32_VMX_BASIC_INFO_VMCS_DUAL_MON(pVM->hm.s.vmx.msr.vmx_basic_info))); 988 LogRel(("HM: OUTS & INS instruction-info = %RTbool\n", !!MSR_IA32_VMX_BASIC_INFO_VMCS_INS_OUTS(pVM->hm.s.vmx.msr.vmx_basic_info))); 989 LogRel(("HM: Max resume loops = %u\n", pVM->hm.s.cMaxResumeLoops)); 990 991 LogRel(("HM: MSR_IA32_VMX_PINBASED_CTLS = %#RX64\n", pVM->hm.s.vmx.msr.vmx_pin_ctls.u)); 992 992 val = pVM->hm.s.vmx.msr.vmx_pin_ctls.n.allowed1; 993 993 zap = pVM->hm.s.vmx.msr.vmx_pin_ctls.n.disallowed0; … … 997 997 HMVMX_REPORT_FEATURE(val, zap, VMX_VMCS_CTRL_PIN_EXEC_PREEMPT_TIMER); 998 998 999 LogRel(("HM: MSR_IA32_VMX_PROCBASED_CTLS = % RX64\n", pVM->hm.s.vmx.msr.vmx_proc_ctls.u));999 LogRel(("HM: MSR_IA32_VMX_PROCBASED_CTLS = %#RX64\n", pVM->hm.s.vmx.msr.vmx_proc_ctls.u)); 1000 1000 val = pVM->hm.s.vmx.msr.vmx_proc_ctls.n.allowed1; 1001 1001 zap = pVM->hm.s.vmx.msr.vmx_proc_ctls.n.disallowed0; … … 1023 1023 if (pVM->hm.s.vmx.msr.vmx_proc_ctls.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC_USE_SECONDARY_EXEC_CTRL) 1024 1024 { 1025 LogRel(("HM: MSR_IA32_VMX_PROCBASED_CTLS2 = % RX64\n", pVM->hm.s.vmx.msr.vmx_proc_ctls2.u));1025 LogRel(("HM: MSR_IA32_VMX_PROCBASED_CTLS2 = %#RX64\n", pVM->hm.s.vmx.msr.vmx_proc_ctls2.u)); 1026 1026 val = pVM->hm.s.vmx.msr.vmx_proc_ctls2.n.allowed1; 1027 1027 zap = pVM->hm.s.vmx.msr.vmx_proc_ctls2.n.disallowed0; … … 1040 1040 } 1041 1041 1042 LogRel(("HM: MSR_IA32_VMX_ENTRY_CTLS = % RX64\n", pVM->hm.s.vmx.msr.vmx_entry.u));1042 LogRel(("HM: MSR_IA32_VMX_ENTRY_CTLS = %#RX64\n", pVM->hm.s.vmx.msr.vmx_entry.u)); 1043 1043 val = pVM->hm.s.vmx.msr.vmx_entry.n.allowed1; 1044 1044 zap = pVM->hm.s.vmx.msr.vmx_entry.n.disallowed0; … … 1051 1051 HMVMX_REPORT_FEATURE(val, zap, VMX_VMCS_CTRL_ENTRY_LOAD_GUEST_EFER_MSR); 1052 1052 1053 LogRel(("HM: MSR_IA32_VMX_EXIT_CTLS = % RX64\n", pVM->hm.s.vmx.msr.vmx_exit.u));1053 LogRel(("HM: MSR_IA32_VMX_EXIT_CTLS = %#RX64\n", pVM->hm.s.vmx.msr.vmx_exit.u)); 1054 1054 val = pVM->hm.s.vmx.msr.vmx_exit.n.allowed1; 1055 1055 zap = pVM->hm.s.vmx.msr.vmx_exit.n.disallowed0; … … 1067 1067 { 1068 1068 val = pVM->hm.s.vmx.msr.vmx_ept_vpid_caps; 1069 LogRel(("HM: MSR_IA32_VMX_EPT_VPID_CAP = % RX64\n", val));1069 LogRel(("HM: MSR_IA32_VMX_EPT_VPID_CAP = %#RX64\n", val)); 1070 1070 HMVMX_REPORT_CAPABILITY(val, MSR_IA32_VMX_EPT_VPID_CAP_RWX_X_ONLY); 1071 1071 HMVMX_REPORT_CAPABILITY(val, MSR_IA32_VMX_EPT_VPID_CAP_RWX_W_ONLY); … … 1095 1095 } 1096 1096 1097 LogRel(("HM: MSR_IA32_VMX_MISC = % RX64\n", pVM->hm.s.vmx.msr.vmx_misc));1097 LogRel(("HM: MSR_IA32_VMX_MISC = %#RX64\n", pVM->hm.s.vmx.msr.vmx_misc)); 1098 1098 if (MSR_IA32_VMX_MISC_PREEMPT_TSC_BIT(pVM->hm.s.vmx.msr.vmx_misc) == pVM->hm.s.vmx.cPreemptTimerShift) 1099 1099 { 1100 LogRel(("HM: MSR_IA32_VMX_MISC_PREEMPT_TSC_BIT = % x\n",1100 LogRel(("HM: MSR_IA32_VMX_MISC_PREEMPT_TSC_BIT = %#x\n", 1101 1101 MSR_IA32_VMX_MISC_PREEMPT_TSC_BIT(pVM->hm.s.vmx.msr.vmx_misc))); 1102 1102 } 1103 1103 else 1104 1104 { 1105 LogRel(("HM: MSR_IA32_VMX_MISC_PREEMPT_TSC_BIT = % x - erratum detected, using %x instead\n",1105 LogRel(("HM: MSR_IA32_VMX_MISC_PREEMPT_TSC_BIT = %#x - erratum detected, using %#x instead\n", 1106 1106 MSR_IA32_VMX_MISC_PREEMPT_TSC_BIT(pVM->hm.s.vmx.msr.vmx_misc), pVM->hm.s.vmx.cPreemptTimerShift)); 1107 1107 } 1108 1108 1109 LogRel(("HM: MSR_IA32_VMX_MISC_STORE_EFERLMA_VMEXIT = % x\n",MSR_IA32_VMX_MISC_STORE_EFERLMA_VMEXIT(pVM->hm.s.vmx.msr.vmx_misc)));1110 LogRel(("HM: MSR_IA32_VMX_MISC_ACTIVITY_STATES = % x\n", MSR_IA32_VMX_MISC_ACTIVITY_STATES(pVM->hm.s.vmx.msr.vmx_misc)));1111 LogRel(("HM: MSR_IA32_VMX_MISC_CR3_TARGET = % x\n", MSR_IA32_VMX_MISC_CR3_TARGET(pVM->hm.s.vmx.msr.vmx_misc)));1112 LogRel(("HM: MSR_IA32_VMX_MISC_MAX_MSR = % x\n", MSR_IA32_VMX_MISC_MAX_MSR(pVM->hm.s.vmx.msr.vmx_misc)));1113 LogRel(("HM: MSR_IA32_VMX_MISC_RDMSR_SMBASE_MSR_SMM = % x\n",MSR_IA32_VMX_MISC_RDMSR_SMBASE_MSR_SMM(pVM->hm.s.vmx.msr.vmx_misc)));1114 LogRel(("HM: MSR_IA32_VMX_MISC_SMM_MONITOR_CTL_B2 = % x\n",MSR_IA32_VMX_MISC_SMM_MONITOR_CTL_B2(pVM->hm.s.vmx.msr.vmx_misc)));1115 LogRel(("HM: MSR_IA32_VMX_MISC_VMWRITE_VMEXIT_INFO = % x\n",MSR_IA32_VMX_MISC_VMWRITE_VMEXIT_INFO(pVM->hm.s.vmx.msr.vmx_misc)));1116 LogRel(("HM: MSR_IA32_VMX_MISC_MSEG_ID = % x\n", MSR_IA32_VMX_MISC_MSEG_ID(pVM->hm.s.vmx.msr.vmx_misc)));1109 LogRel(("HM: MSR_IA32_VMX_MISC_STORE_EFERLMA_VMEXIT = %RTbool\n", !!MSR_IA32_VMX_MISC_STORE_EFERLMA_VMEXIT(pVM->hm.s.vmx.msr.vmx_misc))); 1110 LogRel(("HM: MSR_IA32_VMX_MISC_ACTIVITY_STATES = %#x\n", MSR_IA32_VMX_MISC_ACTIVITY_STATES(pVM->hm.s.vmx.msr.vmx_misc))); 1111 LogRel(("HM: MSR_IA32_VMX_MISC_CR3_TARGET = %#x\n", MSR_IA32_VMX_MISC_CR3_TARGET(pVM->hm.s.vmx.msr.vmx_misc))); 1112 LogRel(("HM: MSR_IA32_VMX_MISC_MAX_MSR = %u\n", MSR_IA32_VMX_MISC_MAX_MSR(pVM->hm.s.vmx.msr.vmx_misc))); 1113 LogRel(("HM: MSR_IA32_VMX_MISC_RDMSR_SMBASE_MSR_SMM = %RTbool\n", !!MSR_IA32_VMX_MISC_RDMSR_SMBASE_MSR_SMM(pVM->hm.s.vmx.msr.vmx_misc))); 1114 LogRel(("HM: MSR_IA32_VMX_MISC_SMM_MONITOR_CTL_B2 = %RTbool\n", !!MSR_IA32_VMX_MISC_SMM_MONITOR_CTL_B2(pVM->hm.s.vmx.msr.vmx_misc))); 1115 LogRel(("HM: MSR_IA32_VMX_MISC_VMWRITE_VMEXIT_INFO = %RTbool\n", !!MSR_IA32_VMX_MISC_VMWRITE_VMEXIT_INFO(pVM->hm.s.vmx.msr.vmx_misc))); 1116 LogRel(("HM: MSR_IA32_VMX_MISC_MSEG_ID = %#x\n", MSR_IA32_VMX_MISC_MSEG_ID(pVM->hm.s.vmx.msr.vmx_misc))); 1117 1117 1118 1118 /* Paranoia */ 1119 1119 AssertRelease(MSR_IA32_VMX_MISC_MAX_MSR(pVM->hm.s.vmx.msr.vmx_misc) >= 512); 1120 1120 1121 LogRel(("HM: MSR_IA32_VMX_CR0_FIXED0 = % RX64\n", pVM->hm.s.vmx.msr.vmx_cr0_fixed0));1122 LogRel(("HM: MSR_IA32_VMX_CR0_FIXED1 = % RX64\n", pVM->hm.s.vmx.msr.vmx_cr0_fixed1));1123 LogRel(("HM: MSR_IA32_VMX_CR4_FIXED0 = % RX64\n", pVM->hm.s.vmx.msr.vmx_cr4_fixed0));1124 LogRel(("HM: MSR_IA32_VMX_CR4_FIXED1 = % RX64\n", pVM->hm.s.vmx.msr.vmx_cr4_fixed1));1125 LogRel(("HM: MSR_IA32_VMX_VMCS_ENUM = % RX64\n", pVM->hm.s.vmx.msr.vmx_vmcs_enum));1126 LogRel(("HM: MSR_IA32_VMX_VMCS_ENUM_HIGHEST_INDEX = % x\n", MSR_IA32_VMX_VMCS_ENUM_HIGHEST_INDEX(pVM->hm.s.vmx.msr.vmx_vmcs_enum)));1121 LogRel(("HM: MSR_IA32_VMX_CR0_FIXED0 = %#RX64\n", pVM->hm.s.vmx.msr.vmx_cr0_fixed0)); 1122 LogRel(("HM: MSR_IA32_VMX_CR0_FIXED1 = %#RX64\n", pVM->hm.s.vmx.msr.vmx_cr0_fixed1)); 1123 LogRel(("HM: MSR_IA32_VMX_CR4_FIXED0 = %#RX64\n", pVM->hm.s.vmx.msr.vmx_cr4_fixed0)); 1124 LogRel(("HM: MSR_IA32_VMX_CR4_FIXED1 = %#RX64\n", pVM->hm.s.vmx.msr.vmx_cr4_fixed1)); 1125 LogRel(("HM: MSR_IA32_VMX_VMCS_ENUM = %#RX64\n", pVM->hm.s.vmx.msr.vmx_vmcs_enum)); 1126 LogRel(("HM: MSR_IA32_VMX_VMCS_ENUM_HIGHEST_INDEX = %#x\n", MSR_IA32_VMX_VMCS_ENUM_HIGHEST_INDEX(pVM->hm.s.vmx.msr.vmx_vmcs_enum))); 1127 1127 1128 1128 val = pVM->hm.s.vmx.msr.vmx_vmfunc; 1129 1129 if (val) 1130 1130 { 1131 LogRel(("HM: MSR_A32_VMX_VMFUNC = % RX64\n", val));1131 LogRel(("HM: MSR_A32_VMX_VMFUNC = %#RX64\n", val)); 1132 1132 HMVMX_REPORT_ALLOWED_FEATURE(val, VMX_VMCS_CTRL_VMFUNC_EPTP_SWITCHING); 1133 1133 } 1134 1134 1135 LogRel(("HM: APIC-access page physaddr = % RHp\n", pVM->hm.s.vmx.HCPhysApicAccess));1135 LogRel(("HM: APIC-access page physaddr = %#RHp\n", pVM->hm.s.vmx.HCPhysApicAccess)); 1136 1136 1137 1137 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1138 1138 { 1139 LogRel(("HM: VCPU%3d: MSR bitmap physaddr = % RHp\n", i, pVM->aCpus[i].hm.s.vmx.HCPhysMsrBitmap));1140 LogRel(("HM: VCPU%3d: VMCS physaddr = % RHp\n", i, pVM->aCpus[i].hm.s.vmx.HCPhysVmcs));1139 LogRel(("HM: VCPU%3d: MSR bitmap physaddr = %#RHp\n", i, pVM->aCpus[i].hm.s.vmx.HCPhysMsrBitmap)); 1140 LogRel(("HM: VCPU%3d: VMCS physaddr = %#RHp\n", i, pVM->aCpus[i].hm.s.vmx.HCPhysVmcs)); 1141 1141 } 1142 1142 … … 1207 1207 rc = PDMVmmDevHeapR3ToGCPhys(pVM, pVM->hm.s.vmx.pRealModeTSS, &GCPhys); 1208 1208 AssertRCReturn(rc, rc); 1209 LogRel(("HM: Real Mode TSS guest physaddr = % RGp\n", GCPhys));1209 LogRel(("HM: Real Mode TSS guest physaddr = %#RGp\n", GCPhys)); 1210 1210 1211 1211 rc = PDMVmmDevHeapR3ToGCPhys(pVM, pVM->hm.s.vmx.pNonPagingModeEPTPageTable, &GCPhys); 1212 1212 AssertRCReturn(rc, rc); 1213 LogRel(("HM: Non-Paging Mode EPT CR3 = % RGp\n", GCPhys));1213 LogRel(("HM: Non-Paging Mode EPT CR3 = %#RGp\n", GCPhys)); 1214 1214 } 1215 1215 else … … 1233 1233 LogRel(("HM: VMX setup failed with rc=%Rrc!\n", rc)); 1234 1234 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1235 LogRel(("HM: CPU[% ld] Last instruction error %x\n", i, pVM->aCpus[i].hm.s.vmx.LastError.u32InstrError));1235 LogRel(("HM: CPU[%RU32] Last instruction error %#x\n", i, pVM->aCpus[i].hm.s.vmx.LastError.u32InstrError)); 1236 1236 return VMSetError(pVM, rc, RT_SRC_POS, "VT-x setup failed: %Rrc", rc); 1237 1237 } … … 1279 1279 { 1280 1280 LogRel(("HM: Nested paging enabled!\n")); 1281 LogRel(("HM: EPT root page physaddr = % RHp\n", PGMGetHyperCR3(VMMGetCpu(pVM))));1281 LogRel(("HM: EPT root page physaddr = %#RHp\n", PGMGetHyperCR3(VMMGetCpu(pVM)))); 1282 1282 if (pVM->hm.s.vmx.enmFlushEpt == VMX_FLUSH_EPT_SINGLE_CONTEXT) 1283 1283 LogRel(("HM: EPT flush type = VMX_FLUSH_EPT_SINGLE_CONTEXT\n")); … … 1390 1390 if (HMAmdIsSubjectToErratum170(&u32Family, &u32Model, &u32Stepping)) 1391 1391 LogRel(("HM: AMD Cpu with erratum 170 family %#x model %#x stepping %#x\n", u32Family, u32Model, u32Stepping)); 1392 LogRel(("HM: CPUID 0x80000001.u32AMDFeatureECX = % RX32\n", pVM->hm.s.cpuid.u32AMDFeatureECX));1393 LogRel(("HM: CPUID 0x80000001.u32AMDFeatureEDX = % RX32\n", pVM->hm.s.cpuid.u32AMDFeatureEDX));1394 LogRel(("HM: AMD HWCR MSR = % RX64\n", pVM->hm.s.svm.msrHwcr));1395 LogRel(("HM: AMD-V revision = % X\n",pVM->hm.s.svm.u32Rev));1396 LogRel(("HM: AMD-V max ASID = %RU32\n", pVM->hm.s.uMaxAsid));1397 LogRel(("HM: AMD-V features = % X\n",pVM->hm.s.svm.u32Features));1392 LogRel(("HM: CPUID 0x80000001.u32AMDFeatureECX = %#RX32\n", pVM->hm.s.cpuid.u32AMDFeatureECX)); 1393 LogRel(("HM: CPUID 0x80000001.u32AMDFeatureEDX = %#RX32\n", pVM->hm.s.cpuid.u32AMDFeatureEDX)); 1394 LogRel(("HM: AMD HWCR MSR = %#RX64\n", pVM->hm.s.svm.msrHwcr)); 1395 LogRel(("HM: AMD-V revision = %#x\n", pVM->hm.s.svm.u32Rev)); 1396 LogRel(("HM: AMD-V max ASID = %RU32\n", pVM->hm.s.uMaxAsid)); 1397 LogRel(("HM: AMD-V features = %#x\n", pVM->hm.s.svm.u32Features)); 1398 1398 1399 1399 /*
Note:
See TracChangeset
for help on using the changeset viewer.