All Virtuozzo development lists (kernel + QEMU)
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.