Changeset 47999 in vbox
- Timestamp:
- Aug 22, 2013 4:03:03 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/hm_vmx.h
r47760 r47999 94 94 AssertCompileSize(VMXRESTOREHOST, 56); 95 95 96 /** @name VMX HM-error codes for VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO. 97 * UFC = Unsupported Feature Combination. 98 * @{ 99 */ 100 /** Unsupported pin-based VM-execution controls combo. */ 101 #define VMX_UFC_CTRL_PIN_EXEC 0 102 /** Unsupported processor-based VM-execution controls combo. */ 103 #define VMX_UFC_CTRL_PROC_EXEC 1 104 /** Unsupported pin-based VM-execution controls combo. */ 105 #define VMX_UFC_CTRL_PROC_MOV_DRX_EXIT 2 106 /** Unsupported VM-entry controls combo. */ 107 #define VMX_UFC_CTRL_ENTRY 3 108 /** Unsupported VM-exit controls combo. */ 109 #define VMX_UFC_CTRL_EXIT 4 110 /** MSR storage capacity of the VMCS autoload/store area is not sufficient 111 * for storing host MSRs. */ 112 #define VMX_UFC_INSUFFICIENT_HOST_MSR_STORAGE 5 113 /** MSR storage capacity of the VMCS autoload/store area is not sufficient 114 * for storing guest MSRs. */ 115 #define VMX_UFC_INSUFFICIENT_GUEST_MSR_STORAGE 6 116 /** @} */ 117 96 118 /** @name VMX HM-error codes for VERR_VMX_INVALID_GUEST_STATE. 119 * IGS = Invalid Guest State. 97 120 * @{ 98 121 */ -
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r47997 r47999 1723 1723 LogRel(("hmR0VmxSetupPinCtls: invalid pin-based VM-execution controls combo! cpu=%#RX64 val=%#RX64 zap=%#RX64\n", 1724 1724 pVM->hm.s.vmx.msr.vmx_pin_ctls.n.disallowed0, val, zap)); 1725 pVCpu->hm.s.u32HMError = VMX_UFC_CTRL_PIN_EXEC; 1725 1726 return VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO; 1726 1727 } … … 1764 1765 { 1765 1766 LogRel(("hmR0VmxSetupProcCtls: unsupported VMX_VMCS_CTRL_PROC_EXEC_MOV_DR_EXIT combo!")); 1767 pVCpu->hm.s.u32HMError = VMX_UFC_CTRL_PROC_MOV_DRX_EXIT; 1766 1768 return VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO; 1767 1769 } … … 1829 1831 LogRel(("hmR0VmxSetupProcCtls: invalid processor-based VM-execution controls combo! cpu=%#RX64 val=%#RX64 zap=%#RX64\n", 1830 1832 pVM->hm.s.vmx.msr.vmx_proc_ctls.n.disallowed0, val, zap)); 1833 pVCpu->hm.s.u32HMError = VMX_UFC_CTRL_PROC_EXEC; 1831 1834 return VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO; 1832 1835 } … … 2552 2555 { 2553 2556 LogRel(("cHostMsrs=%u Cpu=%u\n", cHostMsrs, (unsigned)MSR_IA32_VMX_MISC_MAX_MSR(pVM->hm.s.vmx.msr.vmx_misc))); 2557 pVCpu->hm.s.u32HMError = VMX_UFC_INSUFFICIENT_HOST_MSR_STORAGE; 2554 2558 return VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO; 2555 2559 } … … 2638 2642 LogRel(("hmR0VmxLoadGuestEntryCtls: invalid VM-entry controls combo! cpu=%RX64 val=%RX64 zap=%RX64\n", 2639 2643 pVM->hm.s.vmx.msr.vmx_entry.n.disallowed0, val, zap)); 2644 pVCpu->hm.s.u32HMError = VMX_UFC_CTRL_ENTRY; 2640 2645 return VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO; 2641 2646 } … … 2708 2713 LogRel(("hmR0VmxSetupProcCtls: invalid VM-exit controls combo! cpu=%RX64 val=%RX64 zap=%RX64\n", 2709 2714 pVM->hm.s.vmx.msr.vmx_exit.n.disallowed0, val, zap)); 2715 pVCpu->hm.s.u32HMError = VMX_UFC_CTRL_EXIT; 2710 2716 return VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO; 2711 2717 } … … 3954 3960 { 3955 3961 LogRel(("CPU autoload/store MSR count in VMCS exceeded cGuestMsrs=%u.\n", cGuestMsrs)); 3962 pVCpu->hm.s.u32HMError = VMX_UFC_INSUFFICIENT_GUEST_MSR_STORAGE; 3956 3963 return VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO; 3957 3964 } -
trunk/src/VBox/VMM/VMMR3/HM.cpp
r47958 r47999 1231 1231 LogRel(("HM: VMX setup failed with rc=%Rrc!\n", rc)); 1232 1232 for (VMCPUID i = 0; i < pVM->cCpus; i++) 1233 LogRel(("HM: CPU[%RU32] Last instruction error %#x\n", i, pVM->aCpus[i].hm.s.vmx.LastError.u32InstrError)); 1233 { 1234 PVMCPU pVCpu = &pVM->aCpus[i]; 1235 LogRel(("HM: CPU[%u] Last instruction error %#x\n", i, pVCpu->hm.s.vmx.LastError.u32InstrError)); 1236 LogRel(("HM: CPU[%u] HM error %#x (%u)\n", i, pVCpu->hm.s.u32HMError, pVCpu->hm.s.u32HMError)); 1237 } 1234 1238 return VMSetError(pVM, rc, RT_SRC_POS, "VT-x setup failed: %Rrc", rc); 1235 1239 } … … 2877 2881 for (VMCPUID i = 0; i < pVM->cCpus; i++) 2878 2882 { 2883 PVMCPU pVCpu = &pVM->aCpus[i]; 2879 2884 switch (iStatusCode) 2880 2885 { … … 2884 2889 case VERR_VMX_INVALID_VMCS_PTR: 2885 2890 LogRel(("HM: VERR_VMX_INVALID_VMCS_PTR:\n")); 2886 LogRel(("HM: CPU[%u] Current pointer %#RGp vs %#RGp\n", i, pV M->aCpus[i].hm.s.vmx.LastError.u64VMCSPhys,2887 pV M->aCpus[i].hm.s.vmx.HCPhysVmcs));2888 LogRel(("HM: CPU[%u] Current VMCS version %#x\n", i, pV M->aCpus[i].hm.s.vmx.LastError.u32VMCSRevision));2889 LogRel(("HM: CPU[%u] Entered Cpu %u\n", i, pV M->aCpus[i].hm.s.vmx.LastError.idEnteredCpu));2890 LogRel(("HM: CPU[%u] Current Cpu %u\n", i, pV M->aCpus[i].hm.s.vmx.LastError.idCurrentCpu));2891 LogRel(("HM: CPU[%u] Current pointer %#RGp vs %#RGp\n", i, pVCpu->hm.s.vmx.LastError.u64VMCSPhys, 2892 pVCpu->hm.s.vmx.HCPhysVmcs)); 2893 LogRel(("HM: CPU[%u] Current VMCS version %#x\n", i, pVCpu->hm.s.vmx.LastError.u32VMCSRevision)); 2894 LogRel(("HM: CPU[%u] Entered Cpu %u\n", i, pVCpu->hm.s.vmx.LastError.idEnteredCpu)); 2895 LogRel(("HM: CPU[%u] Current Cpu %u\n", i, pVCpu->hm.s.vmx.LastError.idCurrentCpu)); 2891 2896 break; 2892 2897 2893 2898 case VERR_VMX_UNABLE_TO_START_VM: 2894 2899 LogRel(("HM: VERR_VMX_UNABLE_TO_START_VM:\n")); 2895 LogRel(("HM: CPU[%u] Instruction error %#x\n", i, pV M->aCpus[i].hm.s.vmx.LastError.u32InstrError));2896 LogRel(("HM: CPU[%u] Exit reason %#x\n", i, pV M->aCpus[i].hm.s.vmx.LastError.u32ExitReason));2900 LogRel(("HM: CPU[%u] Instruction error %#x\n", i, pVCpu->hm.s.vmx.LastError.u32InstrError)); 2901 LogRel(("HM: CPU[%u] Exit reason %#x\n", i, pVCpu->hm.s.vmx.LastError.u32ExitReason)); 2897 2902 2898 2903 if ( pVM->aCpus[i].hm.s.vmx.LastError.u32InstrError == VMX_ERROR_VMLAUCH_NON_CLEAR_VMCS 2899 2904 || pVM->aCpus[i].hm.s.vmx.LastError.u32InstrError == VMX_ERROR_VMRESUME_NON_LAUNCHED_VMCS) 2900 2905 { 2901 LogRel(("HM: CPU[%u] Entered Cpu %u\n", i, pV M->aCpus[i].hm.s.vmx.LastError.idEnteredCpu));2902 LogRel(("HM: CPU[%u] Current Cpu %u\n", i, pV M->aCpus[i].hm.s.vmx.LastError.idCurrentCpu));2906 LogRel(("HM: CPU[%u] Entered Cpu %u\n", i, pVCpu->hm.s.vmx.LastError.idEnteredCpu)); 2907 LogRel(("HM: CPU[%u] Current Cpu %u\n", i, pVCpu->hm.s.vmx.LastError.idCurrentCpu)); 2903 2908 } 2904 2909 else if (pVM->aCpus[i].hm.s.vmx.LastError.u32InstrError == VMX_ERROR_VMENTRY_INVALID_CONTROL_FIELDS) 2905 2910 { 2906 LogRel(("HM: CPU[%u] PinCtls %#RX32\n", i, pV M->aCpus[i].hm.s.vmx.u32PinCtls));2907 LogRel(("HM: CPU[%u] ProcCtls %#RX32\n", i, pV M->aCpus[i].hm.s.vmx.u32ProcCtls));2908 LogRel(("HM: CPU[%u] ProcCtls2 %#RX32\n", i, pV M->aCpus[i].hm.s.vmx.u32ProcCtls2));2909 LogRel(("HM: CPU[%u] EntryCtls %#RX32\n", i, pV M->aCpus[i].hm.s.vmx.u32EntryCtls));2910 LogRel(("HM: CPU[%u] ExitCtls %#RX32\n", i, pV M->aCpus[i].hm.s.vmx.u32ExitCtls));2911 LogRel(("HM: CPU[%u] MSRBitmapPhys %#RHp\n", i, pV M->aCpus[i].hm.s.vmx.HCPhysMsrBitmap));2911 LogRel(("HM: CPU[%u] PinCtls %#RX32\n", i, pVCpu->hm.s.vmx.u32PinCtls)); 2912 LogRel(("HM: CPU[%u] ProcCtls %#RX32\n", i, pVCpu->hm.s.vmx.u32ProcCtls)); 2913 LogRel(("HM: CPU[%u] ProcCtls2 %#RX32\n", i, pVCpu->hm.s.vmx.u32ProcCtls2)); 2914 LogRel(("HM: CPU[%u] EntryCtls %#RX32\n", i, pVCpu->hm.s.vmx.u32EntryCtls)); 2915 LogRel(("HM: CPU[%u] ExitCtls %#RX32\n", i, pVCpu->hm.s.vmx.u32ExitCtls)); 2916 LogRel(("HM: CPU[%u] MSRBitmapPhys %#RHp\n", i, pVCpu->hm.s.vmx.HCPhysMsrBitmap)); 2912 2917 #ifdef VBOX_WITH_AUTO_MSR_LOAD_RESTORE 2913 LogRel(("HM: CPU[%u] GuestMSRPhys %#RHp\n", i, pV M->aCpus[i].hm.s.vmx.HCPhysGuestMsr));2914 LogRel(("HM: CPU[%u] HostMsrPhys %#RHp\n", i, pV M->aCpus[i].hm.s.vmx.HCPhysHostMsr));2915 LogRel(("HM: CPU[%u] cGuestMSRs %u\n", i, pV M->aCpus[i].hm.s.vmx.cGuestMsrs));2918 LogRel(("HM: CPU[%u] GuestMSRPhys %#RHp\n", i, pVCpu->hm.s.vmx.HCPhysGuestMsr)); 2919 LogRel(("HM: CPU[%u] HostMsrPhys %#RHp\n", i, pVCpu->hm.s.vmx.HCPhysHostMsr)); 2920 LogRel(("HM: CPU[%u] cGuestMSRs %u\n", i, pVCpu->hm.s.vmx.cGuestMsrs)); 2916 2921 #endif 2917 2922 } … … 2924 2929 break; 2925 2930 2931 case VERR_HM_UNSUPPORTED_CPU_FEATURE_COMBO: 2926 2932 case VERR_VMX_INVALID_GUEST_STATE: 2927 2933 case VERR_VMX_UNEXPECTED_EXIT_CODE: … … 2931 2937 case VERR_SVM_UNEXPECTED_XCPT_EXIT: 2932 2938 { 2933 LogRel(("HM: CPU[%u] HM error %#x (%u)\n", i, pV M->aCpus[i].hm.s.u32HMError, pVM->aCpus[i].hm.s.u32HMError));2939 LogRel(("HM: CPU[%u] HM error %#x (%u)\n", i, pVCpu->hm.s.u32HMError, pVCpu->hm.s.u32HMError)); 2934 2940 break; 2935 2941 }
Note:
See TracChangeset
for help on using the changeset viewer.