Changeset 16904 in vbox
- Timestamp:
- Feb 18, 2009 2:35:38 PM (16 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGMInternal.h
r16882 r16904 1635 1635 * It's a hack required because of REMR3NotifyHandlerPhysicalDeregister. */ 1636 1636 bool volatile fReusedFlushPending; 1637 #ifndef VBOX_WITH_PGMPOOL_PAGING_ONLY 1637 1638 /** Used to indicate that the guest is mapping the page is also used as a CR3. 1638 1639 * In these cases the access handler acts differently and will check … … 1642 1643 */ 1643 1644 bool fCR3Mix; 1645 #endif 1644 1646 } PGMPOOLPAGE, *PPGMPOOLPAGE, **PPPGMPOOLPAGE; 1645 1647 -
trunk/src/VBox/VMM/PGMPool.cpp
r16657 r16904 585 585 STAM_PROFILE_STOP(&pPool->StatMonitorR3, a); 586 586 } 587 else if ( (pPage->fCR3Mix || pPage->cModifications < 96) /* it's cheaper here. */ 587 else if ( ( pPage->cModifications < 96 /* it's cheaper here. */ 588 #ifndef VBOX_WITH_PGMPOOL_PAGING_ONLY 589 || pPage->fCR3Mix 590 #endif 591 ) 588 592 && cbBuf <= 4) 589 593 { -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r16782 r16904 1235 1235 bool fReused = false; 1236 1236 if ( ( pPage->cModifications < 48 /** @todo #define */ /** @todo need to check that it's not mapping EIP. */ /** @todo adjust this! */ 1237 || pPage->fCR3Mix) 1237 #ifndef VBOX_WITH_PGMPOOL_PAGING_ONLY 1238 || pPage->fCR3Mix 1239 #endif 1240 ) 1238 1241 && !(fReused = pgmPoolMonitorIsReused(pVM, pPage, pRegFrame, &Cpu, pvFault)) 1239 1242 && !pgmPoolMonitorIsForking(pPool, &Cpu, GCPhysFault & PAGE_OFFSET_MASK)) … … 1944 1947 PPGMPOOLPAGE pNewHead = &pPool->aPages[pPage->iMonitoredNext]; 1945 1948 pNewHead->iMonitoredPrev = NIL_PGMPOOL_IDX; 1949 #ifndef VBOX_WITH_PGMPOOL_PAGING_ONLY 1946 1950 pNewHead->fCR3Mix = pPage->fCR3Mix; 1951 #endif 1947 1952 rc = PGMHandlerPhysicalChangeCallbacks(pVM, pPage->GCPhys & ~(RTGCPHYS)(PAGE_SIZE - 1), 1948 1953 pPool->pfnAccessHandlerR3, MMHyperCCToR3(pVM, pNewHead), … … 4110 4115 pPage->fCached = false; 4111 4116 pPage->fReusedFlushPending = false; 4112 pPage->fCR3Mix = false;4113 4117 #ifdef PGMPOOL_WITH_USER_TRACKING 4114 4118 pPage->iUserHead = NIL_PGMPOOL_USER_INDEX; 4119 #else 4120 pPage->fCR3Mix = false; 4115 4121 #endif 4116 4122 #ifdef PGMPOOL_WITH_CACHE … … 4496 4502 pPage->fCached = false; 4497 4503 pPage->fReusedFlushPending = false; 4498 pPage->fCR3Mix = false;4499 4504 #ifdef PGMPOOL_WITH_MONITORING 4500 4505 pPage->cModifications = 0; 4501 4506 pPage->iModifiedNext = NIL_PGMPOOL_IDX; 4502 4507 pPage->iModifiedPrev = NIL_PGMPOOL_IDX; 4508 #else 4509 pPage->fCR3Mix = false; 4503 4510 #endif 4504 4511 #ifdef PGMPOOL_WITH_USER_TRACKING
Note:
See TracChangeset
for help on using the changeset viewer.