Index: /trunk/src/VBox/VMM/PGMInternal.h
===================================================================
--- /trunk/src/VBox/VMM/PGMInternal.h	(revision 22712)
+++ /trunk/src/VBox/VMM/PGMInternal.h	(revision 22713)
@@ -1797,4 +1797,6 @@
     /** Counting explicit flushes by PGMPoolFlushPage(). */
     STAMCOUNTER                 StatForceFlushPage;
+    /** Counting explicit flushes of dirty pages by PGMPoolFlushPage(). */
+    STAMCOUNTER                 StatForceFlushDirtyPage;
     /** Profiling time spent zeroing pages. */
     STAMPROFILE                 StatZeroPage;
Index: /trunk/src/VBox/VMM/PGMPool.cpp
===================================================================
--- /trunk/src/VBox/VMM/PGMPool.cpp	(revision 22712)
+++ /trunk/src/VBox/VMM/PGMPool.cpp	(revision 22713)
@@ -326,4 +326,5 @@
     STAM_REG(pVM, &pPool->StatFree,                     STAMTYPE_PROFILE,   "/PGM/Pool/Free",           STAMUNIT_TICKS_PER_CALL,    "Profiling of pgmPoolFree.");
     STAM_REG(pVM, &pPool->StatForceFlushPage,           STAMTYPE_COUNTER,   "/PGM/Pool/FlushForce",     STAMUNIT_OCCURENCES,        "Counting explicit flushes by PGMPoolFlushPage().");    
+    STAM_REG(pVM, &pPool->StatForceFlushDirtyPage,      STAMTYPE_COUNTER,   "/PGM/Pool/FlushForceDirty",     STAMUNIT_OCCURENCES,   "Counting explicit flushes of dirty pages by PGMPoolFlushPage().");    
     STAM_REG(pVM, &pPool->StatZeroPage,                 STAMTYPE_PROFILE,   "/PGM/Pool/ZeroPage",       STAMUNIT_TICKS_PER_CALL,    "Profiling time spent zeroing pages. Overlaps with Alloc.");
 # ifdef PGMPOOL_WITH_USER_TRACKING
Index: /trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp	(revision 22712)
+++ /trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp	(revision 22713)
@@ -4782,5 +4782,10 @@
                 {
                     Log(("PGMPoolFlushPage: found pgm pool pages for %RGp\n", GCPhys));
-                    STAM_COUNTER_INC(&pPool->StatForceFlushPage);
+#ifdef PGMPOOL_WITH_OPTIMIZED_DIRTY_PT
+                    if (pPage->fDirty)
+                        STAM_COUNTER_INC(&pPool->StatForceFlushDirtyPage);
+                    else
+#endif
+                        STAM_COUNTER_INC(&pPool->StatForceFlushPage);
                     Assert(!pgmPoolIsPageLocked(&pVM->pgm.s, pPage));
                     pgmPoolMonitorChainFlush(pPool, pPage);
