Re: [PATCH v2] selftests/cgroup: test_zswap: skip test_no_kmem_bypass if debugfs is unavailable
Andrew Morton <[email protected]>
| Newsgroups | org.kernel.vger.cgroups,org.kernel.vger.linux-kselftest,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On Tue, 11 Aug 2026 05:14:11 +0000 Wilson Felipe Pereira <[email protected]> wrote: > test_no_kmem_bypass() needs to read > /sys/kernel/debug/zswap/stored_pages via get_zswap_stored_pages() to > verify that compressed pages are charged to the memcg. > > When running in an environment where debugfs is not mounted or > CONFIG_DEBUG_FS is disabled, get_zswap_stored_pages() fails, causing the > loop to terminate early and report a false negative (KSFT_FAIL). > > Selftests should not fail if debugfs is unavailable, and it should print > a message when it is skipped. > > While I'm here, also add a warning message if the test is being skipped > due to totalram size and make the check for totalram more readable. > > ... > > --- a/tools/testing/selftests/cgroup/lib/include/cgroup_util.h > +++ b/tools/testing/selftests/cgroup/lib/include/cgroup_util.h > > ... > > @@ -570,8 +571,16 @@ static int test_no_kmem_bypass(const char *root) > /* Read sys info and compute test values accordingly */ > if (sysinfo(&sys_info) != 0) > return KSFT_FAIL; > - if (sys_info.totalram > 5000000000) > + if (sys_info.totalram > GB(4)) { > + ksft_print_msg( > + "requires less than 4GB total ram, sys_info.totalram: %.1fGB\n", > + (double)sys_info.totalram / GB(1)); > return KSFT_SKIP; > + } > + if (access(PATH_ZSWAP_STORED_PAGES, R_OK)) { > + ksft_print_msg("mount debugfs at /sys/kernel/debug\n"); Super nittynit: "mount debugfs at /sys/kernel/debug" sounds like a progress message. "I just mounted debugfs at ...". I think the below is more clear? --- a/tools/testing/selftests/cgroup/test_zswap.c~selftests-cgroup-test_zswap-skip-test_no_kmem_bypass-if-debugfs-is-unavailable-fix +++ a/tools/testing/selftests/cgroup/test_zswap.c @@ -578,7 +578,7 @@ static int test_no_kmem_bypass(const cha return KSFT_SKIP; } if (access(PATH_ZSWAP_STORED_PAGES, R_OK)) { - ksft_print_msg("mount debugfs at /sys/kernel/debug\n"); + ksft_print_msg("debugfs not mounted at /sys/kernel/debug\n"); return KSFT_SKIP; } values = mmap(0, sizeof(struct no_kmem_bypass_child_args), PROT_READ | _