Skip to content

Fix verifier failures in scx_flow and scx_pandemonium with sched_ext/for-next - #3982

Open
arighi wants to merge 2 commits into
mainfrom
fix-verifier-loops
Open

arighi wants to merge 2 commits into
mainfrom
fix-verifier-loops

Conversation

@arighi

@arighi arighi commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

BPF verifier on sched_ext/for-next rejects scx_flow run-history scan for an out-of-bounds access and scx_pandemonium spill scan for excessive branch complexity.

Unroll both scans and keep pandemonium's expanded spill helper out-of-line so callers share one copy. Both scans retain their existing behavior.

The development-kernel verifier rejects flow_stopping and flow_tick
because the run-history scan's pointer range reaches past the task
storage value after loop states are merged.

Unroll the eight-entry scan so each history read has a constant offset.

Signed-off-by: Andrea Righi <arighi@nvidia.com>
The development-kernel verifier rejects pandemonium_select_cpu and
pandemonium_enqueue after exploring more than 8192 branches through
the spill scan.

Unroll the fixed 32-entry scan to avoid bounded-loop path explosion.
Keep find_spill_seat() out-of-line so its callers share one copy of
the expanded scan.

Signed-off-by: Andrea Righi <arighi@nvidia.com>
@arighi
arighi requested a review from sirlucjan November 13, 2026 06:49
@arighi

arighi commented Nov 13, 2026

Copy link
Copy Markdown
Contributor Author

@galpt @wllclngn

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.

1 participant