Skip to content

Releases: sched-ext/scx

v1.1.2

Choose a tag to compare

@htejun htejun released this 03 Jul 00:48

What's Changed

  • versions: bump versions for 1.1.1 May 2026 release by @rrnewton in #3560
  • scx_lavd: Gate dsq_peek_task_load behind no-fast-lb by @daidavid in #3574
  • scx_lavd: Add BPF Streams support by @etsal in #3573
  • cargo: update crates by @sirlucjan in #3581
  • compat.bpf.h: Gate scx_bpf_dsq_peek kfunc behind kernel version 7.1.0 by @bboymimi in #3580
  • scx_cosmos: Fix lib/pmu.bpf.c path by @sirlucjan in #3583
  • common.bpf.h: probe BPF prolog migrate_disable() from non-sleepable context by @multics69 in #3577
  • scx_cosmos: Bump version to 1.1.2 by @arighi in #3584
  • scx_cake: fix lib paths by @sirlucjan in #3587
  • Update Gentoo Linux installation instructions by @hodgesds in #3590
  • scx_lavd: harden placement for migrate-disabled and throttled tasks by @multics69 in #3578
  • docs: sync OVERVIEW.md with renamed DSQ helpers by @kurtislin in #3599
  • kernel.config: Document CONFIG_SCHED_DEBUG removal in v6.15 by @luoliangovo in #3602
  • scx_cosmos: Server tuning by @arighi in #3607
  • scx_layered: allow idle_confined spillover when system is fully allocated by @hodgesds in #3594
  • scx_layered: tiered NUMA placement for consolidation and balanced cross-node distribution by @hodgesds in #3592
  • scx_flow: cpufreq performance hint for latency-lane dispatches by @galpt in #3608
  • scx_lavd: fix runnable-task stall from cgroup-bw period_budget poisoning by @multics69 in #3613
  • lib/cgroup_bw: fix cgroup under-throttling in deep hierarchies by @multics69 in #3614
  • scx_cosmos: Change default time slice to 1ms by @arighi in #3616
  • scxtop: speed up trace compilation and stop burning a CPU on shutdown by @hodgesds in #3620
  • chore: fix typos and update codespell rules by @oxyzenQ in #3623
  • Remove scxtest BPF unit testing infrastructure by @hodgesds in #3625
  • scx_cosmos: Introduce sleeper virtual lag by @arighi in #3621
  • scx_lavd: Per-CPU DSQ queued-load tracking by @bboymimi in #3610
  • scx_cosmos: Skip CPU-less NUMA nodes when creating per-node DSQ by @nvax-r in #3611
  • scx_utils: Diagnose malformed scx kfuncs at runtime, not build time by @arighi in #3628
  • Revert "scx_cosmos: Introduce sleeper virtual lag" by @arighi in #3630
  • rust/scx_utils: Add compatibility logic for BTF enum parsing by @etsal in #3629
  • lib/cgroup_bw: fix orphan task from cbw_put_aside() vs LLC-free race by @multics69 in #3615
  • [scx_layered] Add opt-in peak-hold shrink resistance by @sravi-in in #3632
  • scx_beerland: Sleep virtual-lag and per-CPU load balancing by @arighi in #3631
  • scx_cosmos: Avoid verifier failure when skipping empty nodes by @arighi in #3636
  • lib/atq: Fix error paths, size accounting, insert races by @etsal in #3638
  • scx_lavd: avoid a stray CPU pick in pick_idle_cpu() error paths by @multics69 in #3637
  • docs: fix stale scheduler references in OVERVIEW.md by @kurtislin in #3640
  • docs: update build and developer docs to match current tree by @kurtislin in #3641
  • lib/cgroup_bw: read ->atq with READ_ONCE and treat -EALREADY as benign by @multics69 in #3639
  • scx_cosmos: Bump up version by @arighi in #3645
  • scx_flow: code cleanup & improvements by @galpt in #3617
  • scx_pandemoniumv5.12.0 by @wllclngn in #3622
  • scx_cosmos: Fix GPU-aware scheduling by @arighi in #3646
  • scx_cosmos: Handle offline CPUs when reading per-CPU stats by @arighi in #3647
  • scx_cosmos: Bump version to 1.1.4 by @arighi in #3649
  • scx_tickless: Start timer from pinned loader thread by @arighi in #3650
  • flow 3.0.4: minor improvements by @galpt in #3651
  • scx_pandemoniumv5.13.0: by @wllclngn in #3652
  • Revert "PANDEMONIUMv5.13.0:" by @sirlucjan in #3654
  • scx_layered: fix compute_target_llcs for asymmetric topologies by @Abhinayckrs in #3597
  • scx_mitosis: Fixes for LLC awareness by @kkdwvd in #3648
  • scx_characterize by @kkdwvd in #3655
  • scx_mitosis: Move vtime update near clamp check by @kkdwvd in #3656
  • scx_lavd: dump pending direct-dispatch information in lavd_dump_task by @multics69 in #3653
  • scx_lavd: Bound task_clock passed by exec_delta by @daidavid in #3657
  • scx_lavd: make --no-use-em reach the userspace CPU-order builder by @kurtislin in #3644
  • scx_utils: Move perf event code to perf crate by @arighi in #3663
  • scx_mitosis: drop bpf managed mode by @dforsyth in #3658
  • scx_pandemoniumv5.14.0: by @wllclngn in #3659
  • cargo: Downgrade sysinfo to 0.38 by @arighi in #3664
  • scx_flow 3.1.0 by @galpt in #3661
  • scx-forge: LLM-driven closed-loop optimizer for sched_ext schedulers by @arighi in #3666
  • scx_mitosis: add ktstr cell-isolation smoke test by @likewhatevs in #3669
  • common.bpf.h: Make scx_bpf_cpu_rq() weak by @arighi in #3672
  • scx_forge_agent: Generalize tracing events and switch to perf by @arighi in #3671
  • mitosis: rescue cell 0 when child cpusets cover every CPU by @likewhatevs in #3605
  • lib/sdt_alloc: carve pool elements under alloc_lock to prevent double… by @multics69 in #3679

New Contributors

Full Changelog: v1.1.1...v1.1.2

v1.1.1

Choose a tag to compare

@rrnewton rrnewton released this 14 May 19:33
v1.1.1
0eedd05

What's Changed

  • versions: bump versions for v1.1.0 release by @htejun in #3399
  • Normalize and update dependency versions by @htejun in #3401
  • Sync include files with kernel sched_ext/for-7.1 by @htejun in #3402
  • Cake 1.0.4 by @RitzDaCat in #3400
  • scx_cake: add to integration-tests by @sirlucjan in #3331
  • scx-cake: revert unneeded changes by @sirlucjan in #3406
  • scx_cosmos: Deprecate deferred CPU wakeups and increase default time slice by @arighi in #3403
  • scx_rustland_core: Fold NUMA-local idle CPU selection into pick_idle_cpu() by @EricccTaiwan in #3381
  • scripts: fix bpftrace_stress_wrapper.sh shebang by @MVermue in #3404
  • scx_cosmos: Aggressively migrate tasks to the primary domain by @arighi in #3408
  • scx.service: Deprecate deferred CPU wakeup for scx_cosmos by @sirlucjan in #3407
  • Update Cake to Version 1.1.0 & Fix Incorrect Initial 1.0.4 Commit by @RitzDaCat in #3405
  • scxtest: fix undeclared reallocarray() with old glibc by @danieljordan10 in #3390
  • docs: Update gentoo instructions for 2026 by @vimproved in #3410
  • scx_lavd: Remove duplicate reset_task_flag declaration by @vamoosebbf in #3414
  • scx_cosmos: PMU-based scheduling improvements by @arighi in #3415
  • scx_mitosis: fix vtime staleness in mitosis_stopping by @dschatzberg in #3417
  • scx_cosmos: Track per-CPU utilization instead of global CPU utilization by @arighi in #3419
  • Update README by @EricccTaiwan in #3422
  • scxtop: Add DSQ latency, LLC locality, runqueue depth, and fairness by @hodgesds in #3423
  • scxtop: Fix perf event handling for tracepoints and improve profiling by @hodgesds in #3424
  • scx_lavd: fix typo in LAVD scheduler documentation by @1343503048 in #3420
  • ci: fix ci by @likewhatevs in #3429
  • Disable veristat for scxcash and scxtop by @likewhatevs in #3431
  • Fix cpumask tests failing on machines with fewer CPUs by @likewhatevs in #3430
  • ci: use vng-action vmlinux.h to fix BTF mismatch by @likewhatevs in #3432
  • scx_lavd: Restart scheduler when initially offline CPU comes online. by @multics69 in #3434
  • ci: reduce pipeline wall time from ~52m to ~5m on cache hit by @likewhatevs in #3436
  • Fix p2dq vtime stall and harden CI by @likewhatevs in #3438
  • scx_pandemonium: update to v5.5.0 by @wllclngn in #3427
  • Cake 1.1.0 Various Bug Fixes by @RitzDaCat in #3433
  • scx_cosmos: Misc improvements by @arighi in #3425
  • scx_cosmos: update flags by @sirlucjan in #3439
  • scx_cosmos: perf scheduling improvements by @arighi in #3440
  • scx-service: add missing quote by @sirlucjan in #3441
  • scxtop: use variable-size ringbuf entries to eliminate dropped events by @hodgesds in #3442
  • scx_lavd: Clock accuracy and utilization tracking improvements by @multics69 in #3426
  • scx_lavd: fix load confinement in a few domains by @bboymimi in #3444
  • scx_cosmos: Add --no-early-clear by @shelterx in #3443
  • scx_layered: Remove duplicate taskc null check in match_one by @cuiweixie in #3449
  • scx_layered: Fix qrt_layer_id init to use MAX_LAYERS instead of MAX_LLCS by @cuiweixie in #3448
  • scx: Support new kernel features introduced in v7.1 by @arighi in #3451
  • scx_cosmos: Use high-precision time by @arighi in #3450
  • scx_lavd: Add missing return after scx_bpf_error() in lavd_cgroup_move() by @EricccTaiwan in #3447
  • ci: fix ci for for-next by @likewhatevs in #3452
  • sched: add scx_timely scheduler by @galpt in #3453
  • scx_utils: Handle ops.sub_cgroup_id in older kernels by @arighi in #3455
  • lib/cgroup_bw: Fix task loss under cgroup CPU bandwidth throttling by @multics69 in #3454
  • Fix build warnings by @frelon in #3456
  • scxtop: replace is_multiple_of() with % operator for stable Rust compat by @kobataiwan in #3457
  • mitosis: recompute LLC counts in apply_cell_config by @likewhatevs in #3461
  • mitosis: use SCX_DSQ_LOCAL_ON in try_pick_idle_cpu by @likewhatevs in #3460
  • mitosis: guard against vtime underflow in stopping by @likewhatevs in #3459
  • scx_bpfland: Aggressively avoid SMT contention by @arighi in #3470
  • lib/cgroup_bw, scx_lavd: Improve observability for cgroup CPU bandwidth throttling by @multics69 in #3475
  • scx_flash: Re-modernize scheduler by @arighi in #3478
  • scx_timely: drop from tree by @sirlucjan in #3473
  • scx_mitosis: revert dispatch peek to locked iterator approach by @tommy-u in #3489
  • scx_bpfland: add TIMELY v1 mode behind --timely flag by @galpt in #3476
  • mitosis: fix overflow panic in demand metrics during cell reconfig by @likewhatevs in #3488
  • lib/cgroup_bw, lib/topology: Fix permanent task stall in cgroups with inherited quota, and topology fanout fixes by @multics69 in #3492
  • scx_flash: Re-introduce SMT contention avoidance by @arighi in #3494
  • scxtop: refactor scheduler view with rsched-style aggregations by @hodgesds in #3497
  • scx_flash: Fix tickless mode by @arighi in #3496
  • scx_mitosis: Clean up Cell cpumasks handling by @kkdwvd in #3491
  • ci: split veristat into stable and dev jobs by @likewhatevs in #3498
  • scx_layered: Force minimum of 1 CPU as upper bound when using cpus_range_frac by @etsal in #3500
  • rust/libarena: Exclude non-CPU NUMA nodes from arena topology by @etsal in #3501
  • scxtop: pass wakeup timestamp in BPF event and add v2 dsq insert probes by @hodgesds in #3503
  • common.bpf.h, scheds: Fix migration-disabled task dispatch bug on non-PREEMPT_RCU kernels by @multics69 in #3502
  • lib/cgroup_bw: Fix task stall due to async cgroup destruction by @multics69 in #3505
  • arena/p2dq: address warnings by @likewhatevs in #3507
  • mitosis: skip reject-multicpu-pinning during cpuset transitions by @likewhatevs in #3462
  • scx_lavd: Latency-Aware Task Placement by @daidavid in #3481
  • Mitosis: dynamic affinity CPU selection for pinned tasks (based on PR #3206) by @tommy-u in #3393
  • lib/cgroup_bw: Fix off-by-one in cbw_dump_cgroup indent level by @multics69 in #3517
  • scx_flash: Avoid penalizing per-CPU kthreads by @arighi in #3518
  • scheds: scx_chaos: match p2dq thermal autoload gating by @cloehle in #3522
  • scheds/experimental: add scx_flow scheduler by @galpt in #3493
  • scheds: move wd40 and rlfifo to experimental directory by @sirlucjan in #3523
  • scheds: update README.md by @sirlucjan in #3524
  • Cargo: drop scx_wd40 by @sirlucjan in #3527
  • lib/cgroup_bw: Async throttle with adaptive accounting timer by @multics69 in #3521
  • Cargo: update libbpf to latest versions by @sirlucjan in #3526
  • scheds: scx_p2dq: fix LLC util drift and refresh PELT on runnable by @cloehle in #3520
  • slice shrinking: reduce runnable time for CPU-pinned tasks by @tommy-u in #3529
  • scx_pandemonium: update to v5.6.0 by @wllclngn in #3516
  • scheds/experimental: add scx_flow v2.2.0 scheduler by @galpt in #3525
  • ci: fix apt install tim...
Read more

v1.1.0

Choose a tag to compare

@htejun htejun released this 07 Mar 05:42

What's Changed

  • versions: bump versions for 1.0.20 release by @htejun in #3299
  • Cargo: update libbpf to latest versions by @sirlucjan in #3301
  • ci: enable Pages auto-configuration in configure-pages action by @rrnewton in #3305
  • scx_lavd: Support partial mode with --partial by @mfleming in #3306
  • scx: Use software ctzll for BPF when clang < 19 by @arighi in #3304
  • scheds: Add scx_cake, an experimental gaming-oriented scheduler by @RitzDaCat in #3202
  • separate C schedulers into their own repository by @etsal in #3195
  • scx_layered: Remove unused fields and dead code by @htejun in #3311
  • scx_lavd: Standardize naming conventions for time, utilization, and load metrics by @multics69 in #3294
  • chore(deps): update stable/6_12 kernel by @scx-ci-bot in #3313
  • chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #3314
  • scheds: remove leftover scx_sdt by @etsal in #3315
  • scx_mitosis: Add Optional LLC Awareness and Work Stealing by @tommy-u in #3146
  • chore(deps): update stable/6_12 kernel by @scx-ci-bot in #3317
  • Improve reading and fix typo by @EricccTaiwan in #3318
  • scx_layered: topology-aware cpumask grid display for stats by @htejun in #3321
  • scx_layered: compact monitor stats and improve visual structure by @htejun in #3325
  • Cargo: limit the number of compiled workspace elements by @sirlucjan in #3324
  • lib/cgroup_bw: Hierarchical budget distribution and observability improvements by @multics69 in #3319
  • scx_cosmos: Add CPU capacity awareness by @arighi in #3320
  • README: Remove C scheduler references by @EricccTaiwan in #3328
  • chore(deps): update stable/6_12 kernel by @scx-ci-bot in #3333
  • chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #3334
  • scx_mitosis: remove split_vtime_updates flag by @tommy-u in #3323
  • [layered]: fix UsedGpuPid + IsGroupLeader matchers by @xerothermic in #3336
  • Cargo.toml: update cargo profiles by @sirlucjan in #3329
  • scx_layered: NUMA-aware prep - per-node tracking infrastructure by @htejun in #3337
  • README: Add section for other sched_ext schedulers by @htejun in #3339
  • Made netdev-irq-balance works by @xerothermic in #3338
  • scx_cosmos: use PMU library for perf event handling by @etsal in #3220
  • scx_cake: Update scx_cargo and scx_utils to current versions by @sirlucjan in #3344
  • scx_mitosis: add RAII guard framework and replace manual cleanup by @dschatzberg in #3341
  • scx_cosmos: Drop ops.cpu_release() by @arighi in #3343
  • scx: Include task local data library by @ameryhung in #3346
  • chore(deps): update stable/6_12 kernel by @scx-ci-bot in #3347
  • chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #3348
  • scx_layered: replace manual resource cleanup with RAII guards by @dschatzberg in #3350
  • scx_layered: Fix DSQ_ID_LAYER_MASK definition by @htejun in #3353
  • scx_layered: Node-aware growth algorithms and per-node StickyDynamic LLC trading by @htejun in #3354
  • flash: Drop ops.cpu_release() by @EricccTaiwan in #3345
  • scx_layered: Fix dead_code warning by @EricccTaiwan in #3355
  • scx_layered: Fix lo-fallback bypass and confined layer CPU accounting by @htejun in #3356
  • scx_layered: Unified per-node CPU allocation by @htejun in #3357
  • scx_rustland_core: Use bpf_cpumask_weight to count online CPUs by @EricccTaiwan in #3360
  • scx_rustland_core: Drop redundant RCU lock by @EricccTaiwan in #3362
  • Kconfig: Sync with upstream by @EricccTaiwan in #3363
  • Bump libbpf-rs to v0.26.1 and use reference_obj skeleton generation by @likewhatevs in #3342
  • chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #3368
  • scx_layered: Per-node LLC drain and fallback dispatch by @htejun in #3366
  • lib/sdt_alloc: Fix erroneous condition that prevents zero'ing by @etsal in #3364
  • scxtop: Ignore missing threads during initialization by @EricccTaiwan in #3369
  • chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #3370
  • scx_cosmos: Add tick hook for preemption enforcement by @devnexen in #3365
  • scx_lavd: Restrict slice boosting based on CPU utilization. by @multics69 in #3367
  • scx_raw_pmu / scxtop: update procfs from 0.15.1 to 0.18.0 by @blezsan in #3375
  • scx_rustland_core: Use bpf_core_read_str to read task comm by @EricccTaiwan in #3376
  • scx_rustland_core: Fix borrow error and clippy warnings by @EricccTaiwan in #3374
  • scx_cosmos: Introduce "sticky" and dynamic PMU thresholds by @arighi in #3349
  • scx_layered: error on NumaNode matcher + NodeSpread* growth algorithm by @xerothermic in #3371
  • lib: cgroup ATQ lifecycle cleanup + scx_alloc() migration for rbtree/ATQ by @multics69 in #3361
  • scx_lavd: Revise load-balancing conditions by @bboymimi in #3300
  • scx_layered: Add cross-NUMA migration gating by @htejun in #3378
  • Change BUFSIZE to use queued_task_ctx type by @michaelr0 in #3380
  • scx_mitosis: Initial support for non-cpuset cell assignment by @dschatzberg in #3270
  • chore(deps): update stable/6_12 kernel by @scx-ci-bot in #3385
  • chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #3386
  • scx_lavd: guard division-by-zero in sys_stat collect/calc paths by @rrnewton in #3379
  • scx_p2dq: Fix BPF verifier errors for cpus_ptr access on peeked tasks by @hodgesds in #3383
  • Cargo.lock: Update dependencies to latest versions by @EricccTaiwan in #3389
  • sched: add scx_pandemonium scheduler by @wllclngn in #3382
  • scx_mitosis: fix nondeterministic contested CPU distribution by @dschatzberg in #3391
  • cgroup_bw, scx_lavd: implement ops.dump_task() by @multics69 in #3387
  • common.bpf.h, scx_lavd: use task clock for runtime accounting by @multics69 in #3388
  • chore(deps): update stable/6_12 kernel by @scx-ci-bot in #3392
  • scx_cosmos: GPU auto-affinitization by @arighi in #3377
  • README.md: drop PANDEMONIUM (has been merged into tree) by @sirlucjan in #3394
  • scx_pandemonium: add to integration-tests by @sirlucjan in #3395
  • scx_layered: Bump MAX_NUMA_NODES to 32 and consolidate node stats by @htejun in #3397
  • xtask: Add --min-version flag to bump-versions by @htejun in #3398

New Contributors

Full Changelog: v1.0.20...v1.1.0

v1.0.20

Choose a tag to compare

@htejun htejun released this 07 Feb 08:25

What's Changed

Read more

v1.0.19

Choose a tag to compare

@htejun htejun released this 03 Dec 00:13

What's Changed

New Contributors

Full Changelog: v1.0.18...v1.0.19

v1.0.18

Choose a tag to compare

@JakeHillion JakeHillion released this 11 Nov 20:13
v1.0.18

What's Changed

Read more

v1.0.17

Choose a tag to compare

@JakeHillion JakeHillion released this 07 Oct 20:10
v1.0.17
8d99451

What's Changed

Read more

v1.0.16

Choose a tag to compare

@JakeHillion JakeHillion released this 05 Sep 23:40
v1.0.16

What's Changed

Read more

v1.0.15

Choose a tag to compare

@JakeHillion JakeHillion released this 13 Aug 17:40
v1.0.15
6b2cbe3

What's Changed

Read more

v1.0.14

Choose a tag to compare

@JakeHillion JakeHillion released this 08 Jul 16:51
v1.0.14

What's Changed

Read more