Some of the test suite will fail unexpectedly when the overcommit pool has
any pages allocated.  This patch introduces a simple method for saving and
restoring the size of the overcommit pool so these tests can 0 it before
running.

Signed-off-by: Eric B Munson <[EMAIL PROTECTED]>
---
 hugeutils.c              |   16 ++++++++++++++++
 libhugetlbfs_privutils.h |    6 ++++++
 2 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/hugeutils.c b/hugeutils.c
index 1121966..791aa37 100644
--- a/hugeutils.c
+++ b/hugeutils.c
@@ -874,6 +874,22 @@ int set_nr_overcommit_hugepages(long pagesize, unsigned 
long val)
        return set_huge_page_counter(pagesize, HUGEPAGES_OC, val);
 }
 
+long save_overcommit_pages(long page_size)
+{
+       if (!kernel_has_overcommit())
+               return -1;
+
+       return get_huge_page_counter(page_size, HUGEPAGES_OC);
+}
+
+void restore_overcommit_pages(long page_size, long pool_size)
+{
+       if (!kernel_has_overcommit())
+               return;
+
+       set_nr_overcommit_hugepages(page_size, pool_size);
+}
+
 /********************************************************************/
 /* Library user visible DIAGNOSES/DEBUGGING ONLY functions          */
 /********************************************************************/
diff --git a/libhugetlbfs_privutils.h b/libhugetlbfs_privutils.h
index e97c229..3af39b9 100644
--- a/libhugetlbfs_privutils.h
+++ b/libhugetlbfs_privutils.h
@@ -64,6 +64,12 @@ long read_meminfo(const char *tag);
 #define kernel_default_hugepage_size __pu_kernel_default_hugepage_size
 long kernel_default_hugepage_size(void);
 
+#define save_overcommit_pages __pu_save_overcommit_pages
+long save_overcommit_pages(long page_size);
+
+#define restore_overcommit_pages __pu_restore_overcommit_pages
+void restore_overcommit_pages(long page_size, long pool_size);
+
 /* Kernel feature testing */
 /* This enum defines the bits in a feature bitmask */
 enum {
-- 
1.6.0.3


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Libhugetlbfs-devel mailing list
Libhugetlbfs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel

Reply via email to