hugepage-vmemmap test fails for s390 because it assumes a hugepagesize of 2 MB, while we have 1 MB on s390. This results in iterating over two hugepages. If they are consecutive in memory, check_page_flags() will stumble over the additional head page. Otherwise, it will stumble over non-huge pageflags, after crossing the first 1 MB hugepage.
Fix this by using 1 MB MAP_LENGTH for s390.
Signed-off-by: Gerald Schaefer gerald.schaefer@linux.ibm.com --- tools/testing/selftests/vm/hugepage-vmemmap.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/tools/testing/selftests/vm/hugepage-vmemmap.c b/tools/testing/selftests/vm/hugepage-vmemmap.c index 557bdbd4f87e..a4695f138cec 100644 --- a/tools/testing/selftests/vm/hugepage-vmemmap.c +++ b/tools/testing/selftests/vm/hugepage-vmemmap.c @@ -11,7 +11,14 @@ #include <sys/mman.h> #include <fcntl.h>
+/* + * 1 MB hugepage size for s390 + */ +#if defined(__s390x__) +#define MAP_LENGTH (1UL * 1024 * 1024) +#else #define MAP_LENGTH (2UL * 1024 * 1024) +#endif
#ifndef MAP_HUGETLB #define MAP_HUGETLB 0x40000 /* arch specific */