Changeset 46707 in vbox
- Timestamp:
- Jun 20, 2013 12:45:41 PM (11 years ago)
- File:
-
- 1 edited
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r46665 r46707 4794 4794 && uExitVector == X86_XCPT_PF) 4795 4795 { 4796 Log4(("IDT: Contributory #PF uCR2=%#RX64\n", pMixedCtx->cr2));4796 Log4(("IDT: vcpu[%RU32] Contributory #PF uCR2=%#RX64\n", pVCpu->idCpu, pMixedCtx->cr2)); 4797 4797 } 4798 4798 #endif … … 4801 4801 { 4802 4802 pVmxTransient->fVectoringPF = true; 4803 Log4(("IDT: Vectoring #PF uCR2=%#RX64\n", pMixedCtx->cr2));4803 Log4(("IDT: vcpu[%RU32] Vectoring #PF uCR2=%#RX64\n", pVCpu->idCpu, pMixedCtx->cr2)); 4804 4804 } 4805 4805 else if ( (pVCpu->hm.s.vmx.u32XcptBitmap & HMVMX_CONTRIBUTORY_XCPT_MASK) … … 4813 4813 enmReflect = VMXREFLECTXCPT_TF; 4814 4814 } 4815 else if ( uIntType != VMX_IDT_VECTORING_INFO_TYPE_SW_INT4816 && uIntType != VMX_IDT_VECTORING_INFO_TYPE_SW_XCPT4817 && uIntType != VMX_IDT_VECTORING_INFO_TYPE_PRIV_SW_XCPT)4815 else if ( uIntType == VMX_IDT_VECTORING_INFO_TYPE_HW_XCPT 4816 || uIntType == VMX_IDT_VECTORING_INFO_TYPE_EXT_INT 4817 || uIntType == VMX_IDT_VECTORING_INFO_TYPE_NMI) 4818 4818 { 4819 4819 /* … … 4831 4831 * original exception to the guest after handling the VM-exit. 4832 4832 */ 4833 enmReflect = VMXREFLECTXCPT_XCPT; 4833 if ( uIntType == VMX_IDT_VECTORING_INFO_TYPE_HW_XCPT 4834 || uIntType == VMX_IDT_VECTORING_INFO_TYPE_EXT_INT 4835 || uIntType == VMX_IDT_VECTORING_INFO_TYPE_NMI) 4836 { 4837 enmReflect = VMXREFLECTXCPT_XCPT; 4838 } 4834 4839 } 4835 4840 … … 4838 4843 case VMXREFLECTXCPT_XCPT: 4839 4844 { 4845 Assert( uIntType != VMX_IDT_VECTORING_INFO_TYPE_SW_INT 4846 && uIntType != VMX_IDT_VECTORING_INFO_TYPE_SW_XCPT 4847 && uIntType != VMX_IDT_VECTORING_INFO_TYPE_PRIV_SW_XCPT); 4848 4840 4849 uint32_t u32ErrCode = 0; 4841 4850 if (VMX_IDT_VECTORING_INFO_ERROR_CODE_IS_VALID(pVCpu->hm.s.Event.u64IntrInfo)) … … 4850 4859 0 /* cbInstr */, u32ErrCode, pMixedCtx->cr2); 4851 4860 rc = VINF_SUCCESS; 4852 Log4(("IDT: Pending vectoring event %#RX64 Err=%#RX32\n", pVCpu->hm.s.Event.u64IntrInfo,4853 pVCpu->hm.s.Event.u 32ErrCode));4861 Log4(("IDT: vcpu[%RU32] Pending vectoring event %#RX64 Err=%#RX32\n", pVCpu->idCpu, 4862 pVCpu->hm.s.Event.u64IntrInfo, pVCpu->hm.s.Event.u32ErrCode)); 4854 4863 break; 4855 4864 } … … 4859 4868 hmR0VmxSetPendingXcptDF(pVCpu, pMixedCtx); 4860 4869 rc = VINF_HM_DOUBLE_FAULT; 4861 Log4(("IDT: Pending vectoring #DF %#RX64 uIdtVector=%#x uExitVector=%#x\n", pVCpu->hm.s.Event.u64IntrInfo,4862 uIdtVector, uExitVector));4870 Log4(("IDT: vcpu[%RU32] Pending vectoring #DF %#RX64 uIdtVector=%#x uExitVector=%#x\n", pVCpu->idCpu, 4871 pVCpu->hm.s.Event.u64IntrInfo, uIdtVector, uExitVector)); 4863 4872 break; 4864 4873 } … … 4867 4876 { 4868 4877 rc = VINF_EM_RESET; 4869 Log4(("IDT: Pending vectoring triple-fault uIdt=%#x uExit=%#x\n", uIdtVector, uExitVector)); 4878 Log4(("IDT: vcpu[%RU32] Pending vectoring triple-fault uIdt=%#x uExit=%#x\n", pVCpu->idCpu, uIdtVector, 4879 uExitVector)); 4870 4880 break; 4871 4881 } … … 6083 6093 if (fInject) 6084 6094 { 6085 Log4(("Injecting pending event \n"));6095 Log4(("Injecting pending event vcpu[%RU32]\n", pVCpu->idCpu)); 6086 6096 rc = hmR0VmxInjectEventVmcs(pVCpu, pMixedCtx, pVCpu->hm.s.Event.u64IntrInfo, pVCpu->hm.s.Event.cbInstr, 6087 6097 pVCpu->hm.s.Event.u32ErrCode, pVCpu->hm.s.Event.GCPtrFaultAddress, &uIntrState); … … 6494 6504 } 6495 6505 6496 Log4(("Injecting u32IntrInfo=%#x u32ErrCode=%#x cbInstr=%#x pMixedCtx->uCR2=%#RX64\n", u32IntrInfo, u32ErrCode, cbInstr,6497 pMixedCtx->cr2));6506 Log4(("Injecting vcpu[%RU32] u32IntrInfo=%#x u32ErrCode=%#x cbInstr=%#x pMixedCtx->uCR2=%#RX64\n", pVCpu->idCpu, 6507 u32IntrInfo, u32ErrCode, cbInstr, pMixedCtx->cr2)); 6498 6508 6499 6509 AssertRCReturn(rc, rc);
Note:
See TracChangeset
for help on using the changeset viewer.

