- Timestamp:
- May 7, 2009 1:54:51 PM (16 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGMInternal.h
r19330 r19488 2939 2939 int pgmPoolMonitorChainFlush(PPGMPOOL pPool, PPGMPOOLPAGE pPage); 2940 2940 void pgmPoolMonitorModifiedInsert(PPGMPOOL pPool, PPGMPOOLPAGE pPage); 2941 void pgmPoolMonitorModifiedClearAll(PVM pVM);2942 2941 #endif 2943 2942 -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r19330 r19488 1914 1914 void pgmPoolMonitorModifiedClearAll(PVM pVM) 1915 1915 { 1916 pgmLock(pVM); 1916 1917 PPGMPOOL pPool = pVM->pgm.s.CTX_SUFF(pPool); 1917 1918 LogFlow(("pgmPoolMonitorModifiedClearAll: cModifiedPages=%d\n", pPool->cModifiedPages)); … … 1931 1932 AssertMsg(cPages == pPool->cModifiedPages, ("%d != %d\n", cPages, pPool->cModifiedPages)); 1932 1933 pPool->cModifiedPages = 0; 1934 pgmUnlock(pVM); 1933 1935 } 1934 1936 … … 2078 2080 * sometimes refered to as a 'lightweight flush'. 2079 2081 */ 2080 if (!(pVM->pgm.s.fGlobalSyncFlags & PGM_GLOBAL_SYNC_CLEAR_PGM_POOL))2081 pgmPoolMonitorModifiedClearAll(pVM);2082 else2083 {2084 2082 # ifdef IN_RING3 /* Don't flush in ring-0 or raw mode, it's taking too long. */ 2083 if (ASMBitTestAndClear(&pVM->pgm.s.fGlobalSyncFlags, PGM_GLOBAL_SYNC_CLEAR_PGM_POOL)) 2084 { 2085 2085 /** @todo SMP support! */ 2086 2086 Assert(pVM->cCPUs == 1); 2087 pVM->pgm.s.fGlobalSyncFlags &= ~PGM_GLOBAL_SYNC_CLEAR_PGM_POOL;2088 2087 pgmPoolClearAll(pVM); 2089 2088 # else /* !IN_RING3 */ 2089 if (pVM->pgm.s.fGlobalSyncFlags & PGM_GLOBAL_SYNC_CLEAR_PGM_POOL) 2090 { 2090 2091 LogFlow(("SyncCR3: PGM_GLOBAL_SYNC_CLEAR_PGM_POOL is set -> VINF_PGM_SYNC_CR3\n")); 2091 2092 VMCPU_FF_SET(VMMGetCpu(pVM), VMCPU_FF_PGM_SYNC_CR3); /** @todo no need to do global sync, right? */ … … 2093 2094 # endif /* !IN_RING3 */ 2094 2095 } 2096 else 2097 pgmPoolMonitorModifiedClearAll(pVM); 2098 2095 2099 return VINF_SUCCESS; 2096 2100 }
Note:
See TracChangeset
for help on using the changeset viewer.