From: Hajime Tazaki <thehajime@gmail.com>
To: linux-mm@kvack.org, liam@infradead.org, rbm@suse.com,
akpm@linux-foundation.org, luto@amacapital.net,
brendan.jackman@linux.dev, david@kernel.org,
liuhangbin@gmail.com, corbet@lwn.net, kees@kernel.org,
ljs@kernel.org, broonie@kernel.org, mhocko@suse.com,
rppt@kernel.org, shuah@kernel.org, surenb@google.com,
vbabka@kernel.org, wad@chromium.org, linux-doc@vger.kernel.org,
linux-kselftest@vger.kernel.org, linux-um@lists.infradead.org
Cc: geert@linux-m68k.org, daniel@thingy.jp,
Hajime Tazaki <thehajime@gmail.com>
Subject: [PATCH v4 1/2] selftests: run tests on nommu architecture
Date: Wed, 30 Sep 2026 08:57:10 +0900 [thread overview]
Message-ID: <20260929235711.2287931-2-thehajime@gmail.com> (raw)
In-Reply-To: <20260929235711.2287931-1-thehajime@gmail.com>
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:
- on test run stage, avoid calling timeout command when NOMMU=1 variable
added to environmental variable, since timeout command uses fork
syscall which nommu platform doesn't support.
- describe the difference of nommu tests in the document.
So command line to build/execute tests for nommu should be like below:
$ make ARCH=um NOMMU=1 O=build kselftest-all TARGETS=nommu
$ make ARCH=um NOMMU=1 O=build kselftest-install TARGETS=nommu
$ NOMMU=1 ./build/kselftest/kselftest_install/run_kselftest.sh -p \
-c nommu
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: linux-kselftest@vger.kernel.org
Cc: linux-um@lists.infradead.org
Cc: linux-mm@kvack.org
Cc: linux-doc@vger.kernel.org
Closes: https://sashiko.dev/#/patchset/20260813063401.1786548-1-thehajime%40gmail.com
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
--
v3 => v4
- fix typos in commit message
v2 => v3
- remove unnecessary modification
- new target is moved from TARGETS=mm/nommu to TARGETS=nommu
- rename CONFIG_NOMMU to NOMMU to avoid confusion to kernel config
rfc => v2
- reformat ktap header, reported by Sashiko review
- https://lore.kernel.org/linux-mm/20260825015945.141739-2-thehajime@gmail.com/
rfc: https://lore.kernel.org/linux-mm/20260813063401.1786548-1-thehajime@gmail.com/
---
Documentation/dev-tools/kselftest.rst | 14 ++++++++++++++
tools/testing/selftests/kselftest/runner.sh | 6 +++++-
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/Documentation/dev-tools/kselftest.rst b/Documentation/dev-tools/kselftest.rst
index 64c0ec7428a2..c35b819947b7 100644
--- a/Documentation/dev-tools/kselftest.rst
+++ b/Documentation/dev-tools/kselftest.rst
@@ -230,6 +230,20 @@ section::
.. _tar's auto-compress: https://www.gnu.org/software/tar/manual/html_node/gzip.html#auto_002dcompress
+Build and test on nommu target
+==============================
+
+If you (cross-)build kselftests for nommu targets, or run tests on nommu targets, use
+``NOMMU=1`` as a make variable/environment setting to tell build system to do the additional
+checks. These nommu targets may differ in several ways, such as not supporting fork(2) or
+using musl or another libc. Set this variable to apply the necessary build and test adjustments.
+
+::
+
+ $ make ARCH=um NOMMU=1 O=build kselftest-all TARGETS=nommu # <= build-only
+ $ make ARCH=um NOMMU=1 O=build kselftest-install TARGETS=nommu
+ $ NOMMU=1 ./build/kselftest/kselftest_install/run_kselftest.sh -p -c nommu
+
Contributing new tests
======================
diff --git a/tools/testing/selftests/kselftest/runner.sh b/tools/testing/selftests/kselftest/runner.sh
index 311811dc55a0..ee2c1f0403d9 100644
--- a/tools/testing/selftests/kselftest/runner.sh
+++ b/tools/testing/selftests/kselftest/runner.sh
@@ -38,8 +38,12 @@ tap_prefix()
tap_timeout()
{
+ # nommu doesn't support timeout command (missing fork(2))
+ if [ "$NOMMU" = "1" ] ; then
+ echo "timeout isn't supported for NOMMU"
+ $1
# Make sure tests will time out if utility is available.
- if [ -x /usr/bin/timeout ] ; then
+ elif [ -x /usr/bin/timeout ] ; then
/usr/bin/timeout --foreground "$kselftest_timeout" \
/usr/bin/timeout "$kselftest_timeout" $1
else
--
2.43.0
next prev parent reply other threads:[~2026-09-29 23:57 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-29 23:57 [PATCH v4 0/2] support kselftest on nommu platform Hajime Tazaki
2026-09-29 23:57 ` Hajime Tazaki [this message]
2026-09-30 9:17 ` [PATCH v4 1/2] selftests: run tests on nommu architecture Lorenzo Stoakes (ARM)
2026-10-01 7:08 ` David Hildenbrand (Arm)
2026-10-01 8:42 ` Lorenzo Stoakes (ARM)
2026-10-01 10:01 ` Johannes Berg
2026-10-02 2:38 ` Hajime Tazaki
2026-10-02 6:08 ` David Hildenbrand (Arm)
2026-10-02 8:10 ` Lorenzo Stoakes (ARM)
2026-10-02 11:38 ` Geert Uytterhoeven
2026-10-02 11:53 ` Lorenzo Stoakes (ARM)
2026-10-02 12:21 ` David Hildenbrand (Arm)
2026-10-03 22:39 ` Hajime Tazaki
2026-09-29 23:57 ` [PATCH v4 2/2] selftests/nommu: add nommu mmap and mremap behavior tests Hajime Tazaki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260929235711.2287931-2-thehajime@gmail.com \
--to=thehajime@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=brendan.jackman@linux.dev \
--cc=broonie@kernel.org \
--cc=corbet@lwn.net \
--cc=daniel@thingy.jp \
--cc=david@kernel.org \
--cc=geert@linux-m68k.org \
--cc=kees@kernel.org \
--cc=liam@infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-um@lists.infradead.org \
--cc=liuhangbin@gmail.com \
--cc=ljs@kernel.org \
--cc=luto@amacapital.net \
--cc=mhocko@suse.com \
--cc=rbm@suse.com \
--cc=rppt@kernel.org \
--cc=shuah@kernel.org \
--cc=surenb@google.com \
--cc=vbabka@kernel.org \
--cc=wad@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox