summaryrefslogtreecommitdiffstats
path: root/src/kernel/pagemgr.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/pagemgr.C
parentb754f8b47e343f449e5f05f67b948513363abd12 (diff)
downloadtalos-hostboot-de8a529d349aebb344979609055f123c196ccfe3.tar.gz
talos-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/pagemgr.C')
-rw-r--r--src/kernel/pagemgr.C9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/kernel/pagemgr.C b/src/kernel/pagemgr.C
index f74ee89c1..826e1bc4d 100644
--- a/src/kernel/pagemgr.C
+++ b/src/kernel/pagemgr.C
@@ -44,7 +44,12 @@ void PageManager::freePage(void* p, size_t n)
return pmgr._freePage(p, n);
}
-PageManager::PageManager() : iv_pagesAvail(0)
+uint64_t PageManager::queryAvail()
+{
+ return Singleton<PageManager>::instance()._queryAvail();
+}
+
+PageManager::PageManager() : iv_pagesAvail(0), iv_pagesTotal(0)
{
// Determine first page of un-allocated memory.
uint64_t addr = (uint64_t) VFS_LAST_ADDRESS;
@@ -55,6 +60,7 @@ PageManager::PageManager() : iv_pagesAvail(0)
page_t* page = (page_t*)((void*) addr);
size_t length = (MEMLEN - addr) / PAGESIZE;
+ iv_pagesTotal = length;
// Update statistics.
__sync_add_and_fetch(&iv_pagesAvail, length);
@@ -156,3 +162,4 @@ void PageManager::push_bucket(page_t* p, size_t n)
if (n >= BUCKETS) return;
first_page[n].push(p);
}
+
OpenPOWER on IntegriCloud