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