Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,11 @@ jobs:
- name: scx__stable__6_16
url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
tag: linux-6.16.y
veristat-disable: scx_lavd
veristat-disable: scx_lavd scx_flow
- name: scx__stable__6_18
url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
tag: linux-6.18.y
veristat-disable: scx_flow
runs-on: ubuntu-24.04
timeout-minutes: 35
steps:
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion scheds/experimental/scx_flow/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "scx_flow"
version = "5.2.14"
version = "5.2.22"
authors = ["Galih Tama <galpt@v.recipes>"]
edition = "2024"
rust-version = "1.91"
Expand Down
14 changes: 8 additions & 6 deletions scheds/experimental/scx_flow/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@
scx_flow orders tasks by deadline. Each per-CPU queue holds tasks in
deadline order with equal deadlines in insertion order, plus one fallback
queue in FIFO order. Running tasks pay for burnt time. Virtual deadline adds
a burst scaled nice step to the floored time. Overload admits with live plus
tolerance plus bound plus room plus cap and evicts at most one ready task
with the latest deadline in the lowest band through a bounded scan of at most
eight. Rejects stay in fallback in FIFO order. Stopping plus tick reclaim at
most one saved burst with idle only kick. Dispatch drains local first,
then same LLC, then same node, then remote. Wakeups wake idle only with preempt on an earlier deadline. Slice is fixed at 1ms, and hotplug needs restart.
a burst scaled slice step to the floored time. Steady tasks price by the kept
max run length with short tasks keeping the burst path with a floor slice and long tasks in one slice quanta.
Unknown tasks keep the burst path. An insert miss keeps the newcomer in
fallback in FIFO order with no evict. Stopping plus tick keep the burst
and run state with guarded preempt and no reclaim. Dispatch drains local first,
then same LLC, then same node, then remote. Wakeups wake idle targets, plus a
guarded preempt on a much earlier Virtual deadline. Queues hold without bound.
Slice is fixed at 1ms, and hotplug needs restart.

## Typical Use Cases

Expand Down
1 change: 0 additions & 1 deletion scheds/experimental/scx_flow/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ fn main() {
.add_source("src/bpf/lib/arena.bpf.c")
.add_source("src/bpf/lib/common.bpf.c")
.add_source("src/bpf/lib/atq.bpf.c")
.add_source("src/bpf/lib/edq.bpf.c")
.add_source("src/bpf/lib/bitmap.bpf.c")
.add_source("src/bpf/lib/cpumask.bpf.c")
.add_source("src/bpf/lib/minheap.bpf.c")
Expand Down
Loading
Loading