VirtualBox

Changeset 15671 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Dec 18, 2008 7:09:32 PM (16 years ago)
Author:
vboxsync
Message:

PGMAllHandler.cpp: Prevent pgmPoolTrackFlushGCPhysPTsSlow and pgmPoolTrackFlushGCPhysPTs from filling up the dynamic mapping cache.

File:
1 edited

Legend:

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

    r15284 r15671  
    238238            if (u16)
    239239            {
     240# ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0
     241                /* Start a subset here because pgmPoolTrackFlushGCPhysPTsSlow and pgmPoolTrackFlushGCPhysPTs
     242                   will/may kill the pool otherwise. */
     243                PVMCPU pVCpu = VMMGetCpu(pVM);
     244                uint32_t iPrevSubset = PGMDynMapPushAutoSubset(pVCpu);
     245# endif
     246
    240247                if ((u16 >> (MM_RAM_FLAGS_CREFS_SHIFT - MM_RAM_FLAGS_IDX_SHIFT)) != MM_RAM_FLAGS_CREFS_PHYSEXT)
    241248                    pgmPoolTrackFlushGCPhysPT(pVM,
     
    248255                    rc = pgmPoolTrackFlushGCPhysPTsSlow(pVM, pPage);
    249256                fFlushTLBs = true;
     257
     258#ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0
     259                PGMDynMapPopAutoSubset(pVCpu, iPrevSubset);
     260#endif
    250261            }
     262
    251263#elif defined(PGMPOOL_WITH_CACHE)
     264# ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0
     265            /* Start a subset here because pgmPoolTrackFlushGCPhysPTsSlow kill the pool otherwise. */
     266            PVMCPU pVCpu = VMMGetCpu(pVM);
     267            uint32_t iPrevSubset = PGMDynMapPushAutoSubset(pVCpu);
     268# endif
     269
    252270            rc = pgmPoolTrackFlushGCPhysPTsSlow(pVM, pPage);
    253271            fFlushTLBs = true;
     272
     273# ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0
     274            PGMDynMapPopAutoSubset(pVCpu, iPrevSubset);
     275# endif
    254276#endif
    255277        }
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