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