]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
selftests/mm: skip thuge-gen test if system is not setup properly
authorAboorva Devarajan <aboorvad@linux.ibm.com>
Sat, 16 Aug 2025 04:01:12 +0000 (09:31 +0530)
committerAndrew Morton <akpm@linux-foundation.org>
Sat, 13 Sep 2025 23:55:04 +0000 (16:55 -0700)
Make thuge-gen skip instead of fail when it can't run due to system
settings.  If shmmax is too small or no 1G huge pages are available, the
test now prints a warning and is marked as skipped.

-------------------
Before Patch:
-------------------
~ running ./thuge-gen
~ Bail out! Please do echo 262144 > /proc/sys/kernel/shmmax
~ Totals: pass:0 fail:0 xfail:0 xpass:0 skip:0 error:0
~ [FAIL]
not ok 28 thuge-gen ~ exit=1

-------------------
After Patch:
-------------------
~ running ./thuge-gen
~ ~ WARNING: shmmax is too small to run this test.
~ ~ Please run the following command to increase shmmax:
~ ~ echo 262144 > /proc/sys/kernel/shmmax
~ 1..0 ~ SKIP Test skipped due to insufficient shmmax value.
~ [SKIP]
ok 29 thuge-gen ~ SKIP

Link: https://lkml.kernel.org/r/20250816040113.760010-7-aboorvad@linux.ibm.com
Co-developed-by: Donet Tom <donettom@linux.ibm.com>
Signed-off-by: Donet Tom <donettom@linux.ibm.com>
Signed-off-by: Aboorva Devarajan <aboorvad@linux.ibm.com>
Reviewed-by: Dev Jain <dev.jain@arm.com>
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Barry Song <baohua@kernel.org>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Mariano Pache <npache@redhat.com>
Cc: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
tools/testing/selftests/mm/thuge-gen.c

index 8e2b08dc5762072b17f0d05133dbe85552c1e121..4f5e290ff1a6c1dd7c18c3c6f7b2b055be91387a 100644 (file)
@@ -177,13 +177,16 @@ void find_pagesizes(void)
        globfree(&g);
 
        read_sysfs("/proc/sys/kernel/shmmax", &shmmax_val);
-       if (shmmax_val < NUM_PAGES * largest)
-               ksft_exit_fail_msg("Please do echo %lu > /proc/sys/kernel/shmmax",
-                                  largest * NUM_PAGES);
+       if (shmmax_val < NUM_PAGES * largest) {
+               ksft_print_msg("WARNING: shmmax is too small to run this test.\n");
+               ksft_print_msg("Please run the following command to increase shmmax:\n");
+               ksft_print_msg("echo %lu > /proc/sys/kernel/shmmax\n", largest * NUM_PAGES);
+               ksft_exit_skip("Test skipped due to insufficient shmmax value.\n");
+       }
 
 #if defined(__x86_64__)
        if (largest != 1U<<30) {
-               ksft_exit_fail_msg("No GB pages available on x86-64\n"
+               ksft_exit_skip("No GB pages available on x86-64\n"
                                   "Please boot with hugepagesz=1G hugepages=%d\n", NUM_PAGES);
        }
 #endif