VirtualBox

Changeset 24711 in vbox


Ignore:
Timestamp:
Nov 17, 2009 10:28:24 AM (15 years ago)
Author:
vboxsync
Message:

Missing flushes + more stats

Location:
trunk/src/VBox/VMM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/PGM.cpp

    r24695 r24711  
    16081608    PGM_REG_COUNTER(&pPGM->StatR3PageMapTlbHits,              "/PGM/R3/Page/MapTlbHits",            "TLB hits.");
    16091609    PGM_REG_COUNTER(&pPGM->StatR3PageMapTlbMisses,            "/PGM/R3/Page/MapTlbMisses",          "TLB misses.");
     1610    PGM_REG_COUNTER(&pPGM->StatPageMapTlbFlushes,             "/PGM/R3/Page/MapTlbFlushes",         "TLB flushes (all contexts).");
    16101611
    16111612    PGM_REG_PROFILE(&pPGM->StatRZSyncCR3HandlerVirtualUpdate, "/PGM/RZ/SyncCR3/Handlers/VirtualUpdate", "Profiling of the virtual handler updates.");
  • trunk/src/VBox/VMM/PGMInternal.h

    r24192 r24711  
    27772777    STAMCOUNTER StatRZPageMapTlbHits;               /**< RC/R0: Ring-3/0 page mapper TLB hits. */
    27782778    STAMCOUNTER StatRZPageMapTlbMisses;             /**< RC/R0: Ring-3/0 page mapper TLB misses. */
     2779    STAMCOUNTER StatPageMapTlbFlushes;              /**< ALL: Ring-3/0 page mapper TLB flushes. */
    27792780    STAMCOUNTER StatR3ChunkR3MapTlbHits;            /**< R3: Ring-3/0 chunk mapper TLB hits. */
    27802781    STAMCOUNTER StatR3ChunkR3MapTlbMisses;          /**< R3: Ring-3/0 chunk mapper TLB misses. */
  • trunk/src/VBox/VMM/VMMAll/PGMAllHandler.cpp

    r23121 r24711  
    854854                }
    855855
     856                PGMPhysInvalidatePageMapTLB(pVM);
    856857                rc = VINF_SUCCESS;
    857858                break;
     
    10421043            PGM_PAGE_SET_PAGEID(pPage, PGM_PAGE_GET_PAGEID(pPageRemap));
    10431044            PGM_PAGE_SET_HNDL_PHYS_STATE(pPage, PGM_PAGE_HNDL_PHYS_STATE_DISABLED);
     1045            PGMPhysInvalidatePageMapTLB(pVM);
     1046
    10441047            LogFlow(("PGMHandlerPhysicalPageAlias: => %R[pgmpage]\n", pPage));
    1045 
    10461048            pgmUnlock(pVM);
    10471049            return VINF_SUCCESS;
     
    11421144            PGM_PAGE_SET_PAGEID(pPage, NIL_GMM_PAGEID);
    11431145            PGM_PAGE_SET_HNDL_PHYS_STATE(pPage, PGM_PAGE_HNDL_PHYS_STATE_DISABLED);
     1146            PGMPhysInvalidatePageMapTLB(pVM);
    11441147            LogFlow(("PGMHandlerPhysicalPageAliasHC: => %R[pgmpage]\n", pPage));
    11451148            pgmUnlock(pVM);
  • trunk/src/VBox/VMM/VMMAll/PGMAllPhys.cpp

    r24702 r24711  
    199199{
    200200    pgmLock(pVM);
     201    STAM_COUNTER_INC(&pVM->pgm.s.StatPageMapTlbFlushes);
    201202    for (unsigned i = 0; i < RT_ELEMENTS(pVM->pgm.s.PhysTlbHC.aEntries); i++)
    202203    {
     
    398399    PGM_PAGE_SET_PAGEID(pPage, pVM->pgm.s.aHandyPages[iHandyPage].idPage);
    399400    PGM_PAGE_SET_STATE(pPage, PGM_PAGE_STATE_ALLOCATED);
     401    PGMPhysInvalidatePageMapTLB(pVM);
    400402
    401403    if (    fFlushTLBs
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