When testing some gethugepagesizes we desire to fake the default huge
page size, to test both having and not having hugepage support on the
same machine.  Now that the default huge page size is cached we now
need to invalidate this cache to allow us test with various values.

Add and expose kernel_default_hugepage_size_reset() as a test probe,
and use this within the gethugepagesizes test.

Signed-off-by: Andy Whitcroft <[EMAIL PROTECTED]>
---
 hugeutils.c               |    4 ++++
 libhugetlbfs_testprobes.h |    4 ++++
 tests/gethugepagesizes.c  |    4 ++++
 3 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/hugeutils.c b/hugeutils.c
index 736d07d..5dd5002 100644
--- a/hugeutils.c
+++ b/hugeutils.c
@@ -72,6 +72,10 @@ long kernel_default_hugepage_size()
        }
        return default_size;
 }
+void kernel_default_hugepage_size_reset(void)
+{
+       default_size = 0;
+}
 
 #define BUF_SZ 256
 #define MEMINFO_SIZE   2048
diff --git a/libhugetlbfs_testprobes.h b/libhugetlbfs_testprobes.h
index 2b48227..5196967 100644
--- a/libhugetlbfs_testprobes.h
+++ b/libhugetlbfs_testprobes.h
@@ -32,4 +32,8 @@
 #ifndef _LIBHUGETLBFS_TESTPROBES_H
 #define _LIBHUGETLBFS_TESTPROBES_H
 
+#define kernel_default_hugepage_size_reset \
+               __tp_kernel_default_hugepage_size_reset
+void kernel_default_hugepage_size_reset(void);
+
 #endif /* _LIBHUGETLBFS_TESTPROBES_H */
diff --git a/tests/gethugepagesizes.c b/tests/gethugepagesizes.c
index 46dcd95..8a6d2d6 100644
--- a/tests/gethugepagesizes.c
+++ b/tests/gethugepagesizes.c
@@ -320,6 +320,7 @@ int main(int argc, char *argv[])
         */
        meminfo_state = OVERRIDE_OFF;
        sysfs_state = OVERRIDE_OFF;
+       kernel_default_hugepage_size_reset();
 
        if (gethugepagesizes(actual_sizes, -1) != -1 || errno != EINVAL)
                FAIL("Mishandled params (n_elem < 0)");
@@ -346,6 +347,7 @@ int main(int argc, char *argv[])
         */
        meminfo_state = OVERRIDE_MISSING;
        sysfs_state = OVERRIDE_MISSING;
+       kernel_default_hugepage_size_reset();
 
        EXPECT_SIZES(gethugepagesizes, MAX, 0, expected_sizes);
 
@@ -354,6 +356,7 @@ int main(int argc, char *argv[])
 
        /* ... only the meminfo size is returned. */
        meminfo_state = OVERRIDE_ON;
+       kernel_default_hugepage_size_reset();
 
        INIT_LIST(expected_sizes, HPAGE_KB * 1024);
        EXPECT_SIZES(gethugepagesizes, MAX, 1, expected_sizes);
@@ -365,6 +368,7 @@ int main(int argc, char *argv[])
         * When sysfs defines additional sizes ...
         */
        sysfs_state = OVERRIDE_ON;
+       kernel_default_hugepage_size_reset();
 
        INIT_LIST(expected_sizes, HPAGE_KB * 1024, 1024 * 1024, 64 * 1024);
 
-- 
1.6.0.2.711.gf1ba4


-------------------------------------------------------------------------
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