[PATCH] selftests/vm: update hugetlb madvise

From: Mike Kravetz
Date: Thu Nov 03 2022 - 21:18:55 EST


Commit 8ebe0a5eaaeb ("mm,madvise,hugetlb: fix unexpected data loss
with MADV_DONTNEED on hugetlbfs") changed how the passed length was
interpreted for hugetlb mappings. It was changed from align up to
align down. The hugetlb-madvise test explicitly tests this behavior.
Change test to expect new behavior.

Reported-by: kernel test robot <oliver.sang@xxxxxxxxx>
Link: https://lore.kernel.org/oe-lkp/202211040619.2ec447d7-oliver.sang@xxxxxxxxx
Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
---
tools/testing/selftests/vm/hugetlb-madvise.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/vm/hugetlb-madvise.c b/tools/testing/selftests/vm/hugetlb-madvise.c
index f96435b70986..a634f47d1e56 100644
--- a/tools/testing/selftests/vm/hugetlb-madvise.c
+++ b/tools/testing/selftests/vm/hugetlb-madvise.c
@@ -195,7 +195,7 @@ int main(int argc, char **argv)
exit(1);
}

- /* addr + length should be aligned up to huge page size */
+ /* addr + length should be aligned down to huge page size */
if (madvise(addr,
((NR_HUGE_PAGES - 1) * huge_page_size) + base_page_size,
MADV_DONTNEED)) {
@@ -203,10 +203,11 @@ int main(int argc, char **argv)
exit(1);
}

- /* should free all pages in mapping */
- validate_free_pages(free_hugepages);
+ /* should free all but last page in mapping */
+ validate_free_pages(free_hugepages - 1);

(void)munmap(addr, NR_HUGE_PAGES * huge_page_size);
+ validate_free_pages(free_hugepages);

/*
* Test MADV_DONTNEED on anonymous private mapping
--
2.37.3