OpenVZ / Virtuozzo kernel development (devel@openvz.org)
 help / color / mirror / Atom feed
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

             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