Changeset 48038 in vbox
- Timestamp:
- Aug 23, 2013 7:35:02 PM (11 years ago)
- Location:
- trunk/src/VBox/VMM/VMMR0
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r48037 r48038 6162 6162 Assert(!VMMRZCallRing3IsEnabled(pVCpu)); 6163 6163 6164 /* Avoid repeating this work when thread-context hooks are used and we had been preempted before6165 which would've done this work from the VMXR0ThreadCtxCallback(). */6166 6164 RTTHREADPREEMPTSTATE PreemptState = RTTHREADPREEMPTSTATE_INITIALIZER; 6167 6165 bool fPreemptDisabled = false; … … 6173 6171 } 6174 6172 6173 /* Avoid repeating this work when thread-context hooks are used and we had been preempted before 6174 which would've done this work from the VMXR0ThreadCtxCallback(). */ 6175 6175 if (!pVCpu->hm.s.fLeaveDone) 6176 6176 { … … 6237 6237 if (RT_UNLIKELY(rcExit == VERR_VMX_INVALID_GUEST_STATE)) 6238 6238 { 6239 /* We want to see what the guest-state was before VM-entry, don't resync here, as we won't continue guest execution. */6239 /* We've done what is required in hmR0VmxExitErrInvalidGuestState(). We're not going to continue guest execution... */ 6240 6240 return; 6241 6241 } … … 6245 6245 pVCpu->hm.s.vmx.LastError.u32VMCSRevision = *(uint32_t *)pVCpu->hm.s.vmx.pvVmcs; 6246 6246 pVCpu->hm.s.vmx.LastError.idEnteredCpu = pVCpu->hm.s.idEnteredCpu; 6247 pVCpu->hm.s.vmx.LastError.idCurrentCpu = RTMpCpuId();6247 /* LastError.idCurrentCpu was updated in hmR0VmxPreRunGuestCommitted(). */ 6248 6248 return; 6249 6249 } … … 9093 9093 NOREF(uInvalidReason); 9094 9094 9095 #ifdef VBOX_STRICT 9095 9096 Log4(("VMX_VMCS32_CTRL_ENTRY_INTERRUPTION_INFO %#RX32\n", pVmxTransient->uEntryIntrInfo)); 9096 9097 Log4(("VMX_VMCS32_CTRL_ENTRY_EXCEPTION_ERRCODE %#RX32\n", pVmxTransient->uEntryXcptErrorCode)); … … 9110 9111 rc = VMXReadVmcs64(VMX_VMCS64_CTRL_EPTP_FULL, &u64Val); AssertRC(rc); 9111 9112 Log4(("VMX_VMCS64_CTRL_EPTP_FULL %#RX64\n", u64Val)); 9113 #endif 9112 9114 9113 9115 PVM pVM = pVCpu->CTX_SUFF(pVM); -
trunk/src/VBox/VMM/VMMR0/VMMR0.cpp
r48032 r48038 568 568 569 569 case RTTHREADCTXEVENT_PREEMPTING: 570 { 571 /* Invoke the HM-specific thread-context callback. */ 572 HMR0ThreadCtxCallback(enmEvent, pvUser); 573 570 574 /* 571 575 * Sigh. See VMMGetCpu() used by VMCPU_ASSERT_EMT(). We cannot let several VCPUs … … 573 577 */ 574 578 ASMAtomicWriteU32(&pVCpu->idHostCpu, NIL_RTCPUID); 575 /* fallthru, no break! */ 579 break; 580 } 581 576 582 default: 577 583 /* Invoke the HM-specific thread-context callback. */ … … 579 585 break; 580 586 } 581 582 587 } 583 588
Note:
See TracChangeset
for help on using the changeset viewer.