VirtualBox

Changeset 50819 in vbox for trunk/src


Ignore:
Timestamp:
Mar 19, 2014 11:17:48 AM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
92870
Message:

VMMAll/PGMAllPool: Clear references to the shadow table while adding dirty pages to cause not-present #PFs when the guest starts using them, instead of only relying on explicit CR3 changes/page-invalidations from the guest.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r49482 r50819  
    4747DECLINLINE(unsigned) pgmPoolTrackGetShadowEntrySize(PGMPOOLKIND enmKind);
    4848DECLINLINE(unsigned) pgmPoolTrackGetGuestEntrySize(PGMPOOLKIND enmKind);
     49static void pgmPoolTrackClearPageUsers(PPGMPOOL pPool, PPGMPOOLPAGE pPage);
    4950static void pgmPoolTrackDeref(PPGMPOOL pPool, PPGMPOOLPAGE pPage);
    5051static int pgmPoolTrackAddUser(PPGMPOOL pPool, PPGMPOOLPAGE pPage, uint16_t iUser, uint32_t iUserTable);
     
    17981799
    17991800    Assert(pPool->cDirtyPages == RT_ELEMENTS(pPool->aDirtyPages) || pPool->aDirtyPages[pPool->idxFreeDirtyPage].uIdx == NIL_PGMPOOL_IDX);
    1800     return;
     1801
     1802    /*
     1803     * Clear all references to this shadow table. See @bugref{7298}.
     1804     */
     1805    pgmPoolTrackClearPageUsers(pPool, pPage);
    18011806}
    18021807# endif /* !IN_RING3 */
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette