Skip to content

scx_flow: update to 5.2.22 - #3978

Merged
sirlucjan merged 2 commits into
sched-ext:mainfrom
galpt:scx_flow_5.2.22
Nov 12, 2026
Merged

sirlucjan merged 2 commits into
sched-ext:mainfrom
galpt:scx_flow_5.2.22

Conversation

@galpt

@galpt galpt commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

What's new from the last PR

  1. Switched the queues from EDQ to rbtree.
  2. Further simplified the EDF logic.
  3. Integrated HRRN into scx_flow.
  4. Improved cache logic to support cores with different cache sizes.

More details

  1. EDQ was fine, but rbtree is enough for the bare bones and is more flexible for testing ideas that are not related to deadlines.
  2. The previous PR was inspired by the RED paper, which works fine but makes it hard to experiment with new ideas, so in this PR the logic is simplified to EDF plus virtual deadline.
  3. Since we have simplified the EDF logic, this version tries to combine HRRN with the EDF logic. HRRN only kicks in when all the requirements needed by HRRN are met. If they are not met, the scheduler simply uses the existing EDF logic until it has gathered enough information. The highest priority task detected by HRRN gets the earliest deadline.
  4. Some CPUs, like the AMD X3D series, have different cache sizes (e.g., L1d L#0 (48KB) + L1i L#0 (32KB)). scx_flow now detects these sizes with lstopo logic and prefers cores with larger cache first. This saves users from manually pinning tasks to the larger-cache cores.

Changes

  • 9e22783 scx_flow: update to 5.2.22
  • bce59ed scx_flow: fix workspace test build and scope veristat kernels for 5.2.22

(9dc7ccf66f59a24836bbef014d49efddc4ee778b) over upstream main e7ec880
(e7ec880) via rsync -aHAX --delete --keep-dirlinks
from scx_flow_new/scx.

LICENSE re-asserted as symlink to ../../../LICENSE, version 5.2.22 kept.
libbpf-rs =0.27.2 plus scx_* 1.1.4 path deps match workspace
(rust/scx_utils 1.1.4 plus rust/scx_arena 1.1.4); standalone CI pin e7b3a21
kept per S4 gate, drift note recorded. Cargo.lock carries no source copy
because scx_flow_new ships no lockfile; fork Cargo.lock updated via
cargo update -p scx_flow only with git diff scoped to the scx_flow entry.

Per CPU deadline ordered red black trees stay with no EDQ and no hybrid
stage plus equal deadlines keep insertion order plus a single kick per run.

Response due time runs behind a strict readiness gate at the shared
enqueue site with the 5.2.20 charge fallback bit identical when the gate
stays off. No weight table change plus no gain change plus no threshold
change plus no tuning of any kind.

Verification: lib symlink plus LICENSE symlink plus maps 3 plus Cargo
5.2.22 plus cargo metadata --frozen clean plus cargo update -p scx_flow
diff scoped plus fmt plus clippy plus build plus test plus veristat PASS.

Signed-off-by: Galih Tama <galpt@v.recipes>
Test helper mk_node built scx_utils Node as a struct literal, which
breaks under workspace feature unification when scx_cosmos enables
scx_utils/gpu-topology (adds Node.gpus): cargo test --workspace failed
with E0063 missing field gpus. Build mk_node on a live Topology::new
node value instead and overwrite every observed field, so the helper
compiles with and without gpu-topology. Test-only change, no scheduler
behavior change; 61 tests pass.

Scope veristat for scx_flow to kernels whose verifier accepts its BPF:
disable on 6.16 and 6.18 via the existing veristat-disable mechanism,
matching the standing 6.13 entry for scx_flow (flow_enqueue, a void
global struct_ops function, is rejected with 'doesn't return scalar'
on those kernels while rolling-stable accepts it).

Signed-off-by: Galih Tama <galpt@v.recipes>
@galpt
galpt marked this pull request as ready for review November 12, 2026 13:57
@sirlucjan
sirlucjan added this pull request to the merge queue Nov 12, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Nov 12, 2026
@sirlucjan
sirlucjan added this pull request to the merge queue Nov 12, 2026
Merged via the queue into sched-ext:main with commit 2da8ddc Nov 12, 2026
12 of 14 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