Skip to content

run-vmtest: fail selftest runs that produce kernel splats - #229

Merged
theihor merged 1 commit into
libbpf:mainfrom
mykyta5:main
Aug 12, 2026
Merged

run-vmtest: fail selftest runs that produce kernel splats#229
theihor merged 1 commit into
libbpf:mainfrom
mykyta5:main

Conversation

@mykyta5

@mykyta5 mykyta5 commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

A non-fatal splat (WARN, KASAN report, lockdep, hung task) leaves the VM running, so the selftest binary still exits 0 and CI goes green on a kernel that just hit a real bug. We have no signal for these today.

Scan dmesg after the run and add a kernel_splats row to the existing exitstatus aggregator. A scan that cannot run fails the row rather than reporting clean, otherwise a typo in a pattern file would quietly turn the check off. splat-allowlist-file and skip-kernel-splat-check provide an escape hatch for known-benign matches.

@mykyta5
mykyta5 requested a review from theihor August 10, 2026 12:18

@theihor theihor left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I created a vmtest PR for testing, and apparently there is pre-existing arm64 kasan splat: https://github.com/kernel-patches/vmtest/actions/runs/31545541634/job/93958798153?pr=508

That's good: the splat detection is working. But it also means we can't merge this before that splat is fixed. Do you want to look into it?

Alternatively, we can land this before the upstream fixes as non-blocking by reporting a warning or printing to summary. It will be mostly ignored then though.

Comment thread run-vmtest/check-kernel-splats.sh Outdated
Comment thread .github/workflows/kernel-test.yml
A non-fatal splat (WARN, KASAN report, lockdep, hung task) leaves the VM
running, so the selftest binary still exits 0 and CI goes green on a
kernel that just hit a real bug. We have no signal for these today.

Scan dmesg after the run and add a kernel_splats row to the existing
exitstatus aggregator. What counts as a splat, and what is benign, is
policy that differs per arch and per kernel, so it lives in
$VMTEST_CONFIGS rather than in this action.

A scan that cannot run fails the row rather than reporting clean: with
no denylist there is no check, and a silently disabled detector is worse
than none.

Assisted-by: Claude:claude-opus-4-7
Signed-off-by: Mykyta Yatsenko <yatsenko@meta.com>
theihor added a commit to kernel-patches/vmtest that referenced this pull request Aug 12, 2026
@theihor
theihor self-requested a review August 12, 2026 23:44
@theihor
theihor merged commit 18749f6 into libbpf:main Aug 12, 2026
32 of 34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants