diff options
| author | Doug Gilbert <dgilbert@us.ibm.com> | 2011-09-12 12:47:53 -0500 |
|---|---|---|
| committer | Douglas R. Gilbert <dgilbert@us.ibm.com> | 2011-09-19 16:05:34 -0500 |
| commit | de8a529d349aebb344979609055f123c196ccfe3 (patch) | |
| tree | b91665407f69730aaba8da794afc47240997dd47 /src/kernel/ptmgr.C | |
| parent | b754f8b47e343f449e5f05f67b948513363abd12 (diff) | |
| download | blackbird-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.C | 22 |
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; + } +} + |

