On 2025-12-07 07:22, Chunyu Hu wrote:
The va_high_addr_switch test requires 6 hugepages, not 5. If running the
test directly by: ./va_high_addr_switch.sh, the test will hit a mmap 'FAIL'
caused by not enough hugepages:
   ```
   mmap(addr_switch_hint - hugepagesize, 2*hugepagesize, MAP_HUGETLB): 
0x7f330f800000 - OK
   mmap(addr_switch_hint , 2*hugepagesize, MAP_FIXED | MAP_HUGETLB): 
0xffffffffffffffff - FAILED
   ```
The failure can't be hit if run the tests by running 'run_vmtests.sh -t
hugevm' because the nr_hugepages is set to 128 at the beginning of
run_vmtests.sh and va_high_addr_switch.sh skip the setup of nr_hugepages
because already enough.

CC: Luiz Capitulino <[email protected]>
Fixes: d9d957bd7b61 ("selftests/mm: alloc hugepages in va_high_addr_switch 
test")
Signed-off-by: Chunyu Hu <[email protected]>
---
  tools/testing/selftests/mm/va_high_addr_switch.sh | 6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/mm/va_high_addr_switch.sh 
b/tools/testing/selftests/mm/va_high_addr_switch.sh
index f89fe078a8e6..98f3dfab62c5 100755
--- a/tools/testing/selftests/mm/va_high_addr_switch.sh
+++ b/tools/testing/selftests/mm/va_high_addr_switch.sh
@@ -111,8 +111,10 @@ setup_nr_hugepages()
check_test_requirements
  save_nr_hugepages
-# 4 keep_mapped pages, and one for tmp usage
-setup_nr_hugepages 5
+# 5 keep_mapped hugepages are reserved in the first testings, and the last test
+# requires two hugepages, with one verlaped with the last second test, so one
+# extra, totally 6 hugepages

IMHO, I'd just say "The HugeTLB tests require 6 pages", otherwise the
fix look good to me.

+setup_nr_hugepages 6
  ./va_high_addr_switch --run-hugetlb
  retcode=$?
  restore_nr_hugepages


Reply via email to