linux-kselftest.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/5] selftests/mm: fix va_high_addr_switch.sh return value
@ 2025-12-21  4:00 Chunyu Hu
  2025-12-21  4:00 ` [PATCH v2 2/5] selftests/mm: allocate 6 hugepages in va_high_addr_switch.sh Chunyu Hu
  2025-12-21 18:57 ` [PATCH v2 1/5] selftests/mm: fix va_high_addr_switch.sh return value Andrew Morton
  0 siblings, 2 replies; 15+ messages in thread
From: Chunyu Hu @ 2025-12-21  4:00 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", v2.

The series address several issues exist for the va_high_addr_switch test:
1) the test return value is ignored in va_high_addr_switch.sh.
2) the va_high_addr_switch test requires 6 hugepages not 5.
3) the reurn value of the first test in va_high_addr_switch.c can be
   overridden by the second test.
4) the nr_hugepages setup in run_vmtests.sh for arm64 can be done in
   va_high_addr_switch.sh too.
5) update a comment for check_test_requirements.

Changes in v2:
 - shorten the comment in for hugepages setup in v1
 - add a new patch to fix the return value overridden issue in
   va_high_addr_switch.c
 - fix a code comment for check_test_requirements.
 - update the series summary in patch 1
 - add reviewed-by from Luiz Capitulino on patch 1 and patch 3

This patch: (of 5)

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

Reviewed-by: Luiz Capitulino <luizcap@redhat.com>
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>
---
Chunyu Hu (5):
  selftests/mm: fix va_high_addr_switch.sh return value
  selftests/mm: allocate 6 hugepages in va_high_addr_switch.sh
  selftests/mm: remove arm64 nr_hugepages setup for va_high_addr_switch
    test
  selftests/mm: va_high_addr_switch return fail when either test failed
  selftests/mm: fix comment for check_test_requirements

 tools/testing/selftests/mm/run_vmtests.sh         |  8 --------
 tools/testing/selftests/mm/va_high_addr_switch.c  | 10 +++++++---
 tools/testing/selftests/mm/va_high_addr_switch.sh | 12 +++++++-----
 3 files changed, 14 insertions(+), 16 deletions(-)

According to the doc below, I don't add the cover letter, not sure if cover
letter is preferred, and if that's the case, the doc need an update.
https://www.ozlabs.org/~akpm/stuff/tpp.txt
---
 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 related	[flat|nested] 15+ messages in thread

* [PATCH v2 2/5] selftests/mm: allocate 6 hugepages in va_high_addr_switch.sh
  2025-12-21  4:00 [PATCH v2 1/5] selftests/mm: fix va_high_addr_switch.sh return value Chunyu Hu
@ 2025-12-21  4:00 ` Chunyu Hu
  2025-12-21  4:00   ` [PATCH v2 3/5] selftests/mm: remove arm64 nr_hugepages setup for va_high_addr_switch test Chunyu Hu
  2025-12-22 19:34   ` [PATCH v2 2/5] selftests/mm: allocate 6 hugepages in va_high_addr_switch.sh Luiz Capitulino
  2025-12-21 18:57 ` [PATCH v2 1/5] selftests/mm: fix va_high_addr_switch.sh return value Andrew Morton
  1 sibling, 2 replies; 15+ messages in thread
From: Chunyu Hu @ 2025-12-21  4:00 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 | 4 ++--
 1 file changed, 2 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..a0c93d348b11 100755
--- a/tools/testing/selftests/mm/va_high_addr_switch.sh
+++ b/tools/testing/selftests/mm/va_high_addr_switch.sh
@@ -111,8 +111,8 @@ setup_nr_hugepages()
 
 check_test_requirements
 save_nr_hugepages
-# 4 keep_mapped pages, and one for tmp usage
-setup_nr_hugepages 5
+# The HugeTLB tests require 6 pages
+setup_nr_hugepages 6
 ./va_high_addr_switch --run-hugetlb
 retcode=$?
 restore_nr_hugepages
-- 
2.49.0


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

* [PATCH v2 3/5] selftests/mm: remove arm64 nr_hugepages setup for va_high_addr_switch test
  2025-12-21  4:00 ` [PATCH v2 2/5] selftests/mm: allocate 6 hugepages in va_high_addr_switch.sh Chunyu Hu
@ 2025-12-21  4:00   ` Chunyu Hu
  2025-12-21  4:00     ` [PATCH v2 4/5] selftests/mm: va_high_addr_switch return fail when either test failed Chunyu Hu
  2025-12-22 19:34   ` [PATCH v2 2/5] selftests/mm: allocate 6 hugepages in va_high_addr_switch.sh Luiz Capitulino
  1 sibling, 1 reply; 15+ messages in thread
From: Chunyu Hu @ 2025-12-21  4:00 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.

Reviewed-by: Luiz Capitulino <luizcap@redhat.com>
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 related	[flat|nested] 15+ messages in thread

* [PATCH v2 4/5] selftests/mm: va_high_addr_switch return fail when either test failed
  2025-12-21  4:00   ` [PATCH v2 3/5] selftests/mm: remove arm64 nr_hugepages setup for va_high_addr_switch test Chunyu Hu
@ 2025-12-21  4:00     ` Chunyu Hu
  2025-12-21  4:00       ` [PATCH v2 5/5] selftests/mm: fix comment for check_test_requirements Chunyu Hu
  2025-12-22 19:36       ` [PATCH v2 4/5] selftests/mm: va_high_addr_switch return fail when either test failed Luiz Capitulino
  0 siblings, 2 replies; 15+ messages in thread
From: Chunyu Hu @ 2025-12-21  4:00 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

When the first test failed, and the hugetlb test passed, the result would
be pass, but we expect a fail. Fix this issue by returning fail if either
is not KSFT_PASS.

CC: Luiz Capitulino <luizcap@redhat.com>
Signed-off-by: Chunyu Hu <chuhu@redhat.com>
---
 tools/testing/selftests/mm/va_high_addr_switch.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/mm/va_high_addr_switch.c b/tools/testing/selftests/mm/va_high_addr_switch.c
index 02f290a69132..51401e081b20 100644
--- a/tools/testing/selftests/mm/va_high_addr_switch.c
+++ b/tools/testing/selftests/mm/va_high_addr_switch.c
@@ -322,7 +322,7 @@ static int supported_arch(void)
 
 int main(int argc, char **argv)
 {
-	int ret;
+	int ret, hugetlb_ret = KSFT_PASS;
 
 	if (!supported_arch())
 		return KSFT_SKIP;
@@ -331,6 +331,10 @@ int main(int argc, char **argv)
 
 	ret = run_test(testcases, sz_testcases);
 	if (argc == 2 && !strcmp(argv[1], "--run-hugetlb"))
-		ret = run_test(hugetlb_testcases, sz_hugetlb_testcases);
-	return ret;
+		hugetlb_ret = run_test(hugetlb_testcases, sz_hugetlb_testcases);
+
+	if (ret == KSFT_PASS && hugetlb_ret == KSFT_PASS)
+		return KSFT_PASS;
+	else
+		return KSFT_FAIL;
 }
-- 
2.49.0


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

* [PATCH v2 5/5] selftests/mm: fix comment for check_test_requirements
  2025-12-21  4:00     ` [PATCH v2 4/5] selftests/mm: va_high_addr_switch return fail when either test failed Chunyu Hu
@ 2025-12-21  4:00       ` Chunyu Hu
  2025-12-22 19:37         ` Luiz Capitulino
  2025-12-22 19:36       ` [PATCH v2 4/5] selftests/mm: va_high_addr_switch return fail when either test failed Luiz Capitulino
  1 sibling, 1 reply; 15+ messages in thread
From: Chunyu Hu @ 2025-12-21  4:00 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 test supports arm64 as well so the comment is incorrect. And there's
a check for arm64 in va_high_addr_switch.c.

CC: Luiz Capitulino <luizcap@redhat.com>
Fixes: 983e760bcdb6 ("selftest/mm: va_high_addr_switch: add ppc64 support check")
Fixes: f556acc2facd ("selftests/mm: skip test for non-LPA2 and non-LVA systems")
Signed-off-by: Chunyu Hu <chuhu@redhat.com>
---
 tools/testing/selftests/mm/va_high_addr_switch.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/mm/va_high_addr_switch.sh b/tools/testing/selftests/mm/va_high_addr_switch.sh
index a0c93d348b11..9492c2d72634 100755
--- a/tools/testing/selftests/mm/va_high_addr_switch.sh
+++ b/tools/testing/selftests/mm/va_high_addr_switch.sh
@@ -61,9 +61,9 @@ check_supported_ppc64()
 
 check_test_requirements()
 {
-	# The test supports x86_64 and powerpc64. We currently have no useful
-	# eligibility check for powerpc64, and the test itself will reject other
-	# architectures.
+	# The test supports x86_64, powerpc64 and arm64. There's check for arm64
+	# in va_high_addr_switch.c. The test itself will reject other architectures.
+
 	case `uname -m` in
 		"x86_64")
 			check_supported_x86_64
-- 
2.49.0


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

* Re: [PATCH v2 1/5] selftests/mm: fix va_high_addr_switch.sh return value
  2025-12-21  4:00 [PATCH v2 1/5] selftests/mm: fix va_high_addr_switch.sh return value Chunyu Hu
  2025-12-21  4:00 ` [PATCH v2 2/5] selftests/mm: allocate 6 hugepages in va_high_addr_switch.sh Chunyu Hu
@ 2025-12-21 18:57 ` Andrew Morton
  2025-12-22  4:32   ` Chunyu Hu
  1 sibling, 1 reply; 15+ messages in thread
From: Andrew Morton @ 2025-12-21 18:57 UTC (permalink / raw)
  To: Chunyu Hu
  Cc: david, shuah, linux-mm, linux-kselftest, linux-kernel,
	lorenzo.stoakes, Liam.Howlett, vbabka, rppt, surenb, mhocko,
	Luiz Capitulino

On Sun, 21 Dec 2025 12:00:21 +0800 Chunyu Hu <chuhu@redhat.com> wrote:

> Patch series "Fix va_high_addr_switch.sh test failure - again", v2.
> 
> The series address several issues exist for the va_high_addr_switch test:
> 1) the test return value is ignored in va_high_addr_switch.sh.
> 2) the va_high_addr_switch test requires 6 hugepages not 5.
> 3) the reurn value of the first test in va_high_addr_switch.c can be
>    overridden by the second test.
> 4) the nr_hugepages setup in run_vmtests.sh for arm64 can be done in
>    va_high_addr_switch.sh too.
> 5) update a comment for check_test_requirements.
> 
> Changes in v2:
>  - shorten the comment in for hugepages setup in v1
>  - add a new patch to fix the return value overridden issue in
>    va_high_addr_switch.c
>  - fix a code comment for check_test_requirements.
>  - update the series summary in patch 1
>  - add reviewed-by from Luiz Capitulino on patch 1 and patch 3

The "Changes in v2" material is best placed below the "---" separator -
I prefer not to capture such short-term development-time info within
the permanent kernel record.

> This patch: (of 5)
> 
> The return value should be return value of va_high_addr_switch, otherwise
> a test failure would be silently ignored.
> 
> Reviewed-by: Luiz Capitulino <luizcap@redhat.com>
> 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>
> 
> ...
>
> According to the doc below, I don't add the cover letter, not sure if cover
> letter is preferred, and if that's the case, the doc need an update.

Funnily enough, your series was in the exact format which I use when
committing patch series.  Usually people put the cover letter in a
separate [0/N] email and I move that into the [1/N] patch's changelog,
as you've done here.

> https://www.ozlabs.org/~akpm/stuff/tpp.txt

God does that still exist?  Pretty soon it will be able to legally
drink in bars.

I think its content got absorbed into a Documentation/ file a long time
ago!



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

* Re: [PATCH v2 1/5] selftests/mm: fix va_high_addr_switch.sh return value
  2025-12-21 18:57 ` [PATCH v2 1/5] selftests/mm: fix va_high_addr_switch.sh return value Andrew Morton
@ 2025-12-22  4:32   ` Chunyu Hu
  2025-12-23  1:15     ` SeongJae Park
  0 siblings, 1 reply; 15+ messages in thread
From: Chunyu Hu @ 2025-12-22  4:32 UTC (permalink / raw)
  To: Andrew Morton
  Cc: david, shuah, linux-mm, linux-kselftest, linux-kernel,
	lorenzo.stoakes, Liam.Howlett, vbabka, rppt, surenb, mhocko,
	Luiz Capitulino

On Sun, Dec 21, 2025 at 10:57:09AM -0800, Andrew Morton wrote:
> On Sun, 21 Dec 2025 12:00:21 +0800 Chunyu Hu <chuhu@redhat.com> wrote:
> 
> > Patch series "Fix va_high_addr_switch.sh test failure - again", v2.
> > 
> > The series address several issues exist for the va_high_addr_switch test:
> > 1) the test return value is ignored in va_high_addr_switch.sh.
> > 2) the va_high_addr_switch test requires 6 hugepages not 5.
> > 3) the reurn value of the first test in va_high_addr_switch.c can be
> >    overridden by the second test.
> > 4) the nr_hugepages setup in run_vmtests.sh for arm64 can be done in
> >    va_high_addr_switch.sh too.
> > 5) update a comment for check_test_requirements.
> > 
> > Changes in v2:
> >  - shorten the comment in for hugepages setup in v1
> >  - add a new patch to fix the return value overridden issue in
> >    va_high_addr_switch.c
> >  - fix a code comment for check_test_requirements.
> >  - update the series summary in patch 1
> >  - add reviewed-by from Luiz Capitulino on patch 1 and patch 3
> 
> The "Changes in v2" material is best placed below the "---" separator -
> I prefer not to capture such short-term development-time info within
> the permanent kernel record.

That makes sense.

> 
> > This patch: (of 5)
> > 
> > The return value should be return value of va_high_addr_switch, otherwise
> > a test failure would be silently ignored.
> > 
> > Reviewed-by: Luiz Capitulino <luizcap@redhat.com>
> > 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>
> > 
> > ...
> >
> > According to the doc below, I don't add the cover letter, not sure if cover
> > letter is preferred, and if that's the case, the doc need an update.
> 
> Funnily enough, your series was in the exact format which I use when
> committing patch series.  Usually people put the cover letter in a
> separate [0/N] email and I move that into the [1/N] patch's changelog,
> as you've done here.

yes, I see cover-letter is the actualy way people is using and looks
like I did some of your work putting that cover letter into the first
patch. I think I'll add cover-letter in the future.


> 
> > https://www.ozlabs.org/~akpm/stuff/tpp.txt
> 
> God does that still exist?  Pretty soon it will be able to legally
> drink in bars.
> 
> I think its content got absorbed into a Documentation/ file a long time
> ago!

I happened to open it before I submitting my patch, and wanted to know 
what would happen if I follow that. And it looks like cover letter has
become the actual convention.

> 
> 


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

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

On 2025-12-20 23:00, 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.

Reviewed-by: Luiz Capitulino <luizcap@redhat.com>

> 
> 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 | 4 ++--
>   1 file changed, 2 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..a0c93d348b11 100755
> --- a/tools/testing/selftests/mm/va_high_addr_switch.sh
> +++ b/tools/testing/selftests/mm/va_high_addr_switch.sh
> @@ -111,8 +111,8 @@ setup_nr_hugepages()
>   
>   check_test_requirements
>   save_nr_hugepages
> -# 4 keep_mapped pages, and one for tmp usage
> -setup_nr_hugepages 5
> +# The HugeTLB tests require 6 pages
> +setup_nr_hugepages 6
>   ./va_high_addr_switch --run-hugetlb
>   retcode=$?
>   restore_nr_hugepages


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

* Re: [PATCH v2 4/5] selftests/mm: va_high_addr_switch return fail when either test failed
  2025-12-21  4:00     ` [PATCH v2 4/5] selftests/mm: va_high_addr_switch return fail when either test failed Chunyu Hu
  2025-12-21  4:00       ` [PATCH v2 5/5] selftests/mm: fix comment for check_test_requirements Chunyu Hu
@ 2025-12-22 19:36       ` Luiz Capitulino
  2025-12-23  2:46         ` Chunyu Hu
  1 sibling, 1 reply; 15+ messages in thread
From: Luiz Capitulino @ 2025-12-22 19:36 UTC (permalink / raw)
  To: Chunyu Hu, akpm, david, shuah, linux-mm
  Cc: linux-kselftest, linux-kernel, lorenzo.stoakes, Liam.Howlett,
	vbabka, rppt, surenb, mhocko

On 2025-12-20 23:00, Chunyu Hu wrote:
> When the first test failed, and the hugetlb test passed, the result would
> be pass, but we expect a fail. Fix this issue by returning fail if either
> is not KSFT_PASS.
> 
> CC: Luiz Capitulino <luizcap@redhat.com>
> Signed-off-by: Chunyu Hu <chuhu@redhat.com>
> ---
>   tools/testing/selftests/mm/va_high_addr_switch.c | 10 +++++++---
>   1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/testing/selftests/mm/va_high_addr_switch.c b/tools/testing/selftests/mm/va_high_addr_switch.c
> index 02f290a69132..51401e081b20 100644
> --- a/tools/testing/selftests/mm/va_high_addr_switch.c
> +++ b/tools/testing/selftests/mm/va_high_addr_switch.c
> @@ -322,7 +322,7 @@ static int supported_arch(void)
>   
>   int main(int argc, char **argv)
>   {
> -	int ret;
> +	int ret, hugetlb_ret = KSFT_PASS;
>   
>   	if (!supported_arch())
>   		return KSFT_SKIP;
> @@ -331,6 +331,10 @@ int main(int argc, char **argv)
>   
>   	ret = run_test(testcases, sz_testcases);
>   	if (argc == 2 && !strcmp(argv[1], "--run-hugetlb"))
> -		ret = run_test(hugetlb_testcases, sz_hugetlb_testcases);

Maybe you could just have used:

		ret |= run_test(hugetlb_testcases, sz_hugetlb_testcases);

But anyways, as this is just testing code:

Reviewed-by: Luiz Capitulino <luizcap@redhat.com>

> -	return ret;
> +		hugetlb_ret = run_test(hugetlb_testcases, sz_hugetlb_testcases);
> +
> +	if (ret == KSFT_PASS && hugetlb_ret == KSFT_PASS)
> +		return KSFT_PASS;
> +	else
> +		return KSFT_FAIL;
>   }


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

* Re: [PATCH v2 5/5] selftests/mm: fix comment for check_test_requirements
  2025-12-21  4:00       ` [PATCH v2 5/5] selftests/mm: fix comment for check_test_requirements Chunyu Hu
@ 2025-12-22 19:37         ` Luiz Capitulino
  0 siblings, 0 replies; 15+ messages in thread
From: Luiz Capitulino @ 2025-12-22 19:37 UTC (permalink / raw)
  To: Chunyu Hu, akpm, david, shuah, linux-mm
  Cc: linux-kselftest, linux-kernel, lorenzo.stoakes, Liam.Howlett,
	vbabka, rppt, surenb, mhocko

On 2025-12-20 23:00, Chunyu Hu wrote:
> The test supports arm64 as well so the comment is incorrect. And there's
> a check for arm64 in va_high_addr_switch.c.
> 
> CC: Luiz Capitulino <luizcap@redhat.com>
> Fixes: 983e760bcdb6 ("selftest/mm: va_high_addr_switch: add ppc64 support check")
> Fixes: f556acc2facd ("selftests/mm: skip test for non-LPA2 and non-LVA systems")
> Signed-off-by: Chunyu Hu <chuhu@redhat.com>

Reviewed-by: Luiz Capitulino <luizcap@redhat.com>

> ---
>   tools/testing/selftests/mm/va_high_addr_switch.sh | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/testing/selftests/mm/va_high_addr_switch.sh b/tools/testing/selftests/mm/va_high_addr_switch.sh
> index a0c93d348b11..9492c2d72634 100755
> --- a/tools/testing/selftests/mm/va_high_addr_switch.sh
> +++ b/tools/testing/selftests/mm/va_high_addr_switch.sh
> @@ -61,9 +61,9 @@ check_supported_ppc64()
>   
>   check_test_requirements()
>   {
> -	# The test supports x86_64 and powerpc64. We currently have no useful
> -	# eligibility check for powerpc64, and the test itself will reject other
> -	# architectures.
> +	# The test supports x86_64, powerpc64 and arm64. There's check for arm64
> +	# in va_high_addr_switch.c. The test itself will reject other architectures.
> +
>   	case `uname -m` in
>   		"x86_64")
>   			check_supported_x86_64


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

* Re: [PATCH v2 1/5] selftests/mm: fix va_high_addr_switch.sh return value
  2025-12-22  4:32   ` Chunyu Hu
@ 2025-12-23  1:15     ` SeongJae Park
  2025-12-23  2:54       ` Chunyu Hu
  0 siblings, 1 reply; 15+ messages in thread
From: SeongJae Park @ 2025-12-23  1:15 UTC (permalink / raw)
  To: Chunyu Hu
  Cc: SeongJae Park, Andrew Morton, david, shuah, linux-mm,
	linux-kselftest, linux-kernel, lorenzo.stoakes, Liam.Howlett,
	vbabka, rppt, surenb, mhocko, Luiz Capitulino

On Mon, 22 Dec 2025 12:32:16 +0800 Chunyu Hu <chuhu@redhat.com> wrote:

> On Sun, Dec 21, 2025 at 10:57:09AM -0800, Andrew Morton wrote:
> > On Sun, 21 Dec 2025 12:00:21 +0800 Chunyu Hu <chuhu@redhat.com> wrote:
[...]
> > > According to the doc below, I don't add the cover letter, not sure if cover
> > > letter is preferred, and if that's the case, the doc need an update.
> > 
> > Funnily enough, your series was in the exact format which I use when
> > committing patch series.  Usually people put the cover letter in a
> > separate [0/N] email and I move that into the [1/N] patch's changelog,
> > as you've done here.
> 
> yes, I see cover-letter is the actualy way people is using and looks
> like I did some of your work putting that cover letter into the first
> patch. I think I'll add cover-letter in the future.
> 
> 
> > 
> > > https://www.ozlabs.org/~akpm/stuff/tpp.txt
> > 
> > God does that still exist?  Pretty soon it will be able to legally
> > drink in bars.
> > 
> > I think its content got absorbed into a Documentation/ file a long time
> > ago!
> 
> I happened to open it before I submitting my patch, and wanted to know 
> what would happen if I follow that. And it looks like cover letter has
> become the actual convention.

I think you could use
Documentation/process/submitting-patches.rst instead.  The html version is also
available at
https://origin.kernel.org/doc/html/latest/process/submitting-patches.html


Thanks,
SJ

[...]

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

* Re: [PATCH v2 4/5] selftests/mm: va_high_addr_switch return fail when either test failed
  2025-12-22 19:36       ` [PATCH v2 4/5] selftests/mm: va_high_addr_switch return fail when either test failed Luiz Capitulino
@ 2025-12-23  2:46         ` Chunyu Hu
  2025-12-23  2:56           ` Andrew Morton
  0 siblings, 1 reply; 15+ messages in thread
From: Chunyu Hu @ 2025-12-23  2:46 UTC (permalink / raw)
  To: Luiz Capitulino, akpm
  Cc: akpm, david, shuah, linux-mm, linux-kselftest, linux-kernel,
	lorenzo.stoakes, Liam.Howlett, vbabka, rppt, surenb, mhocko

On Mon, Dec 22, 2025 at 02:36:18PM -0500, Luiz Capitulino wrote:
> On 2025-12-20 23:00, Chunyu Hu wrote:
> > When the first test failed, and the hugetlb test passed, the result would
> > be pass, but we expect a fail. Fix this issue by returning fail if either
> > is not KSFT_PASS.
> > 
> > CC: Luiz Capitulino <luizcap@redhat.com>
> > Signed-off-by: Chunyu Hu <chuhu@redhat.com>
> > ---
> >   tools/testing/selftests/mm/va_high_addr_switch.c | 10 +++++++---
> >   1 file changed, 7 insertions(+), 3 deletions(-)
> > 
> > diff --git a/tools/testing/selftests/mm/va_high_addr_switch.c b/tools/testing/selftests/mm/va_high_addr_switch.c
> > index 02f290a69132..51401e081b20 100644
> > --- a/tools/testing/selftests/mm/va_high_addr_switch.c
> > +++ b/tools/testing/selftests/mm/va_high_addr_switch.c
> > @@ -322,7 +322,7 @@ static int supported_arch(void)
> >   int main(int argc, char **argv)
> >   {
> > -	int ret;
> > +	int ret, hugetlb_ret = KSFT_PASS;
> >   	if (!supported_arch())
> >   		return KSFT_SKIP;
> > @@ -331,6 +331,10 @@ int main(int argc, char **argv)
> >   	ret = run_test(testcases, sz_testcases);
> >   	if (argc == 2 && !strcmp(argv[1], "--run-hugetlb"))
> > -		ret = run_test(hugetlb_testcases, sz_hugetlb_testcases);
> 
> Maybe you could just have used:
> 
> 		ret |= run_test(hugetlb_testcases, sz_hugetlb_testcases);

Good point. I thought the result code is not encoded by bit, but for
KSFT_PASS and KSFT_FAIL, and KSFT_SKIP, they are per bit.

   85 #define KSFT_PASS  0
   86 #define KSFT_FAIL  1
   87 #define KSFT_XFAIL 2
   88 #define KSFT_XPASS 3
   89 #define KSFT_SKIP  4

@Andrew, do you think I need to send a v3 for using the simpified way?
if so, send the whole series or the single patch?

> 
> But anyways, as this is just testing code:
> 
> Reviewed-by: Luiz Capitulino <luizcap@redhat.com>
> 
> > -	return ret;
> > +		hugetlb_ret = run_test(hugetlb_testcases, sz_hugetlb_testcases);
> > +
> > +	if (ret == KSFT_PASS && hugetlb_ret == KSFT_PASS)
> > +		return KSFT_PASS;
> > +	else
> > +		return KSFT_FAIL;
> >   }
> 


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

* Re: [PATCH v2 1/5] selftests/mm: fix va_high_addr_switch.sh return value
  2025-12-23  1:15     ` SeongJae Park
@ 2025-12-23  2:54       ` Chunyu Hu
  0 siblings, 0 replies; 15+ messages in thread
From: Chunyu Hu @ 2025-12-23  2:54 UTC (permalink / raw)
  To: SeongJae Park
  Cc: Andrew Morton, david, shuah, linux-mm, linux-kselftest,
	linux-kernel, lorenzo.stoakes, Liam.Howlett, vbabka, rppt, surenb,
	mhocko, Luiz Capitulino

On Mon, Dec 22, 2025 at 05:15:31PM -0800, SeongJae Park wrote:
> On Mon, 22 Dec 2025 12:32:16 +0800 Chunyu Hu <chuhu@redhat.com> wrote:
> 
> > On Sun, Dec 21, 2025 at 10:57:09AM -0800, Andrew Morton wrote:
> > > On Sun, 21 Dec 2025 12:00:21 +0800 Chunyu Hu <chuhu@redhat.com> wrote:
> [...]
> > > > According to the doc below, I don't add the cover letter, not sure if cover
> > > > letter is preferred, and if that's the case, the doc need an update.
> > > 
> > > Funnily enough, your series was in the exact format which I use when
> > > committing patch series.  Usually people put the cover letter in a
> > > separate [0/N] email and I move that into the [1/N] patch's changelog,
> > > as you've done here.
> > 
> > yes, I see cover-letter is the actualy way people is using and looks
> > like I did some of your work putting that cover letter into the first
> > patch. I think I'll add cover-letter in the future.
> > 
> > 
> > > 
> > > > https://www.ozlabs.org/~akpm/stuff/tpp.txt
> > > 
> > > God does that still exist?  Pretty soon it will be able to legally
> > > drink in bars.
> > > 
> > > I think its content got absorbed into a Documentation/ file a long time
> > > ago!
> > 
> > I happened to open it before I submitting my patch, and wanted to know 
> > what would happen if I follow that. And it looks like cover letter has
> > become the actual convention.
> 
> I think you could use
> Documentation/process/submitting-patches.rst instead.  The html version is also
> available at
> https://origin.kernel.org/doc/html/latest/process/submitting-patches.html

Thanks! Sure. I'll use that. I know this doc, it's where I find the tpp.txt
in the 'References' section.

> 
> 
> Thanks,
> SJ
> 
> [...]
> 


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

* Re: [PATCH v2 4/5] selftests/mm: va_high_addr_switch return fail when either test failed
  2025-12-23  2:46         ` Chunyu Hu
@ 2025-12-23  2:56           ` Andrew Morton
  2025-12-23  3:04             ` Chunyu Hu
  0 siblings, 1 reply; 15+ messages in thread
From: Andrew Morton @ 2025-12-23  2:56 UTC (permalink / raw)
  To: Chunyu Hu
  Cc: Luiz Capitulino, david, shuah, linux-mm, linux-kselftest,
	linux-kernel, lorenzo.stoakes, Liam.Howlett, vbabka, rppt, surenb,
	mhocko

On Tue, 23 Dec 2025 10:46:18 +0800 Chunyu Hu <chuhu@redhat.com> wrote:

> > >   int main(int argc, char **argv)
> > >   {
> > > -	int ret;
> > > +	int ret, hugetlb_ret = KSFT_PASS;
> > >   	if (!supported_arch())
> > >   		return KSFT_SKIP;
> > > @@ -331,6 +331,10 @@ int main(int argc, char **argv)
> > >   	ret = run_test(testcases, sz_testcases);
> > >   	if (argc == 2 && !strcmp(argv[1], "--run-hugetlb"))
> > > -		ret = run_test(hugetlb_testcases, sz_hugetlb_testcases);
> > 
> > Maybe you could just have used:
> > 
> > 		ret |= run_test(hugetlb_testcases, sz_hugetlb_testcases);
> 
> Good point. I thought the result code is not encoded by bit, but for
> KSFT_PASS and KSFT_FAIL, and KSFT_SKIP, they are per bit.
> 
>    85 #define KSFT_PASS  0
>    86 #define KSFT_FAIL  1
>    87 #define KSFT_XFAIL 2
>    88 #define KSFT_XPASS 3
>    89 #define KSFT_SKIP  4
> 
> @Andrew, do you think I need to send a v3 for using the simpified way?
> if so, send the whole series or the single patch?

Leave it as it is?  This thing isn't a bitfield, so using |= happens to
work thanks to good luck.

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

* Re: [PATCH v2 4/5] selftests/mm: va_high_addr_switch return fail when either test failed
  2025-12-23  2:56           ` Andrew Morton
@ 2025-12-23  3:04             ` Chunyu Hu
  0 siblings, 0 replies; 15+ messages in thread
From: Chunyu Hu @ 2025-12-23  3:04 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Luiz Capitulino, david, shuah, linux-mm, linux-kselftest,
	linux-kernel, lorenzo.stoakes, Liam.Howlett, vbabka, rppt, surenb,
	mhocko

On Mon, Dec 22, 2025 at 06:56:18PM -0800, Andrew Morton wrote:
> On Tue, 23 Dec 2025 10:46:18 +0800 Chunyu Hu <chuhu@redhat.com> wrote:
> 
> > > >   int main(int argc, char **argv)
> > > >   {
> > > > -	int ret;
> > > > +	int ret, hugetlb_ret = KSFT_PASS;
> > > >   	if (!supported_arch())
> > > >   		return KSFT_SKIP;
> > > > @@ -331,6 +331,10 @@ int main(int argc, char **argv)
> > > >   	ret = run_test(testcases, sz_testcases);
> > > >   	if (argc == 2 && !strcmp(argv[1], "--run-hugetlb"))
> > > > -		ret = run_test(hugetlb_testcases, sz_hugetlb_testcases);
> > > 
> > > Maybe you could just have used:
> > > 
> > > 		ret |= run_test(hugetlb_testcases, sz_hugetlb_testcases);
> > 
> > Good point. I thought the result code is not encoded by bit, but for
> > KSFT_PASS and KSFT_FAIL, and KSFT_SKIP, they are per bit.
> > 
> >    85 #define KSFT_PASS  0
> >    86 #define KSFT_FAIL  1
> >    87 #define KSFT_XFAIL 2
> >    88 #define KSFT_XPASS 3
> >    89 #define KSFT_SKIP  4
> > 
> > @Andrew, do you think I need to send a v3 for using the simpified way?
> > if so, send the whole series or the single patch?
> 
> Leave it as it is?  This thing isn't a bitfield, so using |= happens to
> work thanks to good luck.

It works for me. Thanks.

> 


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

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

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-21  4:00 [PATCH v2 1/5] selftests/mm: fix va_high_addr_switch.sh return value Chunyu Hu
2025-12-21  4:00 ` [PATCH v2 2/5] selftests/mm: allocate 6 hugepages in va_high_addr_switch.sh Chunyu Hu
2025-12-21  4:00   ` [PATCH v2 3/5] selftests/mm: remove arm64 nr_hugepages setup for va_high_addr_switch test Chunyu Hu
2025-12-21  4:00     ` [PATCH v2 4/5] selftests/mm: va_high_addr_switch return fail when either test failed Chunyu Hu
2025-12-21  4:00       ` [PATCH v2 5/5] selftests/mm: fix comment for check_test_requirements Chunyu Hu
2025-12-22 19:37         ` Luiz Capitulino
2025-12-22 19:36       ` [PATCH v2 4/5] selftests/mm: va_high_addr_switch return fail when either test failed Luiz Capitulino
2025-12-23  2:46         ` Chunyu Hu
2025-12-23  2:56           ` Andrew Morton
2025-12-23  3:04             ` Chunyu Hu
2025-12-22 19:34   ` [PATCH v2 2/5] selftests/mm: allocate 6 hugepages in va_high_addr_switch.sh Luiz Capitulino
2025-12-21 18:57 ` [PATCH v2 1/5] selftests/mm: fix va_high_addr_switch.sh return value Andrew Morton
2025-12-22  4:32   ` Chunyu Hu
2025-12-23  1:15     ` SeongJae Park
2025-12-23  2:54       ` Chunyu Hu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).