OpenVZ / Virtuozzo kernel development (devel@openvz.org)
 help / color / mirror / Atom feed
From: "Eva Kurchatova (Virtuozzo)" <eva.kurchatova@virtuozzo.com>
To: Konstantin Khorenko <khorenko@virtuozzo.com>
Cc: devel@openvz.org
Subject: Re: [Devel] [PATCH hci-8.1 0/4] configs: a User Mode Linux kernel for the KUnit tests
Date: Mon, 26 Oct 2026 20:52:12 +0200	[thread overview]
Message-ID: <31a643f4-9afd-48b4-a9ee-e98d1a6b9a03@virtuozzo.com> (raw)
In-Reply-To: <20261026-b4-prep-khorenko-vstor-143636-uml-config-v1-0-b7e76e985a6b@virtuozzo.com>


On 10/26/26 20:05, Konstantin Khorenko wrote:
> 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/4: the um variant, with the reason for each option turned off
> - 2/4: KASAN_KUNIT_TEST keeps its prompt under KUNIT_ALL_TESTS, so
>    that the um config can leave it out
> - 3/4: KASAN, without its self-test
> - 4/4: no debug info, which kernel.spec would throw away anyway
>
> Outside this series:
>
> - vzkernel.vzspecs: "kernel.spec: build the User Mode Linux KUnit
>    kernel" builds 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>

The config is faithful. I built kernel-um-rhel.config, and compared it 
with what kunit-uml-config.sh makes from the shipped x86_64 config: the 
same 77 KUnit tests built in, the same vz options, the same sanity 
checks. The only differences are the debug info (4/4) and the KASAN 
self-test (2/4, 3/4). Built with ARCH=um and booted with 
kasan_multi_shot: 182 pass, 0 fail, no kernel report.

Two points that I still believe are unresolved:


1. Please drop 2/4 and keep the KASAN self-test. hci-kunit does not fail 
on its reports: since "hci-kunit: leave the reports of a suite that 
provokes them out of the check" (PR #9241) reports inside the kasan 
suite are expected, and the run is 183 pass, 0 fail with it. The test is 
also the only proof that KASAN catches anything in this kernel. Without 
it, a KASAN that silently stopped working would look like a clean run. 
And 2/4 would be a vz-only change to lib/Kconfig.kasan that mainline 
does not need.

2. The static list of builtin tests will drift. 69 of the override files 
only turn a generic =m test into =y. A KUnit test that a RHEL import 
adds lands in common/generic as =m and stays a module here, which the 
UML kernel never loads, so it silently does not run. process_configs.sh 
does not catch it, =m is a valid value. The script built every KUnit 
test in by itself.

A check in kernel.spec after olddefconfig would cover it: fail when a 
symbol defaulting to KUNIT_ALL_TESTS is =m, except the tests whose 
subsystem is a module (cfg80211, mac80211, iwlwifi, xe, vkms, hid, 
rpcsec_gss_krb5, prp).

Optional: CONFIG_SLUB_RCU_DEBUG=y. It is a KASAN feature that catches 
use after free of RCU-freed slab objects, off here because the generic 
layer sets it off for kernels without KASAN. My config lacked it too, 
though.

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

  parent reply	other threads:[~2026-10-26 18:53 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-26 18:05 Konstantin Khorenko
2026-10-26 18:05 ` [Devel] [PATCH hci-8.1 1/4] configs: add a User Mode Linux config " Konstantin Khorenko
2026-10-26 18:05 ` [Devel] [PATCH hci-8.1 2/4] kasan: let a config leave the KUnit test out under KUNIT_ALL_TESTS Konstantin Khorenko
2026-10-26 18:05 ` [Devel] [PATCH hci-8.1 3/4] configs: build the User Mode Linux KUnit kernel with KASAN Konstantin Khorenko
2026-10-26 18:05 ` [Devel] [PATCH hci-8.1 4/4] configs: build the User Mode Linux KUnit kernel without debug info Konstantin Khorenko
2026-10-26 18:52 ` Eva Kurchatova (Virtuozzo) [this message]
2026-10-26 21:52   ` [Devel] [PATCH hci-8.1 0/4] configs: a User Mode Linux kernel for the KUnit tests Konstantin Khorenko
2026-10-26 22:27     ` Eva Kurchatova (Virtuozzo)
2026-10-26 22:42       ` Konstantin Khorenko
2026-10-26 21:16 ` Eva Kurchatova (Virtuozzo)
2026-10-26 21: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=31a643f4-9afd-48b4-a9ee-e98d1a6b9a03@virtuozzo.com \
    --to=eva.kurchatova@virtuozzo.com \
    --cc=devel@openvz.org \
    --cc=khorenko@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