diff options
| author | Hajime Tazaki <thehajime@gmail.com> | 2026-10-06 17:56:41 +0900 |
|---|---|---|
| committer | Andrew Morton <akpm@linux-foundation.org> | 2026-10-08 23:06:26 -0700 |
| commit | 3667d2fe64cdd40b68a49b92bbc723eb7f6a0891 (patch) | |
| tree | 860d2552acc88a5e7e3e1417f0b3c15413488383 /tools/lib/python | |
| parent | 64b19c8ba796069c250587731f448da90bdd2dad (diff) | |
| download | linux-next-3667d2fe64cdd40b68a49b92bbc723eb7f6a0891.tar.gz linux-next-3667d2fe64cdd40b68a49b92bbc723eb7f6a0891.zip | |
selftests: run tests on nommu architecture
Patch series "support kselftest on nommu platform", v5.
This patchset adds 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).
Initial shape for this patches is implemented as an opt-in TARGET, not
built/invoked automatically if users don't specify this nommu target.
This patch (of 2):
Architectures lacking MMU don't support fork(2) syscall and only vfork(2)
is available with limitations. Thus, we cannot run kselftest on nommu
architecture as is.
This commit addresses this issue with the following changes:
- Detect NOMMU at runtime from the MmapCopy field in /proc/meminfo
and avoid timeout, which requires fork(2).
- Document how to build and run the NOMMU tests, including the procfs
prerequisite for runtime detection.
Build and run the tests with:
$ make ARCH=um O=build kselftest-all TARGETS=nommu
$ make ARCH=um O=build kselftest-install TARGETS=nommu
$ ./build/kselftest/kselftest_install/run_kselftest.sh -p -c nommu
Link: https://lore.kernel.org/20261006085642.3852152-1-thehajime@gmail.com
Link: https://lore.kernel.org/20261006085642.3852152-2-thehajime@gmail.com
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Closes: https://sashiko.dev/#/patchset/20260813063401.1786548-1-thehajime%40gmail.com
Cc: Shuah Khan <shuah@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Kees Cook <kees@kernel.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Will Drewry <wad@chromium.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: Brendan Jackman <brendan.jackman@linux.dev>
Cc: Hangbin Liu <liuhangbin@gmail.com>
Cc: "Ricardo B. Marliere" <rbm@suse.com>
Cc: Liam R. Howlett <liam@infradead.org>
Cc: David Hildenbrand <david@kernel.org>
Cc: Lorenzo Stoakes <ljs@kernel.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@kernel.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Daniel Palmer <daniel@thingy.jp>
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions
