add tests against distro kernels - #3700
Open
likewhatevs wants to merge 3 commits into
Open
Conversation
Merged
4 tasks
likewhatevs
force-pushed
the
distro-tests
branch
9 times, most recently
from
July 17, 2026 13:32
5cf9207 to
ef55dac
Compare
likewhatevs
force-pushed
the
distro-tests
branch
from
July 17, 2026 18:08
ef55dac to
75a453e
Compare
likewhatevs
force-pushed
the
distro-tests
branch
3 times, most recently
from
July 17, 2026 23:01
fc8a8c3 to
1aace0a
Compare
likewhatevs
force-pushed
the
distro-tests
branch
5 times, most recently
from
July 30, 2026 03:30
b58879d to
6a2df80
Compare
Add ktstr verifier legs in .github/workflows/ci-new.yml that boot scx_layered across topology presets on tj's sched_ext for-next and prebuilt distro kernels — Fedora and GKE (COS) — checking its BPF verifies, attaches, and dispatches. This exercises the scheduler on shipped distro kernels, whose BTF can be incompatible with scx's BPF; the legs are non-blocking (continue-on-error) so a distro failure reports without gating CI. Each leg verifies all its kernels in one run, so a distro kernel costs no extra toolchain setup or build; ktstr's GKE support is x86_64-only, so only the scx-x64 leg carries gke. Drop scx_layered from cargo veristat; the verifier now checks its BPF on for-next and distro kernels instead. The declaration is gated behind a new optional `ktstr-tests` feature so normal builds are unaffected; scx_layered needs a layer config, so it runs --run-example. Signed-off-by: Pat Somaru <patso@likewhatevs.io>
likewhatevs
force-pushed
the
distro-tests
branch
from
July 30, 2026 03:36
6a2df80 to
1d001e2
Compare
Add ktstr verifier legs that boot scx_lavd across topology presets, checking its BPF verifies, attaches, and dispatches: the scx-x64 leg runs tj's sched_ext for-next and a prebuilt SteamOS kernel, and since SteamOS publishes x86_64 kernels only, the scx-arm64 leg verifies for-next alone. The verifier is non-blocking (continue-on-error) so a distro failure reports without gating CI. Drop scx_lavd from cargo veristat; the verifier now checks its BPF on for-next and a distro kernel instead. The declaration is gated behind the optional `ktstr-tests` feature so normal builds are unaffected; scx_lavd attaches with defaults, so it needs no extra scheduler args. Signed-off-by: Pat Somaru <patso@likewhatevs.io>
Add a ktstr verifier leg that boots scx_cosmos across topology presets on tj's sched_ext for-next and a prebuilt Ubuntu LTS HWE kernel, checking its BPF verifies, attaches, and dispatches. The verifier is non-blocking (continue-on-error) so a distro failure reports without gating CI. Drop scx_cosmos from cargo veristat; the verifier now checks its BPF on for-next and a distro kernel instead. The declaration is gated behind the optional `ktstr-tests` feature so normal builds are unaffected; scx_cosmos attaches with defaults, so it needs no extra scheduler args. Signed-off-by: Pat Somaru <patso@likewhatevs.io>
likewhatevs
force-pushed
the
distro-tests
branch
from
July 30, 2026 03:43
1d001e2 to
d44c2f6
Compare
likewhatevs
marked this pull request as ready for review
July 30, 2026 03:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I've been working on this for a while now and I think I'm starting to be happy with how it works so tagging folks to provide awareness of where schedulers do/do not verify.
This PR adds a non-blocking CI job which runs schedulers against a battery of topologies in VMs rapidly, against both for-next and misc distro kernels I think we care about.
It runs layered against fedora/gke/for-next, cosmos against ubuntu/for-next, and lavd against steamos/for-next.
I'll keep iterating on this slowly but I think this is how we want CI/scheduler guardrails to work. I've had luck reproducing production issues with this framework, and the churn on this PR was me getting (massive) oversubscription to work right (i.e. retaining the ability to break schedulers in the way they break in prod without requiring 1 host per scenario and multiple hours of runtime).
LMK thoughts or if I can help clear anything up about this!
To run the new tests on this PR locally, install the tool which runs these tests
cargo install ktstr --locked, fill in kernels you wish to test in the command ci uses here, and the same thing on ci will be ran locally.