Re: [PATCH v2 0/2] support kselftest on nommu platform
"David Hildenbrand (Arm)" <[email protected]>
| Newsgroups | org.kernel.vger.linux-doc,org.infradead.lists.linux-um,org.kernel.vger.linux-kselftest,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On 8/25/26 15:12, Lorenzo Stoakes (ARM) wrote: > On Tue, Aug 25, 2026 at 10:37:41AM +0200, David Hildenbrand (Arm) wrote: >> On 8/25/26 03:59, Hajime Tazaki wrote: >>> We add an ability to execute kselftest on nommu platforms. >>> >>> Currently there are several issues if we wish to run kselftests on nommu >>> targets: >>> >>> - it cannot compile/build test binaries because the current files mainly >>> assume to build with glibc, >>> - some of the tests are not able to run on nommu targets as there are no >>> fork(2) syscall. >>> >>> The first issue can be avoided if we can build static PIE binaries (if >>> targets support it), but in our case (build on ubuntu/glibc and run on >>> alpine/musl-libc), it fails to invoke due to lack of the GNU ifunc >>> mechanism. Thus, we need to cross-compile with musl toolchain, which >>> needs to be solved the first issue. >>> >>> The second issue is the lack of fork(2) syscall on those platforms. >>> Especially the test harness helper (kselftest_harness.h) uses the >>> syscall, which cannot be simply with vfork(2). `timeout` command used >>> in `runner.sh` never works for nommu platform as it uses fork(2). >>> >>> nommu component in the mm subsystem has several known issues and having >>> test cases should help this situation, thus this patchset is very first >>> step toward enriching test environment which has not been well tested >>> for a while. The test cases is implemented based on the document >>> (Documentation/admin-guide/mm/nommu-mmap.rst). >>> >>> So, for the first step, nommu targets only support low-level API of >>> kselftests (kselftest.h), and implement tests in a new target, >>> TARGETS=mm/nommu. Other targets are currently not even able to build >>> due to toolchain issues but will be addressed once the initial >>> introduction which mainly focuses on nommu test will be settled. >>> >>> The patch was initially combined with other patches but is decoupled to >>> only focus on test framework and testcases. >>> >>> - rfc: >>> https://lore.kernel.org/linux-mm/[email protected]/ >>> >>> Hajime Tazaki (2): >>> selftests: run tests on nommu architecture >>> selftests/mm: add nommu mmap and mremap behavior tests >>> >>> Documentation/dev-tools/kselftest.rst | 14 + >>> tools/testing/selftests/Makefile | 1 + >>> tools/testing/selftests/kselftest/runner.sh | 9 +- >>> tools/testing/selftests/kselftest_harness.h | 4 + >>> tools/testing/selftests/lib.mk | 8 + >>> tools/testing/selftests/mm/nommu/Makefile | 7 + >>> .../selftests/mm/nommu/nommu_mmap_test.c | 265 +++++++++++++ >>> .../selftests/mm/nommu/nommu_mremap_test.c | 353 ++++++++++++++++++ >> >> That's odd. >> >> tools/testing/selftests/mm >> >> itself should know which tests can be built and ran on nommu. nommu-only tests >> can be placed in mm/nommu, but I would expect tools/testing/selftests/mm's >> Makefile and run script to compile and run only selftests that are supported on >> the given platform. > > I mean I think at this point with mm/nommu/nommu_xxx.c it'd make more sense to > simply have selftests/nommu/ + update the mm makefile to not build stuff that's > broken on nommu there. > > That way positively nommu-stuff is put in its own place and what's broken on mm > specific to nommu can be fixed there. > > I'd rather isolate them clearly rather than having them live in a subdirectory > of mm. My understanding is that some MM tests could be enabled/changed in the future that support both MMU and NOMMU. Not sure how to best handle that. So wiring up mm/nommu as a separate thing did sound wrong to me. So it should either be integrated or the tests in fact completely moved out of mm/ -- Cheers, David