Releases: sched-ext/scx
Releases · sched-ext/scx
Release list
v1.1.2
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
- @kurtislin made their first contribution in #3599
- @luoliangovo made their first contribution in #3602
- @nvax-r made their first contribution in #3611
- @sravi-in made their first contribution in #3632
Full Changelog: v1.1.1...v1.1.2
v1.1.1
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...
v1.1.0
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
- @mfleming made their first contribution in #3306
- @RitzDaCat made their first contribution in #3202
- @ameryhung made their first contribution in #3346
- @blezsan made their first contribution in #3375
- @michaelr0 made their first contribution in #3380
- @wllclngn made their first contribution in #3382
Full Changelog: v1.0.20...v1.1.0
v1.0.20
What's Changed
- scx_p2dq: Add fork-time load balancing across LLCs by @hodgesds in #3112
- versions: bump versions for 1.0.19 release by @htejun in #3124
- layered: fix GPU matching when member_expire_ms=0 by @xerothermic in #3126
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3128
- scx_layered: Bump version for a hotfix release by @htejun in #3131
- scx_layered: prevent timestamp 0 for GPU kprobe map by @etsal in #3120
- scx_cargo: scx_utils::BpfBuilder -> scx_cargo::BpfBuilder by @Gliczy in #3127
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3133
- scx_raw_pmu: remove flaky tests by @etsal in #3135
- scx_lavd: Account for time stolen from tasks from steal/irq_time by @daidavid in #3098
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3136
- lib: move ravg and add arena copy methods by @etsal in #3134
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #3137
- build: Reduce the binary size for the release-tiny profile by @multics69 in #3138
- scx_p2dq: Add energy-aware scheduling with thermal and frequency awareness by @hodgesds in #3115
- scx_p2dq: Fix atq verification by @hodgesds in #3140
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #3141
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3144
- nix: bump virtme-ng 1.36->1.40 by @JakeHillion in #3147
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #3148
- nix: virtme-ng: add missing mcp dep by @JakeHillion in #3149
- Cargo.lock: update dependencies to latest versions by @sirlucjan in #3150
- Add perfmon based scheduling to scx_cosmos by @balbirs-nv in #3151
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #3153
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #3154
- scx_p2dq: Fix ARM build by @EricccTaiwan in #3155
- Use scx_bpf_cpu_curr() instead of deprecated scx_bpf_cpu_rq() by @cloehle in #2734
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #3152
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #3157
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3156
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3158
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #3159
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3161
- scx_bpfland: Re-introduce --slice-min-us by @arighi in #3162
- Cargo: update dependencies to latest versions by @sirlucjan in #3163
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #3164
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #3165
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3167
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #3166
- Downgrade crate dependencies to more stable / portable versions by @arighi in #3169
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3171
- mitosis: make independent of cpu cg controller presence by @likewhatevs in #3145
- scx_layered: fix kprobe race by @etsal in #3132
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3174
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #3175
- scx_lavd: complete refactor into separate compiliation units by @etsal in #3173
- chore(spelling): fix typos across schedulers, libs, and tools by @oxyzenQ in #3172
- scx_cosmos: Bump up version to 1.0.6 by @arighi in #3176
- scx_cargo: Bump up version to 1.0.26 for scx_cosmos by @arighi in #3179
- lib: assorted bugfixes by @etsal in #3160
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #3183
- scx_lavd: Fix stale migration roles in load balancer, remove redundant condition, and optimize the stealing loop by @bboymimi in #3109
- utils: Graceful error handling for EnergyModel. by @multics69 in #3184
- chore: Add .codespellrc for future-proof typo checking by @oxyzenQ in #3181
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3185
- scx_beerland: Reduce scheduler overhead by @arighi in #3186
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3187
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3191
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #3192
- scx_lavd: reduce stack spilling in scx_dispatch by @etsal in #3193
- lib/sdt_task: add error messages on alloc path by @etsal in #3194
- arena: initial ASAN support and new allocators by @etsal in #3188
- README: update upstream status and add LPC 2024/2025 links by @etsal in #3197
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3199
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3201
- asan: buddy allocator bugfixes by @etsal in #3200
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #3204
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #3205
- asan: remove hardcoded arena size and shadow offset by @etsal in #3203
- scx_lavd: remove unused cpumask by @etsal in #3208
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3209
- scx_lavd: Change nr_queued_on_cpu() to queued_on_cpu(). by @multics69 in #3214
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #3215
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #3216
- asan: remove scx prefix and header dependencies by @etsal in #3207
- asan: add option for turning off address sanitization in allocators by @etsal in #3221
- scx_lavd: remove duplicate mask declarations by @etsal in #3219
- scx_lavd: Misc code clean-up and hardening. by @multics69 in #3217
- [scx_stat] Support timeout in stats client by @mkutsevol in #3222
- scx_lavd: Improve latency criticality propagation among tasks. by @multics69 in #3218
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3224
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #3223
- services: re-introduce basic systemd support (make systemd service great again) by @sirlucjan in #3226
- scx_lavd: Improve scaled load calculation and core compaction. by @multics69 in #3225
- scx_p2dq: Misc cleanup by @hodgesds in #3227
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3228
- scxtop: Add support for parsing wprof perfetto traces by @hodgesds in #3230
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3231
- scx_p2dq: Clean stats output by @hodgesds in #3232
- scx_p2dq: add Intel uncore frequency, turbo, and EPP controls by @hodgesds in #3234
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3236
- services: update systemd service unit ...
v1.0.19
What's Changed
- versions: bump versions for 1.0.18 release by @JakeHillion in #3031
- scx_lavd: Optimize CPU mask iteration with __builtin_ctzll by @bboymimi in #3016
- scx_utils, scx_lavd: Use a portable ctzll(). by @multics69 in #3032
- scx_bpfland: Reduce migration attempts when sticky tasks are enabled by @arighi in #3034
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3036
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #3037
- scx_lavd: Lower the verifier pressure. by @multics69 in #3033
- Add
cpu.maxSupport for the SCX Scheduler by @multics69 in #3026 - scx_p2dq: Update to the new ATQ API by @etsal in #3038
- veristat: hack to increase buffer size by @JakeHillion in #3045
- ci: fix ubuntu runner deps action by @JakeHillion in #3050
- lavd/p2dq: disable 6.12 CI testing by @JakeHillion in #3048
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #3039
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #3041
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3040
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #3042
- scx_lavd: Revise the use of per-CPU DSQ. by @multics69 in #3044
- scx_lavd: Addresses race conditions in LAVD's idle_total accounting by @bboymimi in #3052
- scx_lavd: Revise the time slice calculation when pinned_slice_ns is on. by @multics69 in #3053
- p2dq/mitosis/lavd/layered -- cli and logging productionization by @likewhatevs in #3017
- scx_layered: skip layer rotation when LLC/node preferences specified by @hodgesds in #3049
- scx_p2dq: Update interactive sticky and idle selection path by @hodgesds in #3054
- meson: replace with an error by @JakeHillion in #3056
- scx: drop openrc service by @sirlucjan in #3057
- scx_lavd: Tracking the number of pinned tasks on a CPU precisely. by @multics69 in #3055
- scx_lavd: Cancel an ATQ operation only when CPU.max is enabled. by @multics69 in #3051
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #3060
- scx_p2dq: Fix migration disabled handling by @hodgesds in #3058
- p2dq: Cleanup skeleton attachment by @hodgesds in #3063
- scx_lavd: perform task stealing in circular distance order. by @multics69 in #3061
- ci: drop vm for cargo test by @JakeHillion in #3066
- p2dq: Remove cpu_release by @hodgesds in #3064
- scxtop: Add perfetto trace analysis framework with systing support by @hodgesds in #3030
- scx_cargo: migrate BpfBuilder from scx_utils by @JakeHillion in #3065
- scx_lavd: Disable ops.cgroup_set_bandwidth() when no kernel support. by @multics69 in #3068
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3069
- scx_p2dq: Add DHQ support by @hodgesds in #3035
- scxtop: Add limit parameter to detect_outliers MCP tool by @hodgesds in #3071
- scx_lavd: Fix pick_most_loaded_dsq() when --per-cpu-dsq is given. by @multics69 in #3070
- lib: cgroup_bw: Fix the "rcu pointer" error in an old kernel (6.13). by @multics69 in #3073
- doc: Add pahole to Ubuntu instruction. by @multics69 in #3072
- scx_lavd: Move task_ctx to lavd.bpf.h from intf.h by @multics69 in #3074
- scx_p2dq: Fix high wakeup latency on idle systems with DHQ enabled by @hodgesds in #3076
- scxtop: Add topology-aware multi-ringbuffer support and fix perfetto … by @hodgesds in #3075
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3077
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #3078
- scx_bpfland: Use nr_cpu_ids as the actual CPU limit by @arighi in #3080
- kernel.config: Add CONFIG_KALLSYMS_ALL=y by @torvic9 in #3081
- scx_lavd: Don't try to migrate a task from non-migratable DSQs. by @multics69 in #3079
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3083
- scx_lavd: Turn on --pinned-slice-us option by default. by @multics69 in #3062
- scx_cosmos: Avoid unnecessary CPU wakeups by @arighi in #3086
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3089
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #3091
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #3090
- document release process by @JakeHillion in #3095
- scx_lavd: Revise the performance criticality metric. by @multics69 in #3093
- scx_lavd: Revise the load-balancing metrics. by @multics69 in #3094
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3096
- scx_lavd: Minor tuning of deadline calculation for heavy loads. by @multics69 in #3097
- scx_lavd: Fix cpu_dsq_id typo in vtime comparison by @bboymimi in #3099
- lib: cgroup_bw: Fix a BPF verifier error on 6.18-rc6/clang-19/ARM64. by @multics69 in #3092
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3102
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3105
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #3106
- scx_lavd: Optimize layout of context structures for better use of cache. by @multics69 in #3107
- Fix some typos by @oxyzenQ in #3104
- scx_p2dq: Fix verifier on newer kernels with bpf_rcu_read_lock by @hodgesds in #3110
- scx_p2dq: Add PELT tracking by @hodgesds in #3111
- layered: Add a new NUMANode Matcher by @xerothermic in #3100
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #3117
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #3116
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #3118
- scx_p2dq: Update default slice intervals by @hodgesds in #3122
- scx_p2dq: Add conservative wakeup preemption for latency-critical tasks by @hodgesds in #3123
- scxtop: Add query limits to get_process_timeline and get_cpu_timeline MCP server methods by @hodgesds in #3121
New Contributors
Full Changelog: v1.0.18...v1.0.19
v1.0.18
What's Changed
- versions: bump versions for 1.0.17 release by @JakeHillion in #2866
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2869
- rustland-core: improve formatting by @sirlucjan in #2867
- README: Add Kernel Recipes 2025 by @EricccTaiwan in #2871
- scx_layered: remove task_layer_id by @etsal in #2872
- scx_util: Fix up --virt-llc args by @daidavid in #2873
- ci: clang-format scx_chaos by @JakeHillion in #2868
- scx_rustland_core: Fix clippy warnings by @EricccTaiwan in #2874
- rustland-core: fix formatting by @sirlucjan in #2877
- scx_bpfland: Rework idle selection and scheduling policy by @arighi in #2876
- chaos: reimplement better random support by @JakeHillion in #2878
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2881
- scx_rustland_core: Rely on built-in idle CPU selection policy by @arighi in #2875
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2882
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2884
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2885
- scx_bpfland: Disable sticky tasks by default by @arighi in #2887
- scx_loader: update bpfland server mode by @sirlucjan in #2888
- scx_mitosis: enable clang-format in the CI by @JakeHillion in #2892
- Dynamically gate layer admission for HintEquals by @kkdwvd in #2891
- meson: bump version to 1.0.17 by @sirlucjan in #2893
- scx_layered: add memory bandwidth-based layer sizing by @etsal in #2880
- scx_layered: fix warning by @sirlucjan in #2895
- scx_rustland_core/scx_rustland: Rework and improvements by @arighi in #2890
- scx_rustland: fix formatting by @sirlucjan in #2897
- scx_wd40: update error message if a cpu has no topology set. by @devnexen in #2883
- scx_rustland_core: Allow to define a default time slice by @arighi in #2898
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2900
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2899
- nix: support aarch64-linux in flake by @JakeHillion in #2902
- scx_lavd: Fix array index mismatch in test_cpu_stickable() by @bboymimi in #2886
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2901
- scx_mitosis: Add debug event recording by @dschatzberg in #2905
- scxtop: Fix panic in BPF event conversion by @hodgesds in #2907
- cargo: Fix target-cpu option by @hodgesds in #2913
- utils: Update cargo dependencies by @hodgesds in #2906
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2917
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2920
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2921
- scx_rustland_core: Avoid unnecessary CPU wakeups by @arighi in #2918
- scx_mitosis: Bump max cells by @dschatzberg in #2924
- scx_rustland_core: Consider user-space scheduler's CPU as idle by @arighi in #2922
- mitosis: bugfixes by @likewhatevs in #2904
- update fmt githook template by @likewhatevs in #2908
- scx_rustland: small latency-oriented improvements by @arighi in #2925
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2926
- ci: update description when modifying an update-kernels pr by @JakeHillion in #2928
- scx_lavd: Fix lost cpu assignment when reusing prev_cpu by @weiso131 in #2916
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2889
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2931
- scx_rustland_core: Remove unused prev_cpu parameter by @charliechiou in #2927
- nix: build scx_chaos with nix by @JakeHillion in #2932
- meson: deprecate harder by @JakeHillion in #2933
- scx_mitosis: Make timer_cb more robust by @dschatzberg in #2929
- scx_mitosis: Fix enqueue vtime stale read by @dschatzberg in #2935
- scx_lavd: Add configurable migration threshold with avg utilization by @daidavid in #2912
- scx_lavd: Add --pinned-slice-us option for improved pinned task respo… by @daidavid in #2930
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2936
- Lavd release 10 23 by @daidavid in #2937
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2941
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2940
- scx_bpfland: Add --preferred-idle-scan option to prioritize faster CPUs by @arighi in #2939
- scx_bpfland: Introduce per-CPU DSQs by @arighi in #2943
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2946
- scx_bpfland: Prevent starvation and improve performance consistency by @arighi in #2948
- scxtop: Add BPF program profiling with perf sampling and source line … by @hodgesds in #2945
- scx_bpfland: Drop ops.cpu_release() by @arighi in #2949
- scx_utils, scx_lavd: Harden the futex tracing. by @multics69 in #2950
- scx_mitosis: Increase debug events buffer size by @dschatzberg in #2954
- scxtop: Fix P99 Runtime chart width in BPF detailed view by @hodgesds in #2955
- scx_bpfland: Don't attempt migrations for sticky tasks by @arighi in #2953
- scx_p2dq: Fix BPF loading failure when sched_core_priority unavailable by @hodgesds in #2957
- scxtop: Use __COMPAT_scx_bpf_events for older kernel support by @hodgesds in #2956
- lib/arena: Fix incorrect cpumask calculation at topo_init(). by @multics69 in #2951
- scx_lavd: Don't use Per-CPU DSQ for pinned tasks by @daidavid in #2964
- scx_lavd: Fix a BPF verifier error (E2BIG) at do_core_compaction(). by @multics69 in #2965
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2967
- scx_lavd: Fix the required tracer name for futex tracing. by @multics69 in #2966
- scxtop: Add Model Context Protocol (MCP) server by @hodgesds in #2963
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2973
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2974
- scx_bpfland: Scale vruntime credit based on queue depth by @arighi in #2968
- docs: update Ubuntu install steps after 25.10 release by @ksacilotto in #2972
- scx_mitosis: Workaround exiting tasks in dead cgs by @dschatzberg in #2971
- Update kernel.config with LAVD specific info by @AdelKS in #2969
- scx_p2dq: Add optimizations for Neoverse-V2 CPUs by @hodgesds in #2975
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2980
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2981
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2982
- scx_loader/scxctl: remove from repository by @JakeHillion in #2977
- scxtop: Refactor process/thread rendering into separate module (Phase 1) by @hodgesds in #2959
- scx_bpfland: Classify sticky tasks based on their average runti...
v1.0.17
What's Changed
- scx_utils: Remove unused crate by @EricccTaiwan in #2742
- scx_utils: package a tarball of vmlinux in the source by @JakeHillion in #2743
- versions: bump versions for 1.0.16 release by @JakeHillion in #2741
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2740
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2744
- scx_cosmos: Introduce --avoid-smt by @arighi in #2735
- rust: add generic arena library setup code and consolidate arena library code to subdir by @etsal in #2747
- scx_util, scx_lavd: Add virtual LLC support by @daidavid in #2705
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2748
- scxtop: Add scx_collect_stats helper by @hodgesds in #2749
- scx_layered: userspace logic for memory-bandwidth based layer growth by @etsal in #2726
- scx_central: making data display update interval flexible. by @devnexen in #2751
- docs: Update installation steps for Ubuntu by @arighi in #2756
- rust: arenalib: Set edition to 2021 by @arighi in #2755
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2753
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2754
- arenalib: make imports a bit easier by @daidavid in #2757
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2752
- scx_p2dq: Add overload scheduling by @hodgesds in #2762
- scx_p2dq: Add LLC sharding by @hodgesds in #2733
- scx_p2dq: Unset overloaded when not overloaded by @hodgesds in #2764
- rust: parse PMU raw events by @etsal in #2750
- scxtop: clarify why perf api could not perform when erroring. by @devnexen in #2765
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2766
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2767
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2768
- services: drop basic scx.service by @sirlucjan in #2769
- scx_rustland_core: Re-enqueue tasks in cpu_release by @EricccTaiwan in #2763
- Instructions for building and managing schedulers using cargo by @sirlucjan in #2772
- README.md: update systemd howto by @sirlucjan in #2773
- scx_mitosis: move tick() to timer by @dschatzberg in #2759
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2775
- scx_loader: update README.md about config file by @sirlucjan in #2774
- scx_mitosis: Use SCX_OPS_DEFINE for struct_ops by @EricccTaiwan in #2746
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2781
- scxcash: Add task hint backend by @kkdwivedi in #2782
- scx_rustland_core: Remove redundant 'static lifetime by @EricccTaiwan in #2778
- lib/scx_layered: add raw PMU tracking module and integrate with scx_layered membw tracking by @etsal in #2779
- CARGO_BUILD: extend information about fetch, test and cross compilation by @sirlucjan in #2786
- load_balance: Remove duplicate node count check by @weiso131 in #2770
- scx_rusty: Initialize bpf wrapper var by @frelon in #2784
- scx_rustland_core: Append ops.version suffix by @EricccTaiwan in #2785
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2789
- scx_raw_pmu: Set edition to 2021 by @arighi in #2790
- scx_rustland/rlfifo: Upgrade procfs version by @EricccTaiwan in #2791
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2788
- scx_loader: add migration guide from scx.service to scx_loader.service by @sirlucjan in #2792
- rust/scx_raw_pmu: adjust parsing for Intel PMUs by @etsal in #2787
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2794
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2795
- scx_rustland_core: Log user ringbuf drain return value by @EricccTaiwan in #2796
- scx_raw_pmu: use include_dir to embed json by @JakeHillion in #2780
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2800
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2801
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2802
- scx_rustland_core: Improve readability by @EricccTaiwan in #2803
- docs: Fix broken links by @weiso131 in #2806
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2809
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2810
- README: Add Kernel Recipes talks by @EricccTaiwan in #2807
- scx_rustland_core: Remove unused variable by @EricccTaiwan in #2804
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2814
- README: Reformat and cleanup by @EricccTaiwan in #2817
- scx_p2dq: Fix keep running by @hodgesds in #2820
- scx_lavd: Improve the calculation of performance criticality threshold by @multics69 in #2815
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2813
- cargo: add xtask crate for repo scripts by @JakeHillion in #2816
- scx_rustland: rename min_vruntime to vruntime_now for clarity by @charliechiou in #2822
- test_sched: ignore RETBleed lines by @JakeHillion in #2824
- versions: add starlark output by @JakeHillion in #2823
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2826
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2827
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2821
- scx_bpfland: Print command line options by @sirlucjan in #2829
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2830
- scx_bpfland: Fix CPU utilization for tasks pinned outside primary domain by @arighi in #2828
- scx_flash: Fix CPU utilization for tasks pinned outside primary domain by @arighi in #2831
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2833
- scx_rustland: avoid dispatch when task pool is empty by @charliechiou in #2832
- scx_rustland: align PartialOrd with Ord by @charliechiou in #2835
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2837
- scx_rustland: refine comment to clarify vruntime_now by @charliechiou in #2836
- scx_rustland_core/bpf.rs: align comments with README by @charliechiou in #2838
- percpu: Properly handle missing percpu symbols by @arighi in #2839
- scx_layered: Add MATCH_CGROUP_REGEX support by @htejun in #2841
- scx_layered: Add virtual LLC support by @htejun in #2845
- versions: extract from cargo metadata by @JakeHillion in #2840
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2849
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2848
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2850
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2851
- Revert "scx_rustland_core: Re-enqueue tasks in cpu_release" by @arighi in https://github.com/sched-ex...
v1.0.16
What's Changed
- versions: bump versions for 1.0.15 release by @JakeHillion in #2600
- scx_utils: include sched version in /sys by @JakeHillion in #2599
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2601
- meson: Add -v option back to builds by @hodgesds in #2579
- scxtop: use PT_REGS_IP() macro by @iii-i in #2602
- scx_utils, scx_lavd: Handle an error in set_rlimit_infinity() gracefully. by @multics69 in #2603
- scxtop: Fix total power calculation in TUI by @hodgesds in #2604
- Small Fixes by @rrnewton in #2606
- scheds: fix unused set_rlimit_infinity() result by @iii-i in #2608
- scx_wd40: No-op task_set_preferred_mempolicy_dom_mask() on ARM64 by @EricccTaiwan in #2610
- scx_utils: refactor version appending to make it work on aarch64 by @JakeHillion in #2611
- lib/btree: add remove and merge operations by @etsal in #2605
- scxtop: Cleanup scheduler TUI view by @hodgesds in #2614
- scxtop: Add last waker to thread view by @hodgesds in #2615
- scx_layered: fix race condition on GPU process layer match logic by @xerothermic in #2607
- scx: Mark smp_mb variable as volatile by @kkdwivedi in #2617
- INSTALL.md: Update ubuntu instructions. by @multics69 in #2618
- scx_lavd: Increase the maximum number of domains to 24. by @multics69 in #2619
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2622
- services: show options instead of setting any by @vnepogodin in #2624
- scxtop: Add colors to charts by @hodgesds in #2616
- scxtop: Fix clippy warnings by @hodgesds in #2626
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2620
- scx_wd40: Fix warning on ARM64 by @EricccTaiwan in #2623
- ci: add basic build check for aarch64 by @JakeHillion in #2612
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2621
- p2dq: Refactor llc_runs handling by @hodgesds in #2627
- scx_mitosis: Retire homegrown RCU implementation by @kkdwivedi in #2613
- scx_lavd: initial refactoring for separate unit compilation by @etsal in #2521
- scx_utils: Add lifetime to cpumask iterator by @hodgesds in #2629
- scx_lavd: continue separate unit compilation refactoring by @etsal in #2630
- scheds: unify a bit more the rust schedulers at exit time. by @devnexen in #2389
- layered: bump version to 1.0.17 by @JakeHillion in #2632
- sync-to-kernel: Skip include/lib and revert missing-file handling by @EricccTaiwan in #2625
- Revert "ci: add basic build check for aarch64" by @JakeHillion in #2633
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2638
- scx_lavd: Fix a verification error on ARM. by @multics69 in #2636
- scx_lavd: Remove unused function by @EricccTaiwan in #2631
- scx_mitosis: Few more clean ups by @kkdwivedi in #2628
- Fix s390 support by @iii-i in #2586
- scx_p2dq: Refactor saturation handling by @hodgesds in #2637
- rust/scx_lib_selftest: add BPF Streams support by @etsal in #2634
- scx_p2dq: Add task slice tracking by @hodgesds in #2641
- scx_p2dq: Add clippy by @hodgesds in #2642
- High frequency dynamic layer switching using hints by @kkdwivedi in #2643
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2645
- scx_lavd: Add LLC id (llc_id) to cpu_ctx and cpdom_ctx. by @multics69 in #2646
- ci: drop arighi-6.12 and apply patch to stable-6.12 by @JakeHillion in #2640
- include/lib: port page fragment allocator from the kernel by @etsal in #2635
- scx_p2dq: Remove unused parameter by @EricccTaiwan in #2649
- p2dq/chaos: remove sources from p2dq lib and symlink into chaos by @JakeHillion in #2651
- scx_lavd: Check Per-CPU dsq on select cpu path by @daidavid in #2653
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2656
- build: switch c scheds to make by @JakeHillion in #2647
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2655
- lib/sdt_alloc: Fix wrong return value by @EricccTaiwan in #2657
- scripts: Update vmlinux to include more configs by @hodgesds in #2658
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2661
- scx_lavd: --per-cpu-dsq shares DSQ between SMT siblings by @daidavid in #2659
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2660
- scxtop: Refactor on_tick method by @hodgesds in #2663
- rust/scx_lib_selftests: explain BPF streams-related error messages by @etsal in #2665
- scx_lavd: Fix return type for cpu_to_dsq by @daidavid in #2666
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2671
- lib: introduce red-black tree by @etsal in #2662
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2667
- scx_utils: few helpers simplifications. by @devnexen in #2670
- scx_p2dq: Add scheduler mode configuration by @hodgesds in #2673
- lib/btree: fix btnode cached allocation/frees by @etsal in #2664
- scx_p2dq: Update saturate CPU selection by @hodgesds in #2676
- Cache Usage Analyzer by @kkdwivedi in #2678
- scx_rustland_core: Use RingBuffer:consume_raw_n() by @arighi in #2681
- scx_p2dq: Update docs by @hodgesds in #2683
- scxcash: Add perf sampling backend by @kkdwivedi in #2679
- scxtop: Add LineGauge support by @hodgesds in #2682
- scx_layered: Added --hi-fb-thread-name to give more CPU time for affinitized task by @xerothermic in #2680
- mitosis: replace layered with mitosis by @sirlucjan in #2688
- scx_mitosis: Add "Unregister" log message by @EricccTaiwan in #2687
- lib/rbtree: add rb_least() and rb_pop() API methods by @etsal in #2691
- mitosis: add version info by @likewhatevs in #2685
- scx_cosmos: Correct comment typo by @EPOCHvoyager in #2692
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2686
- scx_chaos: Log unregister on drop by @EricccTaiwan in #2690
- lib/selftest: add C based runner by @etsal in #2677
- scxtop: Bind both 'q' and 'Q' to Quit action by @EricccTaiwan in #2697
- Bump slab to 0.4.11 by @shunghsiyu in #2689
- lib/atq: Back with rbtrees by @etsal in #2693
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2701
- scx_cosmos: Consider wakeup frequency when determining task deadlines by @arighi in #2696
- Update INSTALL.md by @Sisyphus1813 in #2699
- chore(deps): update stable/6_12 kernel by @JakeHillion in #2702
- scx_mitosis: dynamic cell creation/destruction by @dschatzberg in #2694
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2706
- scxtop: Reduce redundant if-else by @EricccTaiwan in #2707
- scx_utils: Add option for libbpf opts for scx_ops_open by @hodgesds in ...
v1.0.15
What's Changed
- versions: Bump versions for v1.0.14 release by @JakeHillion in #2357
- cargo-publish: add a topological sort by @JakeHillion in #2358
- p2dq/chaos: switch more enqueue cases to be async by @JakeHillion in #2354
- /etc/default/scx: set scx_flash as default scheduler by @sirlucjan in #2360
- scx_p2dq: Set CPU on promise during enqueue by @hodgesds in #2361
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2363
- vmlinuyx_docify: address clippy warnings by @devnexen in #2362
- scxtop: switch cpu_stat_tracker to procfs by @yaakov-stein in #2364
- chaos: re-enable on sched_ext/for-next kernel by @JakeHillion in #2366
- scx_bpf_unittests: add crate to drive BPF unittests by @JakeHillion in #2365
- scxtop: add cpu_frequency tracking by @yaakov-stein in #2367
- scx_lavd: Collect more information for '--monitor-sched-samples' by @multics69 in #2368
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2370
- scxtop: fix trace by @yaakov-stein in #2375
- scx_p2dq: Refactor configuration by @hodgesds in #2376
- scx_p2dq: Fix initialization by @hodgesds in #2377
- scx_lavd: Add 'rerunnable_interval' for '--monitor-sched-samples' by @multics69 in #2372
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2371
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2380
- scx_flash: Scale by task weight when native_priority is set by @marioroy in #2373
- scxtop: add cpu stats to trace by @yaakov-stein in #2378
- scxtop: update default event by @yaakov-stein in #2383
- scx_loader: cleaning and adjusting settings by @sirlucjan in #2374
- scx_lavd: Limit the impact of latency criticality inheritance. by @multics69 in #2384
- scx_p2dq: Add stats for per CPU enqueues by @hodgesds in #2385
- scx_p2dq: Add load balance mode by @hodgesds in #2382
- scxtop: add system stats trace arg by @yaakov-stein in #2386
- nix: fix veristat build by @JakeHillion in #2388
- scxtop: remove unnecesary struct variables by @yaakov-stein in #2391
- scx_lavd: Refactoring struct task_ctx. by @multics69 in #2392
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2393
- scx_bpf_unittests: Filter invalid symbol names in test codegen by @EricccTaiwan in #2387
- cargo: Update build profiles by @hodgesds in #2394
- scxtop: add mem stats by @yaakov-stein in #2390
- ci: reduce number of runs by @JakeHillion in #2396
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2399
- Introduce scx_cosmos by @arighi in #2401
- scx_flash: add to integration-tests by @sirlucjan in #2402
- deps: update libbpf-rs/libbpf-cargo to 0.25.0 by @JakeHillion in #2397
- scxtop: add process cmdline by @yaakov-stein in #2395
- scxtop: adding sched_process_wait trace point. by @devnexen in #2398
- scx_wd40: fix build and build in CI by @JakeHillion in #2404
- scx_loader: add config search path for distributions by @vnepogodin in #2405
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2409
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2408
- scx_loader: add bundled configuration like for scx.service by @vnepogodin in #2406
- scx_loader: Support build-time configuration of vendordir by @ReillyBrogan in #2407
- rust utils: addressing clippy warnings by @devnexen in #2410
- scx_cosmos: Introduce flat idle CPU scan by @arighi in #2411
- atq: Add sized ATQ helper by @hodgesds in #2403
- ci: add required-checks job by @JakeHillion in #2413
- nix: switch to fenix to better pin rust dependencies by @JakeHillion in #2412
- scx_p2dq: Add ATQ for migrations by @hodgesds in #2414
- scxtop: fix trace by @yaakov-stein in #2416
- scx_p2dq: Allow configuring queued wakeup by @hodgesds in #1939
- scxtop: switch from fb_procfs to procfs by @yaakov-stein in #2417
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2419
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2421
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2420
- scx_lavd: Mostly refactoring and clean up, and one preemption optimization. by @multics69 in #2418
- scx_loader: fix typos and and unification of descriptions by @sirlucjan in #2423
- scx_p2dq: Add ATQ for interactive tasks by @hodgesds in #2425
- scx_cosmos: Use flat idle scan only when the system is sufficiently idle by @arighi in #2424
- scx_lavd: Sample dsq_consume latencies by @daidavid in #2428
- scx_p2dq: Update docs by @hodgesds in #2429
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2430
- selftests: Add topology selftest by @hodgesds in #2427
- scxtop: Add "missing scheduler" message by @EricccTaiwan in #2336
- scx_tickless: Add support for preferred cores by @arighi in #2431
- scx_flash: Re-introduce tickless timer by @arighi in #2437
- scx_wd40: Fix indent by @EricccTaiwan in #2433
- scxtop: prevent cargo fmt from editing license by @yaakov-stein in #2436
- scx_mitosis: Add StatsServer by @dforsyth in #2426
- scx_chaos: separate kprobe delays by @yaakov-stein in #2435
- scxtop: add v0 process view by @yaakov-stein in #2434
- scxtop: add cpu system-wide stats by @yaakov-stein in #2439
- scxtop: intercept sched_process_hang trace event. by @devnexen in #2432
- scxtop: fix sched hang prog attach by @yaakov-stein in #2442
- scxtop: update process tables styles by @yaakov-stein in #2444
- scx_lavd: addressing clippy warnings by @devnexen in #2443
- scx_lavd: Boost the time slice of long-running tasks. by @multics69 in #2440
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2446
- scxtop: add cpu util to process by @yaakov-stein in #2445
- scx_utils/topo: Remove unused import by @EricccTaiwan in #2447
- scx_bpf_compat: add crate to detect difficult kernel features and use in layered by @JakeHillion in #2415
- scxtop: add fields to process view by @yaakov-stein in #2450
- ci: use fast-apt-mirror action by @JakeHillion in #2451
- ci: add missing checkout steps by @JakeHillion in #2452
- rust-toolchains: Add rustfmt and clippy components by @EricccTaiwan in #2448
- ci: split rust-tests into lint and build-and-test by @JakeHillion in #2449
- scxtop: add pause capability by @yaakov-stein in #2454
- scxtop: temporary fix for dsq vtime stat by @yaakov-stein in #2455
- scxtop: add pause to help by @yaakov-stein in #2456
- meson: drop libalpm support by @sirlucjan in #2458
- scxtop: clean Cargo.toml by @yaakov-stein in #2459
- scxtop: remove pstate by ...
v1.0.14
What's Changed
- release: scx_userspace_arena should be published before schedulers by @htejun in #2157
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2159
- scx_mitosis: log global + per-cell queue counts. by @tommy-u in #2093
- scx_utils: Use .then_some() to simplify exit_code() by @EricccTaiwan in #2161
- scx_layered: Synchronize among competing preemptors by @htejun in #2165
- lib/sdt_task: Align enum field for consistency by @EricccTaiwan in #2163
- scx_p2dq: Add optimization for pick2 by @hodgesds in #2166
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2167
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2168
- scx_flash: Introduce "turbo" mode by @arighi in #2160
- scx_p2dq: Update handling of affinitized kthreads by @hodgesds in #2169
- load_balance: Refactor get_stats by @EricccTaiwan in #2171
- scx_lavd/main: Simplify cpdom_map construction by @EricccTaiwan in #2158
- scx_flash: Introduce --rr-sched by @arighi in #2174
- scx_lavd: Rework CPU preference ordering considering chip binning. by @multics69 in #2175
- layered: add -V/--version option by @JakeHillion in #2178
- lib/cpumask: use cmpxchg in scx_bitmap_vacate_cpu by @etsal in #2140
- ci: include changelog link when updating kernels by @JakeHillion in #2181
- scx_flash: Introduce --cpu-runqueue by @arighi in #2180
- p2dq: only declare each module once by @JakeHillion in #2183
- scx_mitosis: Remove unused field and helper to suppress warnings by @EricccTaiwan in #2162
- scx_p2dq: Update dispatch DSQ selection to use DSQ iterators by @hodgesds in #2182
- lib: add selftests by @etsal in #2186
- scx_lavd: Refactor FlatTopology. by @multics69 in #2176
- scxtop: add generic bpf kprobe handler by @yaakov-stein in #2185
- scx_p2dq: Optimize dispatch by @hodgesds in #2187
- scxtop: fix number overflow errors by @yaakov-stein in #2188
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2191
- scx_p2dq: Use SCX_DSQ_LOCAL for select_cpu by @hodgesds in #2190
- scx_p2dq: Add deadline scheduling by @hodgesds in #2193
- scx_p2dq: Optimize dispatch_cpu by @hodgesds in #2194
- scx_p2dq: Cleanup consume_llc_compat by @hodgesds in #2195
- scxtop: adding sched_migrate_task tracepoint. by @devnexen in #2196
- scx_utils: Add an environment variable, SCX_SYSFS_PREFIX, for ease of debugging. by @multics69 in #2192
- scxtop: fix dsq0 overflow by @yaakov-stein in #2197
- scx_utils/infeasible: Refactor apply_infeasible_threshold by @EricccTaiwan in #2189
- docs: Add schbench to developer guide by @EricccTaiwan in #2198
- docs: Add cachyos-benchmarker to developer guide by @EricccTaiwan in #2199
- scxtop: fix tracing race bug by @yaakov-stein in #2200
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2201
- scx_rusty: fix typo by @charliechiou in #2202
- layered/chaos: make --version and startup message uniform by @JakeHillion in #2204
- chaos: fix thread error handling by @JakeHillion in #2205
- scx_flash: Improve task re-enqueue by @arighi in #2206
- scx_p2dq: Bump p2dq version by @hodgesds in #2207
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2210
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2211
- scx_lib_selftests/Cargo: Bump edition to 2021 by @EricccTaiwan in #2212
- scxtop: adding kprobe events to trace by @yaakov-stein in #2208
- scx_rusty: Suppress warning on aarch64 by @EricccTaiwan in #2213
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2217
- chore(deps): update stable/6_12 kernel by @scx-ci-bot in #2216
- chore(deps): update stable/linux-rolling-stable kernel by @scx-ci-bot in #2218
- scx_flash: Handle migration-disabled tasks in direct dispatch by @arighi in #2219
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2222
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2223
- scx_rusty: Update aarch64 compat macro by @EricccTaiwan in #2220
- scxtop: fix event clearing bug by @yaakov-stein in #2221
- scx_p2dq: Add migration DSQs by @hodgesds in #2215
- scx_flash: Enable per-CPU DSQs and per-node DSQs by @arighi in #2224
- Add cpufreq/amd_pstate_prefcore_ranking to topology by @ferrreo in #2227
- scxtop: decouple filtering and rendering event list by @yaakov-stein in #2225
- scx_flash: Remove unnecessary parentheses by @EricccTaiwan in #2228
- scx_p2dq: Refactor DSQs by @hodgesds in #2226
- scxtop: make generic kprobe handler sample by @yaakov-stein in #2230
- scxtop: generalize perf events -> profiling events by @yaakov-stein in #2229
- scx_flash: Introduce tickless mode by @arighi in #2231
- scx_utils, scx_lavd: Introduce EnergyModelOptimizer. by @multics69 in #2232
- scx_p2dq: Refactor dispatch path by @hodgesds in #2233
- scxtop: fix kprobe instuction pointer by @yaakov-stein in #2234
- scxtop: add kprobe events to TUI by @yaakov-stein in #2236
- Add basic unit testing for the BPF portion of scx schedulers by @josefbacik in #2238
- scx_lavd: Suppress warning by @EricccTaiwan in #2235
- meson.build: Force to use gnu11 as C standard. by @multics69 in #2239
- chore(deps): update sched_ext/for-next kernel by @scx-ci-bot in #2240
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2241
- meson.build: Suppress warning by @EricccTaiwan in #2243
- lib: add minheap data structure by @etsal in #2179
- scx_chaos: minor typo fix by @yaakov-stein in #2245
- cargo_publish.py: switch from paths to crate names and use publish = … by @JakeHillion in #2244
- scxtop: temporary fix for locale crash by @yaakov-stein in #2248
- scx_p2dq: Add interactive DSQ by @hodgesds in #2237
- scxtop: avoid udnerflow when calculating DSQ vtime delta by @mati865 in #2251
- scx_p2dq: Refactor interactive handling by @hodgesds in #2250
- lib/minheap: error out on invalid capacity sizes by @etsal in #2247
- chore(deps): update bpf/bpf-next kernel by @scx-ci-bot in #2254
- lib: Suppress a possibly uninitialized variable warning. by @multics69 in #2255
- ci: run scx_lib_selftests and disable it publishing by @JakeHillion in #2256
- scxtop: bump release to 1.0.15 by @JakeHillion in #2258
- scx_p2dq: Fix interactive load balancing by @hodgesds in #2257
- lib/minheap: Simplify parent index calculation by @EricccTaiwan in #2252
- scx: add more support code for unit tests by @josefbacik in #2260
- scx_mitosis: Small fixups by @dschatzberg in #2261
- scx_flash: Misc improvements by @arighi in #2259
- chore(deps): update bpf/bpf-next k...