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