Changeset 31177 in vbox
- Timestamp:
- Jul 28, 2010 5:17:31 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 64164
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/PGMR0DynMap.cpp
r31175 r31177 1185 1185 * @param HCPhys The address of the page to be mapped. 1186 1186 * @param iPage The page index pgmR0DynMapPage hashed HCPhys to. 1187 */ 1188 static uint32_t pgmR0DynMapPageSlow(PPGMR0DYNMAP pThis, RTHCPHYS HCPhys, uint32_t iPage) 1189 { 1190 #ifdef VBOX_WITH_STATISTICS 1191 PVMCPU pVCpu = PGMR0DYNMAP_2_VMCPU(pThis); 1192 #endif 1187 * @param pVCpu The current CPU, for statistics. 1188 */ 1189 static uint32_t pgmR0DynMapPageSlow(PPGMR0DYNMAP pThis, RTHCPHYS HCPhys, uint32_t iPage, PVMCPU pVCpu) 1190 { 1193 1191 STAM_COUNTER_INC(&pVCpu->pgm.s.CTX_SUFF(pStats)->StatR0DynMapPageSlow); 1194 1192 … … 1285 1283 * @param HCPhys The address of the page to be mapped. 1286 1284 * @param iRealCpu The real cpu set index. (optimization) 1285 * @param pVCpu The current CPU (for statistics). 1287 1286 * @param ppvPage Where to the page address. 1288 1287 */ 1289 DECLINLINE(uint32_t) pgmR0DynMapPage(PPGMR0DYNMAP pThis, RTHCPHYS HCPhys, int32_t iRealCpu, void **ppvPage) 1290 { 1291 #ifdef VBOX_WITH_STATISTICS 1292 PVMCPU pVCpu = PGMR0DYNMAP_2_VMCPU(pThis); 1293 #endif 1288 DECLINLINE(uint32_t) pgmR0DynMapPage(PPGMR0DYNMAP pThis, RTHCPHYS HCPhys, int32_t iRealCpu, PVMCPU pVCpu, void **ppvPage) 1289 { 1294 1290 RTSPINLOCKTMP Tmp = RTSPINLOCKTMP_INITIALIZER; 1295 1291 RTSpinlockAcquire(pThis->hSpinlock, &Tmp); … … 1328 1324 else 1329 1325 { 1330 iPage = pgmR0DynMapPageSlow(pThis, HCPhys, iPage );1326 iPage = pgmR0DynMapPageSlow(pThis, HCPhys, iPage, pVCpu); 1331 1327 if (RT_UNLIKELY(iPage == UINT32_MAX)) 1332 1328 { … … 1842 1838 { 1843 1839 LogFlow(("pgmR0DynMapHCPageCommon: pSet=%p HCPhys=%RHp ppv=%p\n", pSet, HCPhys, ppv)); 1844 #ifdef VBOX_WITH_STATISTICS 1840 AssertMsg(pSet->iCpu == RTMpCpuIdToSetIndex(RTMpCpuId()), ("%d %d(%d) efl=%#x\n", pSet->iCpu, RTMpCpuIdToSetIndex(RTMpCpuId()), RTMpCpuId(), ASMGetFlags())); 1845 1841 PVMCPU pVCpu = PGMR0DYNMAP_2_VMCPU(pSet); 1846 #endif1847 AssertMsg(pSet->iCpu == RTMpCpuIdToSetIndex(RTMpCpuId()), ("%d %d(%d) efl=%#x\n", pSet->iCpu, RTMpCpuIdToSetIndex(RTMpCpuId()), RTMpCpuId(), ASMGetFlags()));1848 1842 1849 1843 /* … … 1851 1845 */ 1852 1846 void *pvPage; 1853 uint32_t const iPage = pgmR0DynMapPage(g_pPGMR0DynMap, HCPhys, pSet->iCpu, &pvPage);1847 uint32_t const iPage = pgmR0DynMapPage(g_pPGMR0DynMap, HCPhys, pSet->iCpu, pVCpu, &pvPage); 1854 1848 if (RT_UNLIKELY(iPage == UINT32_MAX)) 1855 1849 {
Note:
See TracChangeset
for help on using the changeset viewer.