Changeset 20665 in vbox
- Timestamp:
- Jun 17, 2009 12:59:58 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 48760
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r20530 r20665 1961 1961 * @returns VBox status code. 1962 1962 * @param pVM The VM handle. 1963 * @param pvUser Unused parameter 1963 * @param pVCpu The VMCPU for the EMT we're being called on. Unused. 1964 * @param pvUser Unused parameter. 1965 * 1964 1966 * @remark Should only be used when monitoring is available, thus placed in 1965 * the PGMPOOL_WITH_MONITORING #ifdef. 1966 */ 1967 DECLCALLBACK(int) pgmPoolClearAll(PVM pVM, void *pvUser) 1968 { 1969 NOREF(pvUser); 1967 * the PGMPOOL_WITH_MONITORING \#ifdef. 1968 */ 1969 DECLCALLBACK(int) pgmPoolClearAll(PVM pVM, PVMCPU pVCpu, void *pvUser) 1970 { 1970 1971 PPGMPOOL pPool = pVM->pgm.s.CTX_SUFF(pPool); 1971 1972 STAM_PROFILE_START(&pPool->StatClearAll, c); 1972 1973 LogFlow(("pgmPoolClearAll: cUsedPages=%d\n", pPool->cUsedPages)); 1974 NOREF(pvUser); NOREF(pVCpu); 1973 1975 1974 1976 pgmLock(pVM); … … 2109 2111 PVM pVM = pVCpu->CTX_SUFF(pVM); 2110 2112 LogFlow(("pgmPoolSyncCR3\n")); 2113 2111 2114 /* 2112 2115 * When monitoring shadowed pages, we reset the modification counters on CR3 sync. … … 2118 2121 if (ASMBitTestAndClear(&pVCpu->pgm.s.fSyncFlags, PGM_SYNC_CLEAR_PGM_POOL_BIT)) 2119 2122 { 2120 VMMR3AtomicExecuteHandler(pVM, pgmPoolClearAll, NULL); 2123 int rc = VMMR3EmtRendezvous(pVM, VMMEMTRENDEZVOUS_FLAGS_TYPE_ONCE, pgmPoolClearAll, NULL); 2124 AssertRC(rc); 2125 } 2121 2126 # else /* !IN_RING3 */ 2122 2127 if (pVCpu->pgm.s.fSyncFlags & PGM_SYNC_CLEAR_PGM_POOL) … … 2125 2130 VMCPU_FF_SET(pVCpu, VMCPU_FF_PGM_SYNC_CR3); /** @todo no need to do global sync, right? */ 2126 2131 return VINF_PGM_SYNC_CR3; 2132 } 2127 2133 # endif /* !IN_RING3 */ 2128 }2129 2134 else 2130 2135 pgmPoolMonitorModifiedClearAll(pVM);
Note:
See TracChangeset
for help on using the changeset viewer.