linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 1/3] selftests/mm: fix va_high_addr_switch.sh return value
@ 2025-12-07 12:22 Chunyu Hu
  2025-12-07 12:22 ` [PATCH v1 2/3] selftests/mm: allocate 6 hugepages in va_high_addr_switch.sh Chunyu Hu
  0 siblings, 1 reply; 3+ messages in thread
From: Chunyu Hu @ 2025-12-07 12:22 UTC (permalink / raw)
  To: akpm, david, shuah, linux-mm
  Cc: linux-kselftest, linux-kernel, lorenzo.stoakes, Liam.Howlett,
	vbabka, rppt, surenb, mhocko, chuhu, Luiz Capitulino

Patch series "Fix va_high_addr_switch.sh test failure - again", v1.

There are two issues exist for the  va_high_addr_switch test. One issue is
the test return value is ignored in va_high_addr_switch.sh. The second is
the va_high_addr_switch requires 6 hugepages but it requires 5.

Besides that, the nr_hugepages setup in run_vmtests.sh for arm64 can be
done in va_high_addr_switch.sh too.

This patch: (of 3)

The return value should be return value of va_high_addr_switch, otherwise
a test failure would be silently ignored.

Fixes: d9d957bd7b61 ("selftests/mm: alloc hugepages in va_high_addr_switch test")
CC: Luiz Capitulino <luizcap@redhat.com>
Signed-off-by: Chunyu Hu <chuhu@redhat.com>
---
 tools/testing/selftests/mm/va_high_addr_switch.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/testing/selftests/mm/va_high_addr_switch.sh b/tools/testing/selftests/mm/va_high_addr_switch.sh
index a7d4b02b21dd..f89fe078a8e6 100755
--- a/tools/testing/selftests/mm/va_high_addr_switch.sh
+++ b/tools/testing/selftests/mm/va_high_addr_switch.sh
@@ -114,4 +114,6 @@ save_nr_hugepages
 # 4 keep_mapped pages, and one for tmp usage
 setup_nr_hugepages 5
 ./va_high_addr_switch --run-hugetlb
+retcode=$?
 restore_nr_hugepages
+exit $retcode
-- 
2.49.0



^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH v1 2/3] selftests/mm: allocate 6 hugepages in va_high_addr_switch.sh
  2025-12-07 12:22 [PATCH v1 1/3] selftests/mm: fix va_high_addr_switch.sh return value Chunyu Hu
@ 2025-12-07 12:22 ` Chunyu Hu
  2025-12-07 12:22   ` [PATCH v1 3/3] selftests/mm: remove arm64 nr_hugepages setup for va_high_addr_switch test Chunyu Hu
  0 siblings, 1 reply; 3+ messages in thread
From: Chunyu Hu @ 2025-12-07 12:22 UTC (permalink / raw)
  To: akpm, david, shuah, linux-mm
  Cc: linux-kselftest, linux-kernel, lorenzo.stoakes, Liam.Howlett,
	vbabka, rppt, surenb, mhocko, chuhu, Luiz Capitulino

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 <luizcap@redhat.com>
Fixes: d9d957bd7b61 ("selftests/mm: alloc hugepages in va_high_addr_switch test")
Signed-off-by: Chunyu Hu <chuhu@redhat.com>
---
 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
+setup_nr_hugepages 6
 ./va_high_addr_switch --run-hugetlb
 retcode=$?
 restore_nr_hugepages
-- 
2.49.0



^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH v1 3/3] selftests/mm: remove arm64 nr_hugepages setup for va_high_addr_switch test
  2025-12-07 12:22 ` [PATCH v1 2/3] selftests/mm: allocate 6 hugepages in va_high_addr_switch.sh Chunyu Hu
@ 2025-12-07 12:22   ` Chunyu Hu
  0 siblings, 0 replies; 3+ messages in thread
From: Chunyu Hu @ 2025-12-07 12:22 UTC (permalink / raw)
  To: akpm, david, shuah, linux-mm
  Cc: linux-kselftest, linux-kernel, lorenzo.stoakes, Liam.Howlett,
	vbabka, rppt, surenb, mhocko, chuhu, Luiz Capitulino

arm64 and x86_64 has the same nr_hugepages requriement for running the
va_high_addr_switch test. Since commit d9d957bd7b61 ("selftests/mm: alloc
hugepages in va_high_addr_switch test"), the setup can be done in
va_high_addr_switch.sh. So remove the duplicated setup.

CC: Luiz Capitulino <luizcap@redhat.com>
Signed-off-by: Chunyu Hu <chuhu@redhat.com>
---
 tools/testing/selftests/mm/run_vmtests.sh | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/tools/testing/selftests/mm/run_vmtests.sh b/tools/testing/selftests/mm/run_vmtests.sh
index d9173f2312b7..2dadbfc6e535 100755
--- a/tools/testing/selftests/mm/run_vmtests.sh
+++ b/tools/testing/selftests/mm/run_vmtests.sh
@@ -412,15 +412,7 @@ if [ $VADDR64 -ne 0 ]; then
 	fi
 
 	# va high address boundary switch test
-	ARCH_ARM64="arm64"
-	prev_nr_hugepages=$(cat /proc/sys/vm/nr_hugepages)
-	if [ "$ARCH" == "$ARCH_ARM64" ]; then
-		echo 6 > /proc/sys/vm/nr_hugepages
-	fi
 	CATEGORY="hugevm" run_test bash ./va_high_addr_switch.sh
-	if [ "$ARCH" == "$ARCH_ARM64" ]; then
-		echo $prev_nr_hugepages > /proc/sys/vm/nr_hugepages
-	fi
 fi # VADDR64
 
 # vmalloc stability smoke test
-- 
2.49.0



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-12-07 12:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-12-07 12:22 [PATCH v1 1/3] selftests/mm: fix va_high_addr_switch.sh return value Chunyu Hu
2025-12-07 12:22 ` [PATCH v1 2/3] selftests/mm: allocate 6 hugepages in va_high_addr_switch.sh Chunyu Hu
2025-12-07 12:22   ` [PATCH v1 3/3] selftests/mm: remove arm64 nr_hugepages setup for va_high_addr_switch test Chunyu Hu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox