[PATCH v2 0/2] support kselftest on nommu platform
Lorenzo Stoakes (ARM)
ljs at kernel.org
Tue Aug 25 06:12:52 PDT 2026
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/20260813063401.1786548-1-thehajime@gmail.com/
> >
> > 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.
>
> --
> Cheers,
>
> David
--
Cheers, Lorenzo
More information about the linux-um
mailing list