VirtualBox

Changeset 23090 in vbox


Ignore:
Timestamp:
Sep 17, 2009 12:28:50 PM (15 years ago)
Author:
vboxsync
Message:

Fixed flushing of reused pages

File:
1 edited

Legend:

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

    r23088 r23090  
    15851585    unsigned cChanges = pgmPoolTrackFlushPTPaePae(pPool, pPage, (PX86PTPAE)pvShw, (PCX86PTPAE)pvGst, (PCX86PTPAE)&pPool->aDirtyPages[idxSlot][0], fAllowRemoval, &fFlush);
    15861586    STAM_PROFILE_STOP(&pPool->StatTrackDeref,a);
    1587 
    15881587    /** Note: we might want to consider keeping the dirty page active in case there were many changes. */
    1589     if (fFlush)
    1590     {
    1591         Assert(fAllowRemoval);
    1592         Log(("Flush reused page table!\n"));
    1593         pgmPoolFlushPage(pPool, pPage);
    1594         STAM_COUNTER_INC(&pPool->StatForceFlushReused);
    1595         return;
    1596     }
    15971588
    15981589    /* This page is likely to be modified again, so reduce the nr of modifications just a bit here. */
     
    16101601    pPool->aIdxDirtyPages[idxSlot] = NIL_PGMPOOL_IDX;
    16111602    Assert(pPool->cDirtyPages <= RT_ELEMENTS(pPool->aIdxDirtyPages));
    1612     Log(("Removed dirty page %RGp cMods=%d\n", pPage->GCPhys, pPage->cModifications));
     1603    if (fFlush)
     1604    {
     1605        Assert(fAllowRemoval);
     1606        Log(("Flush reused page table!\n"));
     1607        pgmPoolFlushPage(pPool, pPage);
     1608        STAM_COUNTER_INC(&pPool->StatForceFlushReused);
     1609    }
     1610    else
     1611        Log(("Removed dirty page %RGp cMods=%d\n", pPage->GCPhys, pPage->cModifications));
    16131612}
    16141613
Note: See TracChangeset for help on using the changeset viewer.

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