VirtualBox

Changeset 65504 in vbox for trunk/src/VBox/VMM/include


Ignore:
Timestamp:
Jan 29, 2017 11:54:25 AM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
113137
Message:

PGM: Temporarily backed out r113092 & r113134.

Location:
trunk/src/VBox/VMM/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/PGMGstDefs.h

    r65466 r65504  
    143143# define GST_GET_PDE_SHW_FLAGS(pVCpu, Pde)      ((Pde).u & (X86_PDE_P | X86_PDE_RW | X86_PDE_US | X86_PDE_A))
    144144# define GST_GET_BIG_PDE_SHW_FLAGS(pVCpu, Pde) \
    145     ( ((Pde).u & (X86_PDE4M_P | X86_PDE4M_RW | X86_PDE4M_US | X86_PDE4M_A)) | PGM_PDFLAGS_BIG_PAGE )
     145    ((Pde).u & (X86_PDE4M_P | X86_PDE4M_RW | X86_PDE4M_US | X86_PDE4M_A))
    146146# define GST_GET_BIG_PDE_SHW_FLAGS_4_PTE(pVCpu, Pde) \
    147147    ((Pde).u & (X86_PDE4M_P | X86_PDE4M_RW | X86_PDE4M_US | X86_PDE4M_A | X86_PDE4M_D | X86_PDE4M_G))
     
    183183# define GST_GET_PTE_SHW_FLAGS(pVCpu, Pte)      ((Pte).u & (pVCpu)->pgm.s.fGst64ShadowedPteMask )
    184184# define GST_GET_PDE_SHW_FLAGS(pVCpu, Pde)      ((Pde).u & (pVCpu)->pgm.s.fGst64ShadowedPdeMask )
    185 # define GST_GET_BIG_PDE_SHW_FLAGS(pVCpu, Pde)  ( ((Pde).u & (pVCpu)->pgm.s.fGst64ShadowedBigPdeMask ) | PGM_PDFLAGS_BIG_PAGE)
     185# define GST_GET_BIG_PDE_SHW_FLAGS(pVCpu, Pde)  ((Pde).u & (pVCpu)->pgm.s.fGst64ShadowedBigPdeMask )
    186186# define GST_GET_BIG_PDE_SHW_FLAGS_4_PTE(pVCpu, Pde)  ((Pde).u & (pVCpu)->pgm.s.fGst64ShadowedBigPde4PteMask )
    187187
  • trunk/src/VBox/VMM/include/PGMInternal.h

    r65502 r65504  
    178178 * the page directory entries.
    179179 * @{ */
    180 /** Indicates the original entry was a big page.
    181  * @remarks This is currently only used for statistics and can be recycled.  */
    182 #define PGM_PDFLAGS_BIG_PAGE            RT_BIT_64(9)
    183180/** Mapping (hypervisor allocated pagetable). */
    184181#define PGM_PDFLAGS_MAPPING             RT_BIT_64(10)
     
    24992496    /** The number of failing pgmPoolTrackPhysExtAlloc calls. */
    25002497    STAMCOUNTER                 StamTrackPhysExtAllocFailures;
    2501 
    2502     /** Profiling the RC/R0 \#PF access handler. */
    2503     STAMPROFILE                 StatMonitorPfRZ;
     2498    /** Profiling the RC/R0 access handler. */
     2499    STAMPROFILE                 StatMonitorRZ;
     2500    /** Times we've failed interpreting the instruction. */
     2501    STAMCOUNTER                 StatMonitorRZEmulateInstr;
     2502    /** Profiling the pgmPoolFlushPage calls made from the RC/R0 access handler. */
     2503    STAMPROFILE                 StatMonitorRZFlushPage;
     2504    /* Times we've detected a page table reinit. */
     2505    STAMCOUNTER                 StatMonitorRZFlushReinit;
     2506    /** Counting flushes for pages that are modified too often. */
     2507    STAMCOUNTER                 StatMonitorRZFlushModOverflow;
     2508    /** Times we've detected fork(). */
     2509    STAMCOUNTER                 StatMonitorRZFork;
    25042510    /** Profiling the RC/R0 access we've handled (except REP STOSD). */
    2505     STAMPROFILE                 StatMonitorPfRZHandled;
    2506     /** Times we've failed interpreting the instruction. */
    2507     STAMCOUNTER                 StatMonitorPfRZEmulateInstr;
    2508     /** Profiling the pgmPoolFlushPage calls made from the RC/R0 access handler. */
    2509     STAMPROFILE                 StatMonitorPfRZFlushPage;
    2510     /* Times we've detected a page table reinit. */
    2511     STAMCOUNTER                 StatMonitorPfRZFlushReinit;
    2512     /** Counting flushes for pages that are modified too often. */
    2513     STAMCOUNTER                 StatMonitorPfRZFlushModOverflow;
    2514     /** Times we've detected fork(). */
    2515     STAMCOUNTER                 StatMonitorPfRZFork;
     2511    STAMPROFILE                 StatMonitorRZHandled;
    25162512    /** Times we've failed interpreting a patch code instruction. */
    2517     STAMCOUNTER                 StatMonitorPfRZIntrFailPatch1;
     2513    STAMCOUNTER                 StatMonitorRZIntrFailPatch1;
    25182514    /** Times we've failed interpreting a patch code instruction during flushing. */
    2519     STAMCOUNTER                 StatMonitorPfRZIntrFailPatch2;
     2515    STAMCOUNTER                 StatMonitorRZIntrFailPatch2;
    25202516    /** The number of times we've seen rep prefixes we can't handle. */
    2521     STAMCOUNTER                 StatMonitorPfRZRepPrefix;
     2517    STAMCOUNTER                 StatMonitorRZRepPrefix;
    25222518    /** Profiling the REP STOSD cases we've handled. */
    2523     STAMPROFILE                 StatMonitorPfRZRepStosd;
    2524 
    2525     /** Profiling the R0/RC regular access handler. */
    2526     STAMPROFILE                 StatMonitorRZ;
    2527     /** Profiling the pgmPoolFlushPage calls made from the regular access handler in R0/RC. */
    2528     STAMPROFILE                 StatMonitorRZFlushPage;
    2529     /** Per access size counts indexed by size minus 1, last for larger. */
    2530     STAMCOUNTER                 aStatMonitorRZSizes[16+3];
    2531     /** Missaligned access counts indexed by offset - 1. */
    2532     STAMCOUNTER                 aStatMonitorRZMisaligned[7];
    2533 
     2519    STAMPROFILE                 StatMonitorRZRepStosd;
    25342520    /** Nr of handled PT faults. */
    25352521    STAMCOUNTER                 StatMonitorRZFaultPT;
     
    25432529    /** Profiling the R3 access handler. */
    25442530    STAMPROFILE                 StatMonitorR3;
     2531    /** Times we've failed interpreting the instruction. */
     2532    STAMCOUNTER                 StatMonitorR3EmulateInstr;
    25452533    /** Profiling the pgmPoolFlushPage calls made from the R3 access handler. */
    25462534    STAMPROFILE                 StatMonitorR3FlushPage;
    2547     /** Per access size counts indexed by size minus 1, last for larger. */
    2548     STAMCOUNTER                 aStatMonitorR3Sizes[16+3];
    2549     /** Missaligned access counts indexed by offset - 1. */
    2550     STAMCOUNTER                 aStatMonitorR3Misaligned[7];
     2535    /* Times we've detected a page table reinit. */
     2536    STAMCOUNTER                 StatMonitorR3FlushReinit;
     2537    /** Counting flushes for pages that are modified too often. */
     2538    STAMCOUNTER                 StatMonitorR3FlushModOverflow;
     2539    /** Times we've detected fork(). */
     2540    STAMCOUNTER                 StatMonitorR3Fork;
     2541    /** Profiling the R3 access we've handled (except REP STOSD). */
     2542    STAMPROFILE                 StatMonitorR3Handled;
     2543    /** The number of times we've seen rep prefixes we can't handle. */
     2544    STAMCOUNTER                 StatMonitorR3RepPrefix;
     2545    /** Profiling the REP STOSD cases we've handled. */
     2546    STAMPROFILE                 StatMonitorR3RepStosd;
    25512547    /** Nr of handled PT faults. */
    25522548    STAMCOUNTER                 StatMonitorR3FaultPT;
     
    25572553    /** Nr of handled PML4 faults. */
    25582554    STAMCOUNTER                 StatMonitorR3FaultPML4;
    2559 
     2555    /** The number of times we're called in an async thread an need to flush. */
     2556    STAMCOUNTER                 StatMonitorR3Async;
    25602557    /** Times we've called pgmPoolResetDirtyPages (and there were dirty page). */
    25612558    STAMCOUNTER                 StatResetDirtyPages;
     
    27952792    /** The effective X86_PTE_NX flag for the address. */
    27962793    bool            fEffectiveNX;
    2797     bool            afPadding1[2];
    2798     /** Effective flags thus far: RW, US, PWT, PCD, A, ~NX >> 63.
    2799      * The NX bit is inverted and shifted down 63 places to bit 0. */
    2800     uint32_t        fEffective;
    28012794} PGMPTWALKCORE;
    2802 
    2803 /** @name PGMPTWALKCORE::fEffective bits.
    2804  * @{ */
    2805 /** Effective execute bit (!NX).   */
    2806 #define PGMPTWALK_EFF_X     UINT32_C(1)
    2807 /** Effective write access bit. */
    2808 #define PGMPTWALK_EFF_RW    X86_PTE_RW
    2809 /** Effective user-mode access bit. */
    2810 #define PGMPTWALK_EFF_US    X86_PTE_US
    2811 /** Effective write through cache bit. */
    2812 #define PGMPTWALK_EFF_PWT   X86_PTE_PWT
    2813 /** Effective cache disabled bit. */
    2814 #define PGMPTWALK_EFF_PCD   X86_PTE_PCD
    2815 /** Effective accessed bit. */
    2816 #define PGMPTWALK_EFF_A     X86_PTE_A
    2817 /** The dirty bit of the final entry. */
    2818 #define PGMPTWALK_EFF_D     X86_PTE_D
    2819 /** The PAT bit of the final entry. */
    2820 #define PGMPTWALK_EFF_PAT   X86_PTE_PAT
    2821 /** The global bit of the final entry. */
    2822 #define PGMPTWALK_EFF_G     X86_PTE_G
    2823 /** @} */
    28242795
    28252796
     
    37953766    STAMCOUNTER StatRZInvalidatePagePDNPs;          /**< RC/R0: The number of times PGMInvalidatePage() was called for a not present page directory. */
    37963767    STAMCOUNTER StatRZInvalidatePagePDOutOfSync;    /**< RC/R0: The number of times PGMInvalidatePage() was called for an out of sync page directory. */
    3797     STAMCOUNTER StatRZInvalidatePageSizeChanges ;   /**< RC/R0: The number of times PGMInvalidatePage() was called on a page size change (4KB <-> 2/4MB). */
    37983768    STAMCOUNTER StatRZInvalidatePageSkipped;        /**< RC/R0: The number of times PGMInvalidatePage() was skipped due to not present shw or pending pending SyncCR3. */
    37993769    STAMCOUNTER StatRZPageOutOfSyncUser;            /**< RC/R0: The number of times user page is out of sync was detected in \#PF or VerifyAccessSyncPage. */
     
    38433813    STAMCOUNTER StatR3InvalidatePagePDMappings;     /**< R3: The number of times PGMInvalidatePage() was called for a page directory containing mappings (no conflict). */
    38443814    STAMCOUNTER StatR3InvalidatePagePDOutOfSync;    /**< R3: The number of times PGMInvalidatePage() was called for an out of sync page directory. */
    3845     STAMCOUNTER StatR3InvalidatePageSizeChanges ;   /**< R3: The number of times PGMInvalidatePage() was called on a page size change (4KB <-> 2/4MB). */
    38463815    STAMCOUNTER StatR3InvalidatePageSkipped;        /**< R3: The number of times PGMInvalidatePage() was skipped due to not present shw or pending pending SyncCR3. */
    38473816    STAMCOUNTER StatR3PageOutOfSyncUser;            /**< R3: The number of times user page is out of sync was detected in \#PF or VerifyAccessSyncPage. */
     
    42924261PGM_ALL_CB2_PROTO(FNPGMPHYSHANDLER) pgmPoolAccessHandler;
    42934262#ifndef IN_RING3
    4294 DECLEXPORT(FNPGMRZPHYSPFHANDLER)    pgmRZPoolAccessPfHandler;
     4263DECLEXPORT(FNPGMRZPHYSPFHANDLER)    pgmPoolAccessPfHandler;
    42954264#endif
    42964265
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