Changeset 20981 in vbox
- Timestamp:
- Jun 26, 2009 3:03:24 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 49189
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/HWACCMInternal.h
r20979 r20981 575 575 /** Currenty shadow paging mode. */ 576 576 PGMMODE enmShadowMode; 577 578 /** The CPU ID of the CPU currently owning the VMCS. Set in 579 * HWACCMR0Enter and cleared in HWACCMR0Leave. */ 580 RTCPUID idEnteredCpu; 577 581 578 582 /** To keep track of pending TLB shootdown pages. (SMP guest only) */ -
trunk/src/VBox/VMM/VMMAll/HWACCMAll.cpp
r20979 r20981 131 131 STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatTlbShootdown); 132 132 #ifdef IN_RING0 133 RTCPUID idHostCpu = pVCpu-> idHostCpu;133 RTCPUID idHostCpu = pVCpu->hwaccm.s.idEnteredCpu; 134 134 if (idHostCpu != NIL_RTCPUID) 135 135 RTMpPokeCpu(idHostCpu); … … 171 171 STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatTlbShootdownFlush); 172 172 #ifdef IN_RING0 173 RTCPUID idHostCpu = pVCpu-> idHostCpu;173 RTCPUID idHostCpu = pVCpu->hwaccm.s.idEnteredCpu; 174 174 if (idHostCpu != NIL_RTCPUID) 175 175 RTMpPokeCpu(idHostCpu); … … 246 246 STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatTlbShootdownFlush); 247 247 #ifdef IN_RING0 248 RTCPUID idHostCpu = pVCpu-> idHostCpu;248 RTCPUID idHostCpu = pVCpu->hwaccm.s.idEnteredCpu; 249 249 if (idHostCpu != NIL_RTCPUID) 250 250 RTMpPokeCpu(idHostCpu); -
trunk/src/VBox/VMM/VMMR0/HWACCMR0.cpp
r20979 r20981 851 851 PVMCPU pVCpu = &pVM->aCpus[i]; 852 852 853 pVCpu->hwaccm.s.idEnteredCpu = NIL_RTCPUID; 854 853 855 /* Invalidate the last cpu we were running on. */ 854 856 pVCpu->hwaccm.s.idLastCpu = NIL_RTCPUID; … … 961 963 /* Make sure we can't enter a session after we've disabled hwaccm in preparation of a suspend. */ 962 964 AssertReturn(!ASMAtomicReadBool(&HWACCMR0Globals.fSuspended), VERR_HWACCM_SUSPEND_PENDING); 963 Assert(pVCpu->idHostCpu == NIL_RTCPUID);964 965 965 ASMAtomicWriteBool(&pCpu->fInUse, true); 966 ASMAtomicWriteU32(&pVCpu->idHostCpu, idCpu); 966 967 AssertMsg(pVCpu->hwaccm.s.idEnteredCpu == NIL_RTCPUID, ("%d", (int)pVCpu->hwaccm.s.idEnteredCpu)); 968 pVCpu->hwaccm.s.idEnteredCpu = idCpu; 967 969 968 970 pCtx = CPUMQueryGuestCtxPtr(pVCpu); … … 998 1000 #endif 999 1001 } 1002 else 1003 pVCpu->hwaccm.s.idEnteredCpu = NIL_RTCPUID; 1000 1004 return rc; 1001 1005 } … … 1038 1042 /* keep track of the CPU owning the VMCS for debugging scheduling weirdness and ring-3 calls. */ 1039 1043 #ifdef RT_STRICT 1040 if (RT_UNLIKELY( pVCpu-> idHostCpu != idCpu1044 if (RT_UNLIKELY( pVCpu->hwaccm.s.idEnteredCpu != idCpu 1041 1045 && RT_FAILURE(rc))) 1042 1046 { 1043 AssertMsgFailed(("Owner is %d, I'm %d", (int)pVCpu-> idHostCpu, (int)idCpu));1047 AssertMsgFailed(("Owner is %d, I'm %d", (int)pVCpu->hwaccm.s.idEnteredCpu, (int)idCpu)); 1044 1048 rc = VERR_INTERNAL_ERROR; 1045 1049 } 1046 1050 #endif 1051 pVCpu->hwaccm.s.idEnteredCpu = NIL_RTCPUID; 1047 1052 1048 1053 ASMAtomicWriteBool(&pCpu->fInUse, false); … … 1195 1200 PVMCPU pVCpu = &pVM->aCpus[idCpu]; 1196 1201 1197 if (pVCpu-> idHostCpu == idHostCpu)1202 if (pVCpu->hwaccm.s.idEnteredCpu == idHostCpu) 1198 1203 return pVCpu; 1199 1204 } -
trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
r20979 r20981 2112 2112 if (!fStatEntryStarted) { STAM_PROFILE_ADV_START(&pVCpu->hwaccm.s.StatEntry, x); fStatEntryStarted = true; } 2113 2113 }); 2114 AssertMsg(pVCpu-> idHostCpu == RTMpCpuId(),2114 AssertMsg(pVCpu->hwaccm.s.idEnteredCpu == RTMpCpuId(), 2115 2115 ("Expected %d, I'm %d; cResume=%d exitReason=%RGv exitQualification=%RGv\n", 2116 (int)pVCpu-> idHostCpu, (int)RTMpCpuId(), cResume, exitReason, exitQualification));2116 (int)pVCpu->hwaccm.s.idEnteredCpu, (int)RTMpCpuId(), cResume, exitReason, exitQualification)); 2117 2117 Assert(!HWACCMR0SuspendPending()); 2118 2118 … … 3731 3731 VMXGetActivateVMCS(&pVCpu->hwaccm.s.vmx.lasterror.u64VMCSPhys); 3732 3732 pVCpu->hwaccm.s.vmx.lasterror.ulVMCSRevision = *(uint32_t *)pVCpu->hwaccm.s.vmx.pVMCS; 3733 pVCpu->hwaccm.s.vmx.lasterror.idEnteredCpu = pVCpu-> idHostCpu;3733 pVCpu->hwaccm.s.vmx.lasterror.idEnteredCpu = pVCpu->hwaccm.s.idEnteredCpu; 3734 3734 pVCpu->hwaccm.s.vmx.lasterror.idCurrentCpu = RTMpCpuId(); 3735 3735 } -
trunk/src/VBox/VMM/VMMR0/VMMR0.cpp
r20979 r20981 608 608 RTCCUINTREG uFlags = ASMIntDisableFlags(); 609 609 #endif 610 ASMAtomicWriteU32(&pVCpu->idHostCpu, NIL_RTCPUID); 611 610 612 #ifdef LOG_ENABLED 611 613 if (pVCpu->idCpu > 0)
Note:
See TracChangeset
for help on using the changeset viewer.