summaryrefslogtreecommitdiffstats
path: root/src/kernel/ptmgr.C
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert@us.ibm.com>2011-09-12 12:47:53 -0500
committerDouglas R. Gilbert <dgilbert@us.ibm.com>2011-09-19 16:05:34 -0500
commitde8a529d349aebb344979609055f123c196ccfe3 (patch)
treeb91665407f69730aaba8da794afc47240997dd47 /src/kernel/ptmgr.C
parentb754f8b47e343f449e5f05f67b948513363abd12 (diff)
downloadblackbird-hostboot-de8a529d349aebb344979609055f123c196ccfe3.tar.gz
blackbird-hostboot-de8a529d349aebb344979609055f123c196ccfe3.zip
Mechanism to detect low memory and cast out older page
Change-Id: Icce8e01f3d1cd2942f2b9ff802993da0441535ee Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/344 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
Diffstat (limited to 'src/kernel/ptmgr.C')
-rw-r--r--src/kernel/ptmgr.C22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/kernel/ptmgr.C b/src/kernel/ptmgr.C
index 0feffb7e6..92d211888 100644
--- a/src/kernel/ptmgr.C
+++ b/src/kernel/ptmgr.C
@@ -251,6 +251,10 @@ void PageTableManager::printPT( void )
Singleton<PageTableManager>::instance()._printPT();
}
+void PageTableManager::flush( void )
+{
+ Singleton<PageTableManager>::instance()._flush();
+}
/********************
Private/Protected Methods
@@ -1102,3 +1106,21 @@ void PageTableManager::pushUsageStats( PageTableEntry* i_pte )
uint64_t va = getVirtAddrFromPTE(i_pte);
SegmentManager::updateRefCount( va, stats );
}
+
+void PageTableManager::_flush( void )
+{
+ if( ivTABLE )
+ {
+ return;
+ }
+
+ PageTableEntry* pte = (PageTableEntry*)getAddress();
+ uint64_t num_ptes = getSize() / sizeof(PageTableEntry);
+ for (uint64_t i = 0; i < num_ptes; ++i)
+ {
+ updateLRU( pte );
+ pushUsageStats ( pte );
+ ++pte;
+ }
+}
+
OpenPOWER on IntegriCloud