summaryrefslogtreecommitdiff
path: root/src/VBox/VMM/PGM.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/VMM/PGM.cpp')
-rw-r--r--src/VBox/VMM/PGM.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/VBox/VMM/PGM.cpp b/src/VBox/VMM/PGM.cpp
index 5dbad08f5..4957e2f90 100644
--- a/src/VBox/VMM/PGM.cpp
+++ b/src/VBox/VMM/PGM.cpp
@@ -1,4 +1,4 @@
-/* $Id: PGM.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */
+/* $Id: PGM.cpp 29646 2010-05-18 15:44:08Z vboxsync $ */
/** @file
* PGM - Page Manager and Monitor. (Mixing stuff here, not good?)
*/
@@ -1563,6 +1563,7 @@ static void pgmR3InitStats(PVM pVM)
STAM_REL_REG(pVM, &pPGM->cAllPages, STAMTYPE_U32, "/PGM/Page/cAllPages", STAMUNIT_COUNT, "The total number of pages.");
STAM_REL_REG(pVM, &pPGM->cPrivatePages, STAMTYPE_U32, "/PGM/Page/cPrivatePages", STAMUNIT_COUNT, "The number of private pages.");
STAM_REL_REG(pVM, &pPGM->cSharedPages, STAMTYPE_U32, "/PGM/Page/cSharedPages", STAMUNIT_COUNT, "The number of shared pages.");
+ STAM_REL_REG(pVM, &pPGM->cReusedSharedPages, STAMTYPE_U32, "/PGM/Page/cReusedSharedPages", STAMUNIT_COUNT, "The number of reused shared pages.");
STAM_REL_REG(pVM, &pPGM->cZeroPages, STAMTYPE_U32, "/PGM/Page/cZeroPages", STAMUNIT_COUNT, "The number of zero backed pages.");
STAM_REL_REG(pVM, &pPGM->cPureMmioPages, STAMTYPE_U32, "/PGM/Page/cPureMmioPages", STAMUNIT_COUNT, "The number of pure MMIO pages.");
STAM_REL_REG(pVM, &pPGM->cMonitoredPages, STAMTYPE_U32, "/PGM/Page/cMonitoredPages", STAMUNIT_COUNT, "The number of write monitored pages.");
@@ -2328,6 +2329,11 @@ static DECLCALLBACK(void) pgmR3ResetNoMorePhysWritesFlag(PVM pVM, VMSTATE enmSta
*/
VMMR3DECL(int) PGMR3Term(PVM pVM)
{
+ /* Must free shared pages here. */
+ pgmLock(pVM);
+ pgmR3PhysRamTerm(pVM);
+ pgmUnlock(pVM);
+
PGMDeregisterStringFormatTypes();
return PDMR3CritSectDelete(&pVM->pgm.s.CritSect);
}