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]>
Changes from V1: Rename save_overcommit_pages to read_nr_ovrecommit
---
hugeutils.c | 16 ++++++++++++++++
libhugetlbfs_privutils.h | 6 ++++++
2 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/hugeutils.c b/hugeutils.c
index 1121966..304a3aa 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 read_nr_overcommit(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..9fbae6f 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 read_nr_overcommit __pu_read_nr_overcommit
+long read_nr_overcommit(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
[email protected]
https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel