From d56e22f0d68cf99b052793c80fd9509677e89cea Mon Sep 17 00:00:00 2001 From: Telukula Jeevan Kumar Sahu Date: Thu, 4 Jun 2026 18:09:07 +0530 Subject: [PATCH] kernel-selftest: add generic architecture-independent self-tests Add generic kernel self-tests that build cleanly with mainline kernel (6.18+), work on all architectures, and either PASS or SKIP gracefully at runtime. Tests added: - acct: BSD process accounting - breakpoints: hardware breakpoint handling - cachestat: page cache statistics (cachestat syscall) - cgroup: control group v1 interface - clone3: clone3 syscall with flags - core: syscalls like close_range, unshare - coredump: core dump generation - dmabuf-heaps: DMA-BUF heap allocator - efivarfs: EFI variable filesystem - filelock: POSIX file locking (OFD locks) - filesystems: basic filesystem operations - filesystems/binderfs: Android Binder IPC (skips if CONFIG_ANDROID_BINDERFS=n) - filesystems/epoll: epoll syscall extensions - fpu: floating-point unit state - ftrace: function tracer interface - futex: fast userspace mutex - gpio: general purpose I/O - ipc: System V IPC primitives - kcmp: compare kernel resource identifiers - kvm: kernel-based virtual machine - landlock: LSM sandboxing (skips if CONFIG_SECURITY_LANDLOCK=n) - locking: ww_mutex deadlock avoidance - lsm: Linux Security Module interface - membarrier: memory barrier syscalls - mincore: mincore syscall (page residency) - mount: mount syscall (unprivileged variants) - mount_setattr: mount attribute syscall - move_mount_set_group: move_mount peer group - mseal_system_mappings: system mapping sealing - namespaces: PID/UTS/IPC/mount/network namespaces - net: networking stack - net/mptcp: multipath TCP - pidfd: pidfd-based process management - pid_namespace: PID namespace limits - proc: /proc filesystem interface - ptrace: process tracing - rlimits: resource limits - rseq: restartable sequences - sched: scheduler and real-time classes - seccomp: secure computing mode - signal: signal handling - size: ELF size utilities - splice: zero-copy data transfers - sync: cache synchronization - syscall_user_dispatch: user-space syscall dispatch - sysctl: sysctl interface - tc-testing: traffic control - timens: time namespaces - tmpfs: tmpfs filesystem - tpm2: Trusted Platform Module 2.0 - tty: TTY layer - uevent: kernel uevent subsystem - user_events: tracepoint user interface - vDSO: virtual dynamic shared object - watchdog: hardware watchdog timer - zram: compressed RAM block device Tested on aarch64 device BeaglePlay(AM6254 SoC): - Tests either PASS or SKIP gracefully Depends-on: kernel-selftest: add libcap to build and runtime dependencies Signed-off-by: Telukula Jeevan Kumar Sahu Signed-off-by: Khem Raj --- .../kernel-selftest/kernel-selftest.bb | 58 ++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb index ab544859d8..7850ddb6c9 100644 --- a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb +++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb @@ -51,11 +51,67 @@ DEBUG_PREFIX_MAP:remove = "-fcanon-prefix-map" TEST_LIST = "\ ${@bb.utils.filter('PACKAGECONFIG', 'bpf firmware mm', d)} \ + acct \ + breakpoints \ + cachestat \ + cgroup \ + clone3 \ + core \ + coredump \ cpufreq \ cpu-hotplug \ - rtc \ + dmabuf-heaps \ + efivarfs \ + filelock \ + filesystems \ + filesystems/binderfs \ + filesystems/epoll \ + fpu \ + ftrace \ + futex \ + gpio \ + ipc \ + kcmp \ + kvm \ + landlock \ + locking \ + lsm \ + membarrier \ + mincore \ + mount \ + mount_setattr \ + move_mount_set_group \ + mseal_system_mappings \ + namespaces \ + net \ + net/mptcp \ + pidfd \ + pid_namespace \ + proc \ + ptrace \ ptp \ + rlimits \ + rseq \ + rtc \ + sched \ + seccomp \ + signal \ + size \ + splice \ + sync \ + syscall_user_dispatch \ + sysctl \ + tc-testing \ + timens \ timers \ + tmpfs \ + tpm2 \ + tty \ + uevent \ + user_events \ + vDSO \ + watchdog \ + zram \ " EXTRA_OEMAKE = '\ CROSS_COMPILE=${TARGET_PREFIX} \