Running the full kunit suite on arm64 (128-core Neoverse N2) with 7.1-rc3+
produces a handful of backtraces that are not real kernel bugs but
rather test-infrastructure issues: races with boot-time code, missing
bounds checks, resource leaks, and sysfs duplicate-name splats.
This series fixes them one by one so that a clean kunit run no longer
leaves noise in dmesg:
1. init/initramfs_test races with the async rootfs unpacker; add
wait_for_initramfs() in suite .init.
2. kfence kunit cases fail outright when the pool is unavailable;
skip them instead.
3. intlog2(0) / intlog10(0) hit a WARN_ON that is harmless; remove it.
4. kunit_platform_device_add() triggers sysfs_warn_dup() on the
duplicate-registration test; catch duplicates early in the kunit
helper (best-effort; final protection remains in driver core/sysfs).
5. misc_register() likewise hits sysfs_warn_dup(); reject duplicate
names explicitly. misc->name is never NULL at this point since the
existing code already dereferences it unconditionally.
6. hw_breakpoint test_many_cpus overflows its array on machines with
many cores; bail out at the limit.
7. test_ratelimit stress test checks the wrong variable for kthread
creation, leaks memory, and races on doneflag. Use goto-based
cleanup to guarantee all started threads are stopped on failure.
All patches are independent and can be applied/reviewed separately.
Tested on arm64 Neoverse N2 (128-core arm64) with
CONFIG_KUNIT=y and CONFIG_KUNIT_ALL_TESTS=y.
Jia He (7):
init/initramfs_test: wait_for_initramfs() before running
kfence: kunit: skip when no pool is available
lib/math/int_log: drop WARN_ON for value == 0
kunit: platform: catch duplicate (name, id) in kunit_platform_device_add()
misc: reject duplicate names in misc_register()
hw_breakpoint_test: fix test_many_cpus failure on large systems
lib/tests: test_ratelimit: fix stress test thread lifecycle and leak
drivers/char/misc.c | 22 ++++++++++++++++++
init/initramfs_test.c | 17 +++++++++++++-
kernel/events/hw_breakpoint_test.c | 12 ++++++++++
lib/kunit/platform.c | 36 +++++++++++++++++++++++++++++
lib/math/int_log.c | 8 ++-----
lib/tests/test_ratelimit.c | 26 ++++++++++++++++-----
mm/kfence/kfence_test.c | 6 +++--
7 files changed, 115 insertions(+), 12 deletions(-)