- Timestamp:
- May 14, 2009 8:08:42 AM (16 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGMPool.cpp
r19631 r19675 528 528 * We cannot flush a page if we're in an async thread because of REM notifications. 529 529 */ 530 pgmLock(pVM); 530 531 if (!pVCpu) 531 532 { … … 535 536 if (!pPage->fReusedFlushPending) 536 537 { 538 pgmUnlock(pVM); 537 539 int rc = VMR3ReqCallEx(pPool->pVMR3, VMCPUID_ANY, NULL, 0, VMREQFLAGS_NO_WAIT | VMREQFLAGS_VOID, (PFNRT)pgmR3PoolFlushReusedPage, 2, pPool, pPage); 538 540 AssertRCReturn(rc, rc); 541 pgmLock(pVM); 539 542 pPage->fReusedFlushPending = true; 540 543 pPage->cModifications += 0x1000; 541 544 } 545 542 546 pgmPoolMonitorChainChanging(pVCpu, pPool, pPage, GCPhys, pvPhys, NULL); 543 547 /** @todo r=bird: making unsafe assumption about not crossing entries here! */ … … 568 572 STAM_PROFILE_STOP_EX(&pPool->StatMonitorR3, &pPool->StatMonitorR3FlushPage, a); 569 573 } 570 574 pgmUnlock(pVM); 571 575 return VINF_PGM_HANDLER_DO_DEFAULT; 572 576 } -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r19674 r19675 1118 1118 AssertRCReturn(rc, rc); 1119 1119 1120 pgmLock(pVM); 1121 1120 1122 /* 1121 1123 * Check if it's worth dealing with. … … 1135 1137 rc = pgmPoolAccessHandlerSimple(pVM, pVCpu, pPool, pPage, &Cpu, pRegFrame, GCPhysFault, pvFault); 1136 1138 STAM_PROFILE_STOP_EX(&pVM->pgm.s.CTX_SUFF(pPool)->CTX_SUFF_Z(StatMonitor), &pPool->CTX_MID_Z(StatMonitor,Handled), a); 1139 pgmUnlock(pVM); 1137 1140 return rc; 1138 1141 } … … 1157 1160 rc = pgmPoolAccessHandlerSTOSD(pVM, pPool, pPage, &Cpu, pRegFrame, GCPhysFault, pvFault); 1158 1161 STAM_PROFILE_STOP_EX(&pVM->pgm.s.CTX_SUFF(pPool)->CTX_SUFF_Z(StatMonitor), &pPool->CTX_MID_Z(StatMonitor,RepStosd), a); 1162 pgmUnlock(pVM); 1159 1163 return rc; 1160 1164 } … … 1178 1182 rc = VINF_SUCCESS; 1179 1183 STAM_PROFILE_STOP_EX(&pVM->pgm.s.CTX_SUFF(pPool)->CTX_SUFF_Z(StatMonitor), &pPool->CTX_MID_Z(StatMonitor,FlushPage), a); 1184 pgmUnlock(pVM); 1180 1185 return rc; 1181 1186 }
Note:
See TracChangeset
for help on using the changeset viewer.