From: Konstantin Khorenko <khorenko@virtuozzo.com>
To: Eva Kurchatova <eva.kurchatova@virtuozzo.com>
Cc: devel@openvz.org
Subject: [Devel] [PATCH hci-8.1 v2 0/6] configs: a User Mode Linux kernel for the KUnit tests
Date: Mon, 26 Oct 2026 23:34:18 +0100 [thread overview]
Message-ID: <20261026-b4-prep-khorenko-vstor-143636-uml-config-v2-0-76c8329592af@virtuozzo.com> (raw)
Several KUnit tests can only be built into the kernel image, and the
shipped kernel builds its tests as modules, so nothing runs them. The
series adds a "um" config variant: a User Mode Linux kernel with every
KUnit test built in, under KASAN and UBSAN. kernel.spec builds it with
ARCH=um, kernel-selftests-internal ships it, and the hci-kunit test runs
it.
The variant inherits the generic and generic-x86 layers, so the tests
meet the options of the shipped x86_64 kernel, vz ones included. What
differs lives in custom-overrides/generic/um, one file per option as
for the other variants, and passes process_configs.sh -n -w -c.
- 1/6: the um variant, with the reason for each option turned off
- 2/6: KASAN_KUNIT_TEST keeps its prompt under KUNIT_ALL_TESTS, so
that the um config can leave it out
- 3/6: KASAN, without its self-test
- 4/6: no debug info, which kernel.spec would throw away anyway
- 5/6: the subsystems we ship as modules only go off, so that no KUnit
test is left a module
- 6/6: a check of the resolved config at build time
Outside this series:
- vzkernel.vzspecs: "kernel.spec: build the User Mode Linux KUnit
kernel" builds, checks and packages it from kernel-um-rhel.config
- git-publish.sh brings kernel-um-rhel.config to vzkernel.vzspecs
along with the x86_64 configs
- hci-tests PR #9241 (hci-kunit) runs it; a follow-up boots it with
kasan_multi_shot
The overrides and their reasons come from Eva Kurchatova's
kunit-uml-config.sh approach in vzkernel.vzspecs, which derived the
config at build time. This series moves the config into the kernel
tree.
https://virtuozzo.atlassian.net/browse/VSTOR-143636
https://virtuozzo.atlassian.net/browse/VSTOR-148112
Assisted-by: LLM
Signed-off-by: Konstantin Khorenko <khorenko@virtuozzo.com>
---
Changes in v2:
- 1/6: drop the stale NO_IOMEM override
- 3/6: turn SLUB_RCU_DEBUG on (Eva)
- 5/6: new, turn off the subsystems we ship as modules only, which kept
their KUnit tests modules: CFG80211, DRM_XE, DRM_VKMS, HID_UCLOGIC,
HSR, RPCSEC_GSS_KRB5 and NFSD
- 6/6: new, check_um_config.sh fails the build when the real compiler
drops an option the um layer sets, or a KUnit test is left a module
(Eva)
- Link to v1: http://lore.virtuozzo.com/20261026-b4-prep-khorenko-vstor-143636-uml-config-v1-0-b7e76e985a6b@virtuozzo.com
---
Konstantin Khorenko (6):
configs: add a User Mode Linux config for the KUnit tests
kasan: let a config leave the KUnit test out under KUNIT_ALL_TESTS
configs: build the User Mode Linux KUnit kernel with KASAN
configs: build the User Mode Linux KUnit kernel without debug info
configs: turn off module-only subsystems in the User Mode Linux config
configs: check the User Mode Linux KUnit config at build time
lib/Kconfig.kasan | 2 +-
redhat/configs/check_um_config.sh | 66 ++++++++++++++++++++++
redhat/configs/common/generic/um/README | 0
.../generic/um/CONFIG_BITFIELD_KUNIT | 1 +
.../custom-overrides/generic/um/CONFIG_BITS_TEST | 1 +
.../generic/um/CONFIG_BLACKHOLE_DEV_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_BLK_DEV_UBD | 1 +
.../custom-overrides/generic/um/CONFIG_CFG80211 | 1 +
.../generic/um/CONFIG_CHECKSUM_KUNIT | 1 +
.../generic/um/CONFIG_CLK_FD_KUNIT_TEST | 1 +
.../generic/um/CONFIG_CLK_FIXED_RATE_KUNIT_TEST | 1 +
.../generic/um/CONFIG_CLK_GATE_KUNIT_TEST | 1 +
.../generic/um/CONFIG_CLK_KUNIT_TEST | 1 +
.../generic/um/CONFIG_CMDLINE_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_CON_CHAN | 1 +
.../generic/um/CONFIG_CON_ZERO_CHAN | 1 +
.../generic/um/CONFIG_CPUMASK_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_DAMON_DBGFS | 1 +
.../generic/um/CONFIG_DAMON_DBGFS_DEPRECATED | 1 +
.../custom-overrides/generic/um/CONFIG_DEBUG_INFO | 1 +
.../um/CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT | 1 +
.../generic/um/CONFIG_DEBUG_INFO_NONE | 1 +
.../generic/um/CONFIG_DEBUG_NOTIFIERS | 1 +
.../generic/um/CONFIG_DEBUG_OBJECTS | 1 +
.../generic/um/CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT | 1 +
.../generic/um/CONFIG_DEBUG_OBJECTS_FREE | 1 +
.../generic/um/CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER | 1 +
.../generic/um/CONFIG_DEBUG_OBJECTS_RCU_HEAD | 1 +
.../generic/um/CONFIG_DEBUG_OBJECTS_TIMERS | 1 +
.../generic/um/CONFIG_DEBUG_OBJECTS_WORK | 1 +
.../custom-overrides/generic/um/CONFIG_DEBUG_PLIST | 1 +
.../custom-overrides/generic/um/CONFIG_DEBUG_SG | 1 +
.../generic/um/CONFIG_DEBUG_STACK_USAGE | 1 +
.../custom-overrides/generic/um/CONFIG_DEBUG_VM | 1 +
.../generic/um/CONFIG_DEBUG_VM_PGFLAGS | 1 +
.../generic/um/CONFIG_DEFAULT_SECURITY_APPARMOR | 1 +
.../generic/um/CONFIG_DM_KUNIT_TEST | 1 +
.../generic/um/CONFIG_DRIVER_PE_KUNIT_TEST | 1 +
.../generic/um/CONFIG_DRM_KUNIT_TEST | 1 +
.../generic/um/CONFIG_DRM_SCHED_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_DRM_VKMS | 1 +
.../custom-overrides/generic/um/CONFIG_DRM_XE | 1 +
.../custom-overrides/generic/um/CONFIG_EXT4_FS | 1 +
.../generic/um/CONFIG_EXT4_KUNIT_TESTS | 1 +
.../custom-overrides/generic/um/CONFIG_FAT_FS | 1 +
.../generic/um/CONFIG_FAT_KUNIT_TEST | 1 +
.../generic/um/CONFIG_FORCE_NR_CPUS | 1 +
.../generic/um/CONFIG_FORTIFY_KUNIT_TEST | 1 +
.../generic/um/CONFIG_FW_CS_DSP_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_GPROF | 1 +
.../generic/um/CONFIG_HASHTABLE_KUNIT_TEST | 1 +
.../generic/um/CONFIG_HASH_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_HID_UCLOGIC | 1 +
.../custom-overrides/generic/um/CONFIG_HOSTFS | 1 +
.../configs/custom-overrides/generic/um/CONFIG_HSR | 1 +
.../custom-overrides/generic/um/CONFIG_HZ_PERIODIC | 1 +
.../configs/custom-overrides/generic/um/CONFIG_IIO | 1 +
.../generic/um/CONFIG_IIO_FORMAT_KUNIT_TEST | 1 +
.../generic/um/CONFIG_IIO_GTS_KUNIT_TEST | 1 +
.../generic/um/CONFIG_IIO_KFIFO_BUF | 1 +
.../generic/um/CONFIG_IIO_TRIGGERED_BUFFER | 1 +
.../generic/um/CONFIG_INPUT_KUNIT_TEST | 1 +
.../generic/um/CONFIG_INT_POW_TEST | 1 +
.../generic/um/CONFIG_IS_SIGNED_TYPE_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_JBD2 | 1 +
.../custom-overrides/generic/um/CONFIG_KASAN | 1 +
.../generic/um/CONFIG_KASAN_GENERIC | 1 +
.../generic/um/CONFIG_KASAN_INLINE | 1 +
.../generic/um/CONFIG_KASAN_KUNIT_TEST | 1 +
.../generic/um/CONFIG_KASAN_OUTLINE | 1 +
.../generic/um/CONFIG_KASAN_VMALLOC | 1 +
.../generic/um/CONFIG_KERNEL_STACK_ORDER | 1 +
.../custom-overrides/generic/um/CONFIG_KUNIT | 1 +
.../generic/um/CONFIG_KUNIT_ALL_TESTS | 1 +
.../generic/um/CONFIG_KUNIT_EXAMPLE_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_KUNIT_TEST | 1 +
.../generic/um/CONFIG_LD_SCRIPT_DYN_RPATH | 1 +
.../generic/um/CONFIG_LINEAR_RANGES_TEST | 1 +
.../generic/um/CONFIG_LIST_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_MCONSOLE | 1 +
.../custom-overrides/generic/um/CONFIG_MCTP | 1 +
.../custom-overrides/generic/um/CONFIG_MCTP_FLOWS | 1 +
.../custom-overrides/generic/um/CONFIG_MCTP_SERIAL | 1 +
.../generic/um/CONFIG_MEMCPY_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_MMAPPER | 1 +
.../generic/um/CONFIG_MPTCP_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_MSDOS_FS | 1 +
.../generic/um/CONFIG_NETDEV_ADDR_LIST_TEST | 1 +
.../generic/um/CONFIG_NET_HANDSHAKE_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_NET_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_NFSD | 1 +
.../custom-overrides/generic/um/CONFIG_NR_CPUS | 1 +
.../custom-overrides/generic/um/CONFIG_NTP_PPS | 1 +
.../custom-overrides/generic/um/CONFIG_NULL_CHAN | 1 +
.../generic/um/CONFIG_OVERFLOW_KUNIT_TEST | 1 +
.../generic/um/CONFIG_PACKING_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_PORT_CHAN | 1 +
.../generic/um/CONFIG_PRIME_NUMBERS | 1 +
.../generic/um/CONFIG_PROC_PAGE_MONITOR | 1 +
.../custom-overrides/generic/um/CONFIG_PTY_CHAN | 1 +
.../generic/um/CONFIG_RATIONAL_KUNIT_TEST | 1 +
.../generic/um/CONFIG_REGMAP_BUILD | 1 +
.../generic/um/CONFIG_REGMAP_KUNIT | 1 +
.../generic/um/CONFIG_RESOURCE_KUNIT_TEST | 1 +
.../generic/um/CONFIG_RPCSEC_GSS_KRB5 | 1 +
.../generic/um/CONFIG_RTC_LIB_KUNIT_TEST | 1 +
.../generic/um/CONFIG_SCSI_LIB_KUNIT_TEST | 1 +
.../generic/um/CONFIG_SCSI_PROTO_TEST | 1 +
.../generic/um/CONFIG_SECURITY_APPARMOR | 1 +
.../generic/um/CONFIG_SECURITY_APPARMOR_DEBUG | 1 +
.../um/CONFIG_SECURITY_APPARMOR_EXPORT_BINARY | 1 +
.../generic/um/CONFIG_SECURITY_APPARMOR_HASH | 1 +
.../um/CONFIG_SECURITY_APPARMOR_HASH_DEFAULT | 1 +
.../um/CONFIG_SECURITY_APPARMOR_INTROSPECT_POLICY | 1 +
.../um/CONFIG_SECURITY_APPARMOR_PARANOID_LOAD | 1 +
.../generic/um/CONFIG_SENSORS_LIS3_SPI | 1 +
.../custom-overrides/generic/um/CONFIG_SERIAL_8250 | 1 +
.../custom-overrides/generic/um/CONFIG_SERIAL_CORE | 1 +
.../generic/um/CONFIG_SIPHASH_KUNIT_TEST | 1 +
.../generic/um/CONFIG_SLUB_KUNIT_TEST | 1 +
.../generic/um/CONFIG_SLUB_RCU_DEBUG | 1 +
.../configs/custom-overrides/generic/um/CONFIG_SND | 1 +
.../generic/um/CONFIG_SND_COMPRESS_OFFLOAD | 1 +
.../generic/um/CONFIG_SND_CORE_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_SND_SOC | 1 +
.../generic/um/CONFIG_SND_SOC_CARD_KUNIT_TEST | 1 +
.../generic/um/CONFIG_SND_SOC_CS35L56_I2C | 1 +
.../generic/um/CONFIG_SND_SOC_CS35L56_TEST | 1 +
.../generic/um/CONFIG_SND_SOC_CS_AMP_LIB_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_SND_SOC_HDA | 1 +
.../generic/um/CONFIG_SND_SOC_OPS_KUNIT_TEST | 1 +
.../generic/um/CONFIG_SND_SOC_RT5640 | 1 +
.../generic/um/CONFIG_SND_SOC_TOPOLOGY_BUILD | 1 +
.../generic/um/CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST | 1 +
.../generic/um/CONFIG_SND_SOC_UTILS_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_SOUND | 1 +
.../configs/custom-overrides/generic/um/CONFIG_SSL | 1 +
.../custom-overrides/generic/um/CONFIG_SSL_CHAN | 1 +
.../generic/um/CONFIG_STACKINIT_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_STATIC_LINK | 1 +
.../generic/um/CONFIG_STDERR_CONSOLE | 1 +
.../generic/um/CONFIG_STRICT_DEVMEM | 1 +
.../generic/um/CONFIG_STRING_HELPERS_KUNIT_TEST | 1 +
.../generic/um/CONFIG_STRING_KUNIT_TEST | 1 +
.../generic/um/CONFIG_SYNTH_EVENTS | 1 +
.../generic/um/CONFIG_SYSCTL_KUNIT_TEST | 1 +
.../generic/um/CONFIG_TEST_IOV_ITER | 1 +
.../generic/um/CONFIG_TEST_LIST_SORT | 1 +
.../custom-overrides/generic/um/CONFIG_TEST_SORT | 1 +
.../custom-overrides/generic/um/CONFIG_TEST_UBSAN | 1 +
.../custom-overrides/generic/um/CONFIG_THERMAL | 1 +
.../generic/um/CONFIG_TICK_CPU_ACCOUNTING | 1 +
.../generic/um/CONFIG_TIME_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_TTY_CHAN | 1 +
.../custom-overrides/generic/um/CONFIG_UBSAN | 1 +
.../generic/um/CONFIG_UBSAN_ALIGNMENT | 1 +
.../custom-overrides/generic/um/CONFIG_UBSAN_BOOL | 1 +
.../generic/um/CONFIG_UBSAN_BOUNDS | 1 +
.../generic/um/CONFIG_UBSAN_DIV_ZERO | 1 +
.../custom-overrides/generic/um/CONFIG_UBSAN_ENUM | 1 +
.../custom-overrides/generic/um/CONFIG_UBSAN_SHIFT | 1 +
.../generic/um/CONFIG_UBSAN_SIGNED_WRAP | 1 +
.../custom-overrides/generic/um/CONFIG_UBSAN_TRAP | 1 +
.../generic/um/CONFIG_UBSAN_UNREACHABLE | 1 +
.../custom-overrides/generic/um/CONFIG_UML_NET | 1 +
.../generic/um/CONFIG_UML_PCI_OVER_VIRTIO | 1 +
.../um/CONFIG_UML_PCI_OVER_VIRTIO_DEVICE_ID | 1 +
.../custom-overrides/generic/um/CONFIG_UML_RANDOM | 1 +
.../custom-overrides/generic/um/CONFIG_UML_RTC | 1 +
.../custom-overrides/generic/um/CONFIG_UML_SOUND | 1 +
.../generic/um/CONFIG_UML_TIME_TRAVEL_SUPPORT | 1 +
.../generic/um/CONFIG_UML_WATCHDOG | 1 +
.../generic/um/CONFIG_USERCOPY_KUNIT_TEST | 1 +
.../custom-overrides/generic/um/CONFIG_VFAT_FS | 1 +
.../custom-overrides/generic/um/CONFIG_VIRTIO_UML | 1 +
.../configs/custom-overrides/generic/um/CONFIG_VT | 1 +
.../custom-overrides/generic/um/CONFIG_WERROR | 1 +
.../custom-overrides/generic/um/CONFIG_XTERM_CHAN | 1 +
redhat/configs/priority.rhel | 3 +
179 files changed, 245 insertions(+), 1 deletion(-)
---
base-commit: 0a88195dfe7ad750d8e0d9815e70515a03b270f1
change-id: 20261026-b4-prep-khorenko-vstor-143636-uml-config-c25bbead3214
Best regards,
--
Konstantin Khorenko,
Virtuozzo Linux Kernel Team
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel
next reply other threads:[~2026-10-26 22:35 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-26 22:34 Konstantin Khorenko [this message]
2026-10-26 22:34 ` [Devel] [PATCH hci-8.1 v2 1/6] configs: add a User Mode Linux config " Konstantin Khorenko
2026-10-26 22:34 ` [Devel] [PATCH hci-8.1 v2 2/6] kasan: let a config leave the KUnit test out under KUNIT_ALL_TESTS Konstantin Khorenko
2026-10-26 22:34 ` [Devel] [PATCH hci-8.1 v2 3/6] configs: build the User Mode Linux KUnit kernel with KASAN Konstantin Khorenko
2026-10-26 22:34 ` [Devel] [PATCH hci-8.1 v2 4/6] configs: build the User Mode Linux KUnit kernel without debug info Konstantin Khorenko
2026-10-26 22:34 ` [Devel] [PATCH hci-8.1 v2 5/6] configs: turn off module-only subsystems in the User Mode Linux config Konstantin Khorenko
2026-10-26 22:34 ` [Devel] [PATCH hci-8.1 v2 6/6] configs: check the User Mode Linux KUnit config at build time Konstantin Khorenko
[not found] ` <0429d3d2-4664-4afa-a088-993344b6140f@virtuozzo.com>
2026-10-27 10:42 ` [Devel] [PATCH hci-8.1 v2 0/6] configs: a User Mode Linux kernel for the KUnit tests Konstantin Khorenko
2026-10-27 10:51 ` Konstantin Khorenko
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=20261026-b4-prep-khorenko-vstor-143636-uml-config-v2-0-76c8329592af@virtuozzo.com \
--to=khorenko@virtuozzo.com \
--cc=devel@openvz.org \
--cc=eva.kurchatova@virtuozzo.com \
/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