On 21/05/26 12:17, Sayali Patil wrote:
uffd-stress currently fails when the computed nr_pages_per_cpu
evaluates to zero:

nr_pages_per_cpu = bytes / page_size / nr_parallel

This can occur on systems with large hugepage sizes (e.g. 1GB) and a
high number of CPUs, where the total allocated memory is sufficient
overall but not enough to provide at least one page per cpu.

In such cases, the failure is due to insufficient test resources
rather than incorrect kernel behaviour. Update the test
to treat this condition as a test skip instead of reporting an error.

Fixes: db0f1c138f18 ("selftests/mm: print some details when uffd-stress gets bad 
params")
Acked-by: Zi Yan <[email protected]>
Acked-by: David Hildenbrand (Arm) <[email protected]>
Tested-by: Venkat Rao Bagalkote <[email protected]>
Signed-off-by: Sayali Patil <[email protected]>
---
  tools/testing/selftests/mm/uffd-stress.c | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/mm/uffd-stress.c 
b/tools/testing/selftests/mm/uffd-stress.c
index 43cc79590136..39e13e2078a9 100644
--- a/tools/testing/selftests/mm/uffd-stress.c
+++ b/tools/testing/selftests/mm/uffd-stress.c
@@ -489,9 +489,9 @@ int main(int argc, char **argv)
gopts->nr_pages_per_cpu = bytes / gopts->page_size / gopts->nr_parallel;
        if (!gopts->nr_pages_per_cpu) {
-               _err("pages_per_cpu = 0, cannot test (%lu / %lu / %lu)",
-                       bytes, gopts->page_size, gopts->nr_parallel);
-               usage();
+               ksft_print_msg("pages_per_cpu = 0, cannot test (%zu / %lu / 
%lu)\n",
+                              bytes, gopts->page_size, gopts->nr_parallel);
+               return KSFT_SKIP;
        }
bounces = atoi(argv[3]);


Hi Andrew,
Can you please apply the below fixlet on top of this patch as suggested by Sashiko.

From aa8f2eea63defd9b9c1342b83838f48e93e1b918 Mon Sep 17 00:00:00 2001
From: Sayali Patil <[email protected]>
Date: Thu, 21 May 2026 13:32:51 +0530
Subject: [PATCH] [fixlet] selftests/mm: use ksft_exit_skip() instead of
 KSFT_SKIP in uffd-stress

When nr_pages_per_cpu evaluates to zero, the test is skipped by
printing a message and returning KSFT_SKIP manually.

Replace this with ksft_exit_skip(), which prints the skip message
and exits with the correct skip status in a single helper, making
the code consistent with other selftests.

Signed-off-by: Sayali Patil <[email protected]>
---
 tools/testing/selftests/mm/uffd-stress.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tools/testing/selftests/mm/uffd-stress.c b/tools/testing/selftests/mm/uffd-stress.c
index 39e13e2078a9..3401dd6028f0 100644
--- a/tools/testing/selftests/mm/uffd-stress.c
+++ b/tools/testing/selftests/mm/uffd-stress.c
@@ -489,9 +489,8 @@ int main(int argc, char **argv)

        gopts->nr_pages_per_cpu = bytes / gopts->page_size / gopts->nr_parallel;
        if (!gopts->nr_pages_per_cpu) {
-               ksft_print_msg("pages_per_cpu = 0, cannot test (%zu / %lu / 
%lu)\n",
+               ksft_exit_skip("pages_per_cpu = 0, cannot test (%zu / %lu / 
%lu)\n",
                               bytes, gopts->page_size, gopts->nr_parallel);
-               return KSFT_SKIP;
        }

        bounces = atoi(argv[3]);
--
2.52.0


Thanks,
Sayali

Reply via email to