Releases: sched-ext/scx
Releases · sched-ext/scx
v1.0.8
What's Changed
- version: v1.0.7 by @htejun in #1063
- scripts: Refactor vtime_dist script by @hodgesds in #1056
- scx_layered: Put all tasks with custom affinities into the hi fallbak DSQs by @htejun in #1064
- scripts: Add slicesnoop script by @hodgesds in #1057
- scx_layered: Refactor dsq_lat script by @hodgesds in #1058
- scx_bpfland: do not rely on scx_utils::autopower by @arighi in #1066
- scx: add ci job to test rolling stable by @likewhatevs in #1049
- scx: add rustfmt.toml files to avoid lookup to $HOME/.rustfmt.toml by @likewhatevs in #1069
- scx_layered: Make low fallback DSQs useful and other changes by @htejun in #1076
- docs: Update installation notes for Ubuntu by @arighi in #1075
- meson: Add scx_lib dep to gen_bpf_o by @frelon in #1067
- scx_lib: use the proper bpftool by @arighi in #1071
- scx_layered: handle nr_to_free calculation by @luigidematteis in #1073
- scripts: Add scxtop by @hodgesds in #1078
- Fixes for dsq_lat.bt by @samuelnair in #1077
- scx_loader: provide library crate to be used by other crates by @vnepogodin in #1070
- readme: specify cargo install --locked be used by @likewhatevs in #1079
- only compile library when using recent bpftool versions by @etsal in #1080
- fix header install path for library by @etsal in #1081
- scx_utils: Remove log_recorder by @htejun in #1084
- scx_layered, cpumask, topology: Cleanups by @htejun in #1083
- cpumask, scx_layered: Clean up Cpumask iterator by @htejun in #1085
- scx_layered: Implement empty LLC draining by @htejun in #1092
- scripts: Refactor scxtop by @hodgesds in #1088
- scx_layered: queued_runtime tracking bug fix and disable xllc_mig_min_us by default by @htejun in #1093
- Install: Rework Arch Linux section by @ptr1337 in #1095
- Etsal/bump req bpftool version by @etsal in #1091
- scx_layered: Refactor proximity map iteration by @hodgesds in #1086
- bump libbpf-rs version to 0.24.8, specify libbpf-sys version 1.4.6+1.4.7 by @etsal in #1089
- multiple compilation units in Rust by @etsal in #1090
- scx_bpfland: server workload improvements by @arighi in #1094
- scx_loader: add mode for server-oriented workloads by @vnepogodin in #1096
- scx_layered: Improve layer core growth algos by @hodgesds in #1098
- scx_layered: Make layered work in pid namespaces by @hodgesds in #1099
- scx_loader: fix recursion of type convertion by @vnepogodin in #1100
- scx_layered: Add pid namespace layer matching by @hodgesds in #1103
- fix missing rerun-if-changed statements by @etsal in #1108
- version: 1.0.8 by @htejun in #1110
Full Changelog: v1.0.7...v1.0.8
v1.0.7
What's Changed
- introduce CO:RE enum readers and use them for scx_central by @etsal in #894
- add CONFIG_IKCONFIG_PROC to ci kconfig by @likewhatevs in #900
- add CONFIG_IKCONFIG to ci Kconfig and bump cache ver by @likewhatevs in #905
- scx_layered: Add fallback DSQ cost accounting by @hodgesds in #896
- scx_layered: Fix verifier issue when tracing by @hodgesds in #906
- scx_lavd: update cur_logical_clk atomically by @multics69 in #903
- scx_lavd: drop padding in cpdom_cpumask, which was a workaround by @multics69 in #904
- scx_loader: tune scx_bpfland default options by @arighi in #907
- scx_layered: Fix verifier issue on older kernels by @hodgesds in #910
- scx_layered: Use layer idle_smt option by @hodgesds in #911
- layered/topo: lift layer specific checks out of per-LLC loop by @JakeHillion in #908
- scx_layered: Cleanup cpumask by @hodgesds in #912
- scx_layered: Add fallback costs to dump by @hodgesds in #913
- scx_lavd: docs: fix typos by @LohithCV in #915
- scx_layered: Work around older kernels choking on function calls from… by @htejun in #916
- scx_layered: add timer antistall by @likewhatevs in #890
- scx_layered: Fix error in dispatch consumption by @hodgesds in #920
- scx_layered: Add helper for layer slice duration by @hodgesds in #918
- scx_layered: Fix formatting by @hodgesds in #921
- scx_layered: Fix dump format by @hodgesds in #922
- scx_layered: Fix cost accounting for fallback dsqs by @hodgesds in #923
- scx_layered: Consume from local LLCs for dispatch by @hodgesds in #919
- scx_layered: Fix formatting by @hodgesds in #925
- layered: split out common parts of LayerKind by @JakeHillion in #926
- scheds: introduce scx_flash by @arighi in #924
- fix compile errors by @purplewall1206 in #928
- scx_layered: Perf improvements and a bug fix by @htejun in #929
- scx_layered: Don't limit antistall execution to layered_cpumask by @htejun in #932
- scx_layered: Fix verifier issues on older kernels by @hodgesds in #933
- scx_layered: Cleanups around topology handling by @htejun in #934
- scx_lavd: Factor the task's runtime more aggressively in a deadline calculation by @multics69 in #931
- scx_layered: Work around verification failure in antistall_set() on o… by @htejun in #939
- scx_loader: add scx_flash as supported scheduler by @vnepogodin in #942
- [RFC] scx_layered: Add netdev IRQ balancing by @hodgesds in #930
- scx_loader: update docs by @sirlucjan in #947
- replace goto with unrolled loop in antistall_set by @JakeHillion in #943
- scx_utils/scx_layered: bump to 1.0.7 by @JakeHillion in #949
- scx_layered: Use PROG_RUN for cpumask updates by @hodgesds in #950
- scx_lavd: Optimize the layout of struct task_ctx by @multics69 in #952
- cargo fmt to match ci by @JakeHillion in #953
- Merge pull request #953 from JakeHillion/pr953 by @JakeHillion in #954
- rust-toolchain: init file by @JakeHillion in #955
- scx_layered: Remove high fallback dsq budget check by @hodgesds in #956
- scx_lavd: Do not exclude exiting tasks by @multics69 in #957
- scx_rustland_core: proactively wake up CPUs when selected by user space by @arighi in #946
- docs: Fix link to Gentoo installation instructions by @kostadinsh in #962
- utils: add powerpc64le to arch map by @frelon in #960
- scx_layered: Reimplement CPU allocation and some other fixes by @htejun in #958
- scx_rusty: Fix verifier errors on older kernels by @hodgesds in #963
- scx_layered: select_cpu() fixes and updates by @htejun in #964
- scx_lavd: Boost time slice more generously by @multics69 in #959
- scx_lavd: Optimize performance criticality calculation by @multics69 in #968
- scx_lavd: Optimize the cpuc_ctx layout for cache friendliness by @multics69 in #969
- topology: Make it more consistent by @htejun in #967
- scx_layered: Reimplement
try_preempt()
by @htejun in #970 - scx_lavd: Optimize preemption by @multics69 in #971
- scx_layered: Fix verifier errors on big/little by @hodgesds in #972
- scx_layered: More cleanups and an antistall fix by @htejun in #973
- scx_bpfland: restart on energy profile change by @arighi in #974
- scx_lavd: add tunables for adjusting time slices by @multics69 in #975
- scx_layered: Refactor layered initialization by @hodgesds in #976
- scx_layered: Refactor CPU initialization by @hodgesds in #977
- scx_lavd: Replace bpf_get_smp_processor_id() to cpuc->cpu_id by @multics69 in #979
- scx_layered: Fix missing layered->id init by @htejun in #978
- meson: Install scx header files by @frelon in #961
- scx_layered: Track owned/open execution times and per-LLC-layer stats by @htejun in #980
- scx_layered: Refactor layer growth order by @hodgesds in #965
- scx_loader: restart scheduler upon fail by @vnepogodin in #983
- scx_lavd: Minor code clean up by @multics69 in #984
- Introduce for_each_possible_cpu() for_each_online_cpu() iterators by @abrehman94 in #985
- scx_utils: Add core_id/llc_id to topology as a unique identifiers by @hodgesds in #982
- scheds: use llc id by @arighi in #993
- fix document generation by @likewhatevs in #992
- scripts: Add bpftrace script to trace CPU frequency by @hodgesds in #995
- scx_lavd: Limit the slice extension of a lock holder by @multics69 in #990
- scx_layered: Implement in-layer execution protection to replace cost based fairness by @htejun in #996
- scx_layered: Reimplement layered_dispatch() by @htejun in #997
- scx_bpfland: dump cache_id_map in ascending order by @mmz-zmm in #999
- scx_layered: Fix idle selection on big/little by @hodgesds in #1007
- scx_utils: remove use of deprecated bindgen API; require bindgen >=0.69 by @luigidematteis in #1002
- scx_layered: Prioritize sched userspace and fix owned execution protection by @htejun in #1008
- scx_layered: State tracking updates and layer sizing related fixes by @htejun in #1012
- Fix build on non-x86 architectures by @hack3ric in #1005
- scx_lavd: Load balancing across compute domains by @multics69 in #1000
- scx_layered: Deprecate idle_smt layer config by @htejun in #1013
- [RFC] scx_lavd: Fetch active profile from power-profiles-daemon dbus interface when using autopower by @ruihe774 in #1017
- vmlinux: Increase cpumask size in vmlinux.h for all arch by @multics69 in #1016
- ignore ctags files by @etsal in #1021
- scx: fix build by @likewhatevs in #1020
- scx: fix pages build by @likewhatevs in #1025
- scx: enable using sccache by @likewhatevs in #1018
- scx_layered: Make vtime_now per-LLC by @htejun in #1026
- docs: Add bpftop to developer guide by @hodgesds in https://github.com/sched-ext/scx...
v1.0.6
What's Changed
- v1.0.5 by @htejun in #722
- version: Cargo.lock update by @htejun in #724
- scx_lavd: support CPU hotplug correctly by @multics69 in #714
- add link to generated docs in developer guide by @likewhatevs in #727
- Run integration tests against bpf-next kernel every 6 hrs. by @likewhatevs in #726
- scx_rusty: fix single dom short-circuit by @frelon in #731
- scx_layered: Add per layer time slices to stats by @minosfuture in #732
- scx_layered: Refactor topology algorithms to a separate module by @minosfuture in #737
- scx_layered: Add per layer weights by @hodgesds in #735
- Replace PID with Task Pointer in Rusty by @likewhatevs in #713
- scx_lavd: split main.bpf.c into multiple files by @multics69 in #736
- scx_bpfland: rework lowlatency mode by @arighi in #741
- scx_layered: Add big cpumask by @hodgesds in #743
- scx_layered: Use idle smt mask for idle selection by @hodgesds in #740
- scx_layered: Improve perf on non topo aware paths by @hodgesds in #745
- Drop journald from libalpn hooks by @sirlucjan in #742
- scx_loader: Add SwitchScheduler methods to DBUS interface by @vnepogodin in #739
- docs: Add Gentoo installation instructions by @hodgesds in #750
- scx_rusty: Fix BPF crash during CPU hotplug by @ryantimwilson in #751
- scx_layered: Update idle topology selection order by @hodgesds in #747
- scx_layered: lighten/reduce nested loops in layered dispatch by @likewhatevs in #746
- scx_layered: Add doc comment to CpuPool by @minosfuture in #754
- layered: cleanup warnings in bpf compilation by @JakeHillion in #757
- scx_layered: Add stress-ng example layer by @hodgesds in #756
- scx_layered: Make stress-ng non exclusive in example by @hodgesds in #760
- scx_layered: fix ci by @likewhatevs in #764
- scx_bpfland: prevent per-CPU DSQ stall with per-CPU kthreads by @arighi in #755
- scx_layered: enable configuring layer iteration when no topo by @likewhatevs in #765
- [rusty] Fix load stats when host is under-utilized by @ryantimwilson in #763
- scx_layered: Update CI to show stats by @hodgesds in #758
- layered: split dispatch into no_topo version by @JakeHillion in #749
- scx_layered: Rename load_adj statistic by @hodgesds in #766
- layered: attempt to work steal from own llc before others by @JakeHillion in #759
- mitosis: Fix build by @dschatzberg in #767
- scx_layered: Fix verifier errors by @hodgesds in #768
- scx_layered: Cleanup debug messages by @hodgesds in #769
- scx_layered: setup matrix job to run key paths of layered through verifier/stress by @likewhatevs in #770
- scx_layered: Refactor topo preemption by @hodgesds in #771
- scx_bpfland: fix cpumask initialization error by @arighi in #772
- scx_layered: Change default DSQ iter algo by @hodgesds in #776
- scx_layered: Cleanup topology preempt path by @hodgesds in #775
- [layered] Implement reverse weight DSQ algorithm by @ryantimwilson in #777
- layered -- make lsp work nice on util include file by @likewhatevs in #782
- layered: make default value for disable_topology dynamic by @JakeHillion in #786
- layered: move configuration into library component by @JakeHillion in #781
- scx_layered: Cleanup non topology path by @hodgesds in #787
- scx_lavd: mitigate the lock holder preemption problem by @multics69 in #779
- scx_rustland_core: use handle_mm_fault kprobe by @arighi in #785
- scx_bpfland: drop per-cpu DSQs by @arighi in #780
- Add bpftrace script to print vtime distributions across DSQs by @hodgesds in #789
- scx_lavd: do not inspect scx_lavd process itself by @multics69 in #790
- scx_lavd: misc updates by @multics69 in #791
- scripts: Add ftrace perfetto helper scripts by @hodgesds in #792
- scripts: Convert sched ftrace helper scripts to python by @arighi in #796
- scx_layered: Add topology integration test by @hodgesds in #795
- scx_layered: Add LLC integration test by @hodgesds in #797
- Update developer guide with Perfetto info by @hodgesds in #798
- scx_layered: Remove layer iteration by @hodgesds in #801
- scx_mitosis: handle enqueue() on !wakeup by @dschatzberg in #799
- Use per-arch vmlinux.h by @minosfuture in #793
- scx_mitosis: Handle pinned tasks by @dschatzberg in #803
- Revert #793 by @htejun in #809
- scx_rustland fixes and improvements by @arighi in #804
- scx_layered: Refactor refresh cpumasks by @hodgesds in #805
- layered: add RandomTopo layer growth algorithm by @JakeHillion in #814
- layered: make disable_topology arg require equals by @JakeHillion in #815
- remove apt fast from ci setup by @likewhatevs in #817
- scx_rustland_core: update documentation about the new API by @arighi in #816
- scx_bpfland: rework lowlatency mode by @arighi in #813
- scx_rusty: Cleanup cpumask casting by @hodgesds in #820
- scx_layered: Fix crash on aarch64 due to unavailable cache id file by @minosfuture in #744
- scx_lavd: add missing reset_lock_futex_boost() by @multics69 in #818
- scx_rustland: Adjust task's vruntime budget based on latency weight by @arighi in #821
- layered: bpf: add layer kind to layer by @JakeHillion in #826
- scx_layered: fix exit_task ctx lookup err by @likewhatevs in #824
- Use per-arch vmlinux.h v2 by @minosfuture in #819
- scx_lavd: misc performance tuning by @multics69 in #822
- scx_layered: Add timer helpers by @hodgesds in #832
- scx_lavd: fix/work around a verifier error by @multics69 in #831
- fix ci errors due to __str update in kfunc signature by @likewhatevs in #834
- ci: enable verbose mode when testing schedulers by @arighi in #833
- ci: enable SCHED_MC in the virtme-ng kernel config by @arighi in #830
- Revert "fix ci errors due to __str update in kfunc signature" by @htejun in #840
- scx_lavd: various optimizations for more consistent performance by @multics69 in #837
- scx_loader: introduce configuration by @vnepogodin in #843
- Set minimal meson version to silent new warnings by @sirlucjan in #839
- Add script for generating per-arch vmlinux.h files by @minosfuture in #829
- add retries to kernel clone step by @likewhatevs in #844
- scx_layered: Add monitor by @hodgesds in #841
- scx_layered: Fix declarations in timer by @hodgesds in #851
- fix lsp to work after multiarch support by @likewhatevs in #850
- scx_lavd: fix uninitialized memory access at comp_preemption_info() by @multics69 in #846
- layered/timers: support verifying on older kernels and fix logic by @JakeHillion in #852
- ci: enable lockdep in the virtme-ng kernel config by @arighi in #853
- scx_layered: Add ...
v1.0.5
What's Changed
- fix/enable rust tests, make build faster by @likewhatevs in #623
- scx_rustland_core: introduce topology awareness by @arighi in #622
- scx_layered: clean up Layer::new layer_growth_algo by @JakeHillion in #624
- scx_lavd: improve greedy ratio calculation and more by @multics69 in #621
- ci: fix vng command to set the right amount of CPUs by @arighi in #627
- release: Add cargo-publish.py by @htejun in #628
- scx_rustland_core: move includes back to the lib section by @arighi in #629
- split integration test execution by @likewhatevs in #632
- build: Use a single top-level rust workspace by @htejun in #635
- enable docs generation and upload by @likewhatevs in #633
- scx_bpfland: use sum_exec_runtime to evaluate task's used time slice by @arighi in #640
- remove dependency on rlimit.rs by @likewhatevs in #638
- migrate ci vm to 24.04 by @likewhatevs in #641
- scx_layered: Fix typo in stats by @samuelnair in #642
- scx_layered: Pass layer spec for core growth algo by @hodgesds in #644
- scx_bpfland: Documentation consistency fix by @anh0516 in #634
- scx_rusty: init domains when calculating averages by @frelon in #645
- lint: enable cargo fmt by @JakeHillion in #643
- scx_layered: Add random layer growth algo by @hodgesds in #651
- update Tumbleweed installation notes by @frelon in #650
- scx_layered: Add topology aware core growth selection by @hodgesds in #649
- scx_layered: Add stats for XNUMA/XLLC migrations by @hodgesds in #648
- scx_lavd: add a short circuit for the case of no turbo core by @multics69 in #653
- scx_lavd: boost the latency-criticality of kernel threads by @multics69 in #654
- scx_bpfland: refine idle CPU selection logic by @arighi in #655
- scx_layered: add round robin growth strategy by @JakeHillion in #652
- scxstats_to_openmetrics: fix format string by @JakeHillion in #657
- scx_rustland_core: improve idle CPU selection API and logic by @arighi in #658
- scx_rustland_core: prevent CI failures by @arighi in #662
- scx_rustland_core: Access the returned value of saturating_sub() by @vax-r in #665
- scx_layered: Refactor match_layer() and implement helper function to access cpumask within bpf_cpumask by @vax-r in #664
- scx_bpfland: Remove the usage of cast_mask in bpfland_enqueue by @vax-r in #663
- scx_lavd: consider waker's CPU when ops.select_cpu() by @multics69 in #669
- scx_layered: Add a hi fallback dsq per llc by @hodgesds in #449
- scx_layered: Add Big/Little core growth algos by @hodgesds in #667
- scx_layered: Add topology aware preemption by @hodgesds in #666
- scx_lavd: find a victim cpu for preemption within task's compute domain by @multics69 in #670
- scx_layered: Add waker stats per layer by @hodgesds in #671
- scx_layered: Cleanup dump format by @hodgesds in #675
- scx_lavd: propagate waker's latency criticality to its wakee by @multics69 in #673
- scx_common_bpf: Append cast_mask() by @vax-r in #679
- add 'continue on error' to stress tests in ci jobs by @likewhatevs in #680
- scx_layered: Restrict preemption to layer cpumask by @hodgesds in #681
- clean up ci/make ci nicer by @likewhatevs in #682
- scx_layered: Make layered idle CPU selection topology aware by @hodgesds in #683
- enable ide's etc. to work on the bpf.c files by @likewhatevs in #668
- scx_rustland_core: fix mm stall by @arighi in #678
- enable build and test outside src dir by @likewhatevs in #685
- scx_loader: Add initial automatic scheduler switching via --monitor-no-dbus by @MitchellAugustin in #676
- scx_utils: Add gpu-topology crate feature by @frelon in #686
- scx_layered: Add layer growth algo to layer bpf config by @hodgesds in #687
- enable bpftrace when using stress tests by @likewhatevs in #688
- run cargo fmt to make ci green by @likewhatevs in #691
- Sync from kernel and re-enable scx_flatcg and scx_pair by @htejun in #692
- Setup "debugging" and misc cleanup by @likewhatevs in #695
- do not cache fast jobs dependencies by @likewhatevs in #697
- scx_layered: Fix idle core selection by @hodgesds in #696
- ci: enable on merge_group action by @JakeHillion in #698
- dev_guide: document cargo fmt by @JakeHillion in #699
- fix artifact names to work with merge queue naming by @likewhatevs in #700
- scx_loader: Add systemd service and on-DBUS launch by @vnepogodin in #693
- scx_lavd: more accurately determine the performance criticality threshold by @multics69 in #702
- scx_lavd: fix two potential bugs by @multics69 in #704
- scx_layered: Fix cache initialization by @hodgesds in #708
- Revert "scx_rustland_core: prevent deadlock with per-CPU DSQs and CPU… by @arighi in #706
- scx_bpfland small fixes and improvements by @arighi in #709
- scx_stats: Implement macro #stat_doc to autogen doc from stat desc by @minosfuture in #703
- scx_loader: Add D-Bus Introspection XML by @vnepogodin in #707
- scx_layered: Fix compiler warnings by @hodgesds in #711
- Add #stat_doc attribute macro to Stats structs by @minosfuture in #712
- Mention wiki in the README by @parttimenerd in #718
- scx_rusty: Delete unused function variable by @vax-r in #717
- scx_lavd: Fix typo by @vax-r in #716
New Contributors
- @likewhatevs made their first contribution in #623
- @JakeHillion made their first contribution in #624
- @samuelnair made their first contribution in #642
- @MitchellAugustin made their first contribution in #676
- @minosfuture made their first contribution in #703
- @parttimenerd made their first contribution in #718
Full Changelog: v1.0.4...v1.0.5
v1.0.4
What's Changed
- scx_layered: Drop SCX_OPS_ENQ_LAST by @htejun in #534
- scx_bpfland: better time slice control by @arighi in #535
- scx-scheds: set scx_bpfland as default scheduler by @sirlucjan in #537
- scx_bpfland: introduce --lowlatency option by @arighi in #536
- scx_layered: Add pid/ppid matches by @hodgesds in #538
- scx_rusty: Convert to scx_stats by @htejun in #539
- scx_bpfland: cpu frequency and energy awareness by @arighi in #540
- scx-scheds: Update scx_bpfland suggested flags by @sirlucjan in #541
- scx_bpfland, scx_lavd: Improve help info a bit by @anh0516 in #543
- scx_lavd: Fix my own formatting error in #543 scx_rusty: help info and README cleanup by @anh0516 in #547
- scx_bpfland: always honor average nvcsw in lowlatency mode by @arighi in #545
- scx_layered: Add layer match for tgid by @hodgesds in #544
- get_clang_ver: Fix regex for LLVM RC Versions by @ptr1337 in #550
- scx_stats, scx_rusty, scx_layered: Implement
--help-stats
by @htejun in #542 - scx_lavd: Drop message about unsupported multi-CXX support by @ptr1337 in #552
- scx_lavd: Switch introspection to use scx_stats by @htejun in #553
- scx_lavd, scx_stats: Remove unnecessary messages by @htejun in #554
- scx_stats: Shorten exported names and add prelude module by @htejun in #555
- scx_bpfland: Use scx_stats by @htejun in #556
- scx_stats: Make StatsServerData::describe_meta() output more readable by @htejun in #557
- scx_rustland_core: user-space framework refactoring by @arighi in #548
- build: Use workspace to group rust sub-projects by @htejun in #559
- scx_bpfland: prevent reading energy profile if not available by @arighi in #561
- scx_utils: Add retryable errors by @hodgesds in #549
- scx_lavd: move time slice calculation to ops.enqueue() and ops.select_cpu() and more by @multics69 in #558
- version-tool: Avoid exception by skipping workspace cargo files by @htejun in #562
- scx_rustland_core: small core design improvements by @arighi in #568
- scx_layered: Update help for tgid matching by @hodgesds in #564
- scx_lavd: prioritize the turbo boost-able cores by @multics69 in #566
- scx_lavd: make a loop easier to correctly verify by @multics69 in #571
- scx_bpfland: fix turbo boost domain nullifying primary domain limits by @arighi in #572
- scx_layered: Clean up in-code documentation; add commas for consistency by @anh0516 in #569
- scx_utils: Add Big/Little core logic to Topology by @hodgesds in #570
- scx_bpfland: rely on Topology to classify CPU types by @arighi in #574
- scx_lavd: Add power mode clarification to --no-prefer-turbo-core by @anh0516 in #576
- scx_utils: Add GPU topology by @hodgesds in #575
- scx_layered: Make verification easier on older kernels by @hodgesds in #579
- scx_layered: Add per layer timeslice by @hodgesds in #578
- Layered docs by @hodgesds in #580
- scx_layered: Update docs for layer slice setting by @hodgesds in #581
- scx_bpfland: enhanced task affinity by @arighi in #577
- ci: Remove veristat diff workflow by @hodgesds in #586
- scx_utils: Add cores helper to node topology by @hodgesds in #585
- scx_layered: Add layer growth config by @hodgesds in #582
- scx_lavd: automatically determine power mode and more by @multics69 in #584
- scx_bpfland: always rely on prev_cpu with single-CPU tasks by @arighi in #583
- scx_rustland: convert to scx_stats by @arighi in #590
- scx_lavd: introduce "autopilot" mode and misc. optimization & bug fix by @multics69 in #591
- scx_layered: Fix layer timeslice not being applied by @hodgesds in #592
- scx_bpfland: directly dispatch only per-cpu kthreads with local_kthreads by @arighi in #593
- scx_rustland_core: bump up major version to 2.0.0 by @arighi in #594
- scx_lavd: improve the autopilot mode by @multics69 in #595
- scx_lavd: misc updates (verifier, README, monitor option name, and micro-optimization) by @multics69 in #597
- scx_stats: Drop sched-ext namespace by @sirlucjan in #573
- scx_rustland: aggressively prioritize interactive tasks by @arighi in #599
- scx_helpers: Add pid namespace helpers by @hodgesds in #601
- ci: bump up virtme-ng memory size from 1GB to 2GB by @arighi in #602
- scx_rustland_core: fix pcpu kthread stall by @arighi in #603
- ci: allow parallel builds with meson by @arighi in #604
- scx_loader: Add scheduler loader via system DBUS interface by @vnepogodin in #565
- meson: Remove unused meson.build and add targeted builds for libs by @htejun in #606
- scx_bpfland: improve cpufreq awareness by @arighi in #600
- scx_rustland_core: avoid critical failures due by missing task context by @arighi in #605
- openrc: drop separate logs by @sirlucjan in #607
- scx_layered: Fix stats formatting by @hodgesds in #614
- scx_bpfland: enable "auto" mode by default by @arighi in #615
- scx-scheds: update bpflands suggested flags by @sirlucjan in #617
- scx_bpfland: optimize producer/consumer workloads by @arighi in #618
- scx_layered: Fix stats typo by @hodgesds in #619
- scx_lavd: add --monitor flag and two micro-optimizations by @multics69 in #612
- scx_stats: Add proper logs for LAVD by @sirlucjan in #613
- version: v1.0.4 by @htejun in #620
New Contributors
Full Changelog: v1.0.3...v1.0.4
v1.0.3
What's Changed
- rust Updated libbpf-rs & libbpf-cargo to 0.24 by @danielocfb in #436
- versions: Synchronize crate dependency versions by @htejun in #481
- README: update list of build dependencies for Ubuntu by @arighi in #482
- docs: Add developer guide by @hodgesds in #487
- meson: Add veristat script by @hodgesds in #488
- scx_rusty: Make layer matching a global function by @hodgesds in #477
- README: Reflect office hours change of day by @gghh in #492
- scx_rusty: Fix logical error when filtering tasks by @vax-r in #486
- lavd: make LAVD core-type (AMP) aware by @multics69 in #489
- scx_lavd: upgrade nix package from 0.28.0 to 0.29.0 by @multics69 in #493
- scx_bpfland: primary domain by @arighi in #491
- scx: Remove unused variables, imports and functions by @vax-r in #484
- scx_lavd: Build fix by @htejun in #495
- scx_stat: Initial commit by @htejun in #496
- scx_layered: Update nr_cpus when resizing layers by @hodgesds in #497
- scx_stats: Add package metadata and some documentation by @htejun in #498
- scx_stats: Misc changes to sync dep versions and publish on crates.io by @htejun in #499
- scx_stats, scx_layered: Add
om_prefix
attribute and fix s/stat/stats/ stragglers by @htejun in #500 - scx_stats: Refine scx_stats and implement scxstats_to_openmetrics.py by @htejun in #502
- scheds/rust: Include Cargo.lock in the repo by @htejun in #503
- scx_rusty: Fix typo by @vax-r in #504
- INSTALL: Update Fedora installation docs by @1Naim in #501
- scx_stats: Add support for no-value user attributes and a bunch of ot… by @htejun in #505
- meson: Add github action to run veristat by @hodgesds in #494
- ci: Fix veristat pull request workflow by @hodgesds in #513
- docs: Update developer guide by @hodgesds in #512
- scx_layered: Fix uninitialized variable by @vax-r in #506
- scx_stats, scx_layered: Implement independent stats client sessions by @htejun in #514
- scx_stats/scripts/scxstats_to_openmetrics: Retry connection by @htejun in #516
- scx_layered: Fix verification failure by @htejun in #517
- scx_layered: Use topology for core selection by @hodgesds in #510
- scx_lavd: revise FlatTopology prettier by @multics69 in #507
- scx_lavd: fix a potential watchdog timeout error at multi-NUMA/CCX platforms by @multics69 in #508
- scx_lavd: add power profile options: --performance, --balanced, --powersave by @multics69 in #511
- ci: fix veristat for PRs by @hodgesds in #515
- ci: fix merge veristat cache generation by @hodgesds in #519
- ci: Fix cache directory by @hodgesds in #520
- scx_bpfland: topology awareness by @arighi in #509
- scx_bpfland: use scx_utils::Cpumask by @arighi in #522
- openrc: Add logrotate support for openrc systems by @Kawanaao in #523
- scx_layered: Add
--run-example
and enable CI testing by @htejun in #518 - scx_bpfland: allow to completely disable interactive classification by @arighi in #525
- scx_utils::cpumask,topology: Misc updates by @htejun in #527
- scx_rusty: Misc updates by @htejun in #526
- scx_layered: Fix core selection by @hodgesds in #524
- scx_bpfland: properly classify Intel Turbo Boost CPUs by @arighi in #528
- scx_utils::topology: Use lazy_static instead of LazyLock by @htejun in #530
- scx_bpfland: drop unused variable by @arighi in #531
- Version: v1.0.3 by @htejun in #532
- Version: Cargo.lock by @htejun in #533
New Contributors
Full Changelog: v1.0.2...v1.0.3
v1.0.2
What's Changed
- scx_rusty: Pre-check task domain mask with pull domain mask by @vax-r in #425
- scx_utils: Add LLC id to CPU by @hodgesds in #434
- scx_rusty: Add mempolicy checks to rusty by @hodgesds in #364
- scx_bpfland: introduce dynamic nvcsw threshold by @arighi in #439
- scx_rusty: Remove skip_while in find_first_candidate by @vax-r in #435
- scx_layered: Add separate module for metrics by @hodgesds in #441
- layered: Don't dispatch to LO_FALLBACK_DSQ by @Byte-Lab in #442
- scx_lavd: overhaul the virtual deadline algorithm by @multics69 in #443
- scx_bpfland: adjust task time slice as a function of waiting tasks by @arighi in #444
- scx_rusty: Simplify LoadBalancer::populate_tasks_by_load() by @danielocfb in #445
- scx_layered: Add topology awareness for NUMA nodes and LLCs by @hodgesds in #446
- scx_layered: Add user and group layers by @hodgesds in #447
- rusty: Rework deadline as a signed sum by @Byte-Lab in #309
- Revert "rusty: Rework deadline as a signed sum" by @Byte-Lab in #450
- scx_bpfland: allow to specify negative values with --slice-us-lag by @arighi in #451
- lavd_lavd: initial support for AMP (asynmmetric multi-processor) architecture by @multics69 in #452
- scx_lavd: fix div by zero error in some installations by @multics69 in #456
- scx_lavd: support two-level scheduling for heavy-loaded cases (like bpfland) by @multics69 in #457
- scx_lavd: set correct size for cpu_ctx_stor by @arighi in #458
- scx_layered: Add per cpu layer iterator offset by @hodgesds in #459
- scx_lavd: misc updates by @multics69 in #460
- scx_layered: Fix enqueue fallback CPU selection by @hodgesds in #461
- scx_layered: Add support for disabling topology awareness by @hodgesds in #465
- scx_bpfland: always re-align task's vruntime to the global vruntime by @arighi in #463
- scripts: Add dsq latency script by @hodgesds in #466
- scx_lavd: improve the calculation of ineligibility duration by @multics69 in #464
- scx_lavd: Make FlatTopology::new() a bit prettier by @htejun in #467
- scx_rustland_core: fix missing import (timespec) by @arighi in #470
- scx_rustland_core alloc: Replaced RefCell with Mutex by @Kawanaao in #473
- scx_rustland_core: add support for musl by @arighi in #471
- scx_layered: Fix cred declaration by @hodgesds in #472
- scx_utils: Fix build args by @hodgesds in #474
- scx_rustland refactoring by @arighi in #468
- Add a tool to manage versions and synchronize crate dependency versions by @htejun in #478
- version-tool: Suppress spurious dependency version mismatch warning by @htejun in #479
- Bump versions for 1.0.2 release by @htejun in #480
New Contributors
Full Changelog: v1.0.1...v1.0.2
v1.0.1
What's Changed
- meson: fix RUSTFLAGS being appended incorrectly by @vnepogodin in #420
- scx_lavd: improve time slice and waker freq calculation by @multics69 in #421
- Sync to upstream kernel and bump to 1.0 by @htejun in #424
- systemd: Drop temporarily disabled schedulers from service by @ptr1337 in #428
- install_user_scheds: Skip packaging of scx_mitosis by @ptr1337 in #427
- ci: Use latest upstream kernel and exclude scx_flatcg and scx_pair from testing by @arighi in #431
- scx_bpfland: small improvements by @arighi in #429
- scx_utils: Display the tag value for nested counters in log_recorder by @jfernandez in #432
- Bump versions for 1.0.1 release by @htejun in #433
Full Changelog: v1.0.0...v1.0.1
v1.0.0
Notes
- Rebased on top of korg
sched_ext/for-6.11
branch which is expected to be merged during the upcoming merge window. - cgroup support temporarily dropped.
scx_flatcg
,scx_pair
andscx_mitosis
are disabled for the time being. - DSQ iterator size changed. Schedulers that use DSQ iters built against earlier kernels won't work.
- This is the new compat baseline.
What's Changed
- rusty: Use cpumask kfuncs in cpumask_intersects_domain() by @Byte-Lab in #328
- scx: Unify loading and running boilerplate across rust schedulers by @htejun in #329
- scx_rustland_core: add extra debugging info to dispatch_task() by @arighi in #331
- scx.service: start service after graphical target by @sirlucjan in #332
- scx_rustland: introduce virtual time slice by @arighi in #333
- scx: update /etc/default/scx sample flags by @sirlucjan in #335
- scx_rustland: never use a time slice that exceeds the default value by @arighi in #336
- Bring rust scheduler's compat support to parity with C by @htejun in #337
- scx_lavd: core compaction for low power consumption by @multics69 in #338
- scx_layered: Improve yield, preemption and other behaviors by @htejun in #340
- uei: Pass skel to RESIZE_ARRAY() by @Byte-Lab in #344
- scx_utils: Add CPU freq transition latency by @hodgesds in #343
- scx_rusty: Elimate data races possibility for domain min_vruntime by @vax-r in #341
- scheds: Add scx_mitosis scheduler by @dschatzberg in #339
- mitosis: Fix build by @dschatzberg in #348
- Support LLVM_VERSION_SUFFIX in clang version parsing regex by @vimproved in #350
- scx_lavd: properly calculate task's runtime after suspend/resume by @multics69 in #349
- common: Add css iter forward declares by @dschatzberg in #352
- scheds: Add scx_mitosis scheduler to /etc/default/scx by @sirlucjan in #346
- scx_lavd: improve CPU frequency scaling by @multics69 in #351
- scx_lavd: add the design of core compaction by @multics69 in #355
- scx.service: allow overriding scx variables by @Pprighi in #356
- scx.service: document scx override variables by @Pprighi in #357
- README: Add information about restoring default values by @sirlucjan in #358
- scx_rustland: prevent starvation by @arighi in #345
- scx_rlfifo: improve code usability for experiments by @arighi in #360
- common.bpf.h: Cosmetic changes by @htejun in #359
- scx_rustland_core: fix potential race in dispatch_task() by @arighi in #361
- Strip compat support by @htejun in #363
- scx_utils: Fix typos by @vax-r in #365
- rusty: Clean up some logic in rusty by @Byte-Lab in #347
- rusty: Make dom_xfer_task() a global prog by @Byte-Lab in #366
- scx/compat.bpf.h: Fix __COMPAT_scx_bpf_consume_task() and improve scx_qmap example by @htejun in #367
- scx_rusty: Refactor lookup operation for new_domc in task_set_domain by @vax-r in #362
- scx_lavd: misc performance tuning and code clean up by @multics69 in #368
- scx_lavd: properly check for idle CPUs in pick_cpu() by @arighi in #369
- scx_utils: Utilize Entry API for BTreeMap insertion by @vax-r in #372
- scx_lavd: Reuse can_task1_kick_task2 by @vax-r in #373
- scx_rustland_core: include buddy-alloc and refactor allocator code by @arighi in #374
- Add stress-ng to scheduler tests by @hodgesds in #292
- Simplifying pacman-hooks by @sirlucjan in #378
- Revert "scx_flatcg: Keep cgroup rb nodes stashed" by @htejun in #375
- Add topo.nr_cpu_ids() to Topology crate by @Byte-Lab in #379
- rusty: Integrate stats with the metrics framework by @jfernandez in #377
- scx_lavd: revising tunables for less-preemptive games by @multics69 in #383
- scx_rusty: Refactor ridx assignment in populate_tasks_by_load by @vax-r in #382
- scx_rusty: Pull domain status check by @vax-r in #381
- README: add a link to Changwoo's blog post on scx (part 2) by @multics69 in #385
- scx_lavd: revising tunables to reduce micro-stutters by @multics69 in #386
- scx_rustland_core: smooth performance by @arighi in #380
- Add After=graphical.target into service by @sirlucjan in #387
- scx_utils: Add log_recorder module for metrics-rs by @jfernandez in #384
- Add build-id to build process by @Byte-Lab in #371
- Revert "Add After=graphical.target into service" by @sirlucjan in #390
- scx_lavd: tweaks to avoid fork starvation by @multics69 in #391
- Revert "scx_rusty: Refactor ridx assignment in populate_tasks_by_load" by @Byte-Lab in #393
- scx_utils: clarify error about missing CONFIG_DEBUG_INFO_BTF by @arighi in #394
- scx_lavd: optimization for communicaiton-intensive workloads and heavily-overloaded cases by @multics69 in #395
- Update libbpf commit hash by @otteryc in #396
- meson: restore previous libbpf version and update bpftool by @arighi in #400
- meson: run cargo build in release mode when using plain buildtype by @vnepogodin in #401
- meson: check if commit exists in remote git repos by @arighi in #402
- meson: introduce serialize build option by @arighi in #399
- scheds: introduce scx_bpfland by @arighi in #388
- scx_bpfland: properly integrate with meson build by @arighi in #403
- scheds: Add scx_bpfland scheduler to /etc/default/scx by @sirlucjan in #404
- scx_rusty: fix stats map initialization by @arighi in #407
- mitosis: Update synchronization by @dschatzberg in #389
- scx_bpfland: support CPU hotplugging by @arighi in #408
- scx_bpfland: use the right cpumask to find any idle CPU by @arighi in #409
- scx_rustland_core: Remove unused variable by @vax-r in #413
- scx_bpfland: enhance performance consistency and predictability by @arighi in #410
- scx_flatcg: Fix_typo by @vax-r in #411
- sched_utils: Add log recorder format customization by @jfernandez in #397
- scx_flatcg: Make good use of __sync_fetch_and_sub() by @vax-r in #412
- scx_bpfland: additional stats and output improvements by @arighi in #415
- bpfland: small improvements by @arighi in #416
- scx_bpfland: mitigations and additional statistics by @arighi in #418
- scx_lavd: improve virtual deadline and current clock handling by @multics69 in #417
New Contributors
- @vimproved made their first contribution in #350
- @Pprighi made their first contribution in #356
- @otteryc made their first contribution in #396
Full Changelog: v0.1.10...v1.0.0
v0.1.10
What's Changed
- Sync to the latest kernel by @htejun in #253
- ci: Also include gcc-multilib to fix CI by @Byte-Lab in #256
- scx_rustland_core: relax compact unevictable memory constraint by @arighi in #255
- scx_rustland: bump up version to 0.0.6 by @arighi in #257
- Fix issue when CDPATH contains libbpf directory by @hodgesds in #259
- Update README with instructions for building against local libbpf by @hodgesds in #258
- scx_rusty: load balancing fixes by @danieljordan10 in #260
- Update README with Slack invite link by @hodgesds in #262
- Make scx_rusty interactive by @Byte-Lab in #261
- ci: enable kvm support in the github workflow by @arighi in #265
- common: Pull bpf_log2l() into helper function header by @Byte-Lab in #264
- INSTALL: Add instructions for Nix by @ptr1337 in #267
- README: Add missing link to Nix Install instructions by @ptr1337 in #268
- scx_lavd: support CPU frequency scaling by @multics69 in #263
- rusty: Support CPU hotplug onlining by @Byte-Lab in #266
- Fix typo by @vax-r in #271
- scx_rustland_core: use a BPF_MAP_TYPE_USER_RINGBUF to dispatch tasks by @arighi in #270
- systemd-service: Don't restart always by @ptr1337 in #273
- scx_lavd: support yield-based preemption by @multics69 in #274
- scx_utils: report an explicit error when another scheduler is running by @arighi in #276
- INSTALL.md: Add info about debug kernel on arch based by @ptr1337 in #277
- topology: Support CONFIG_NUMA=n in Topology crate by @Byte-Lab in #278
- rustland: reduce scheduling overhead by @arighi in #272
- scx_rustland: maximize CPU utilization by @arighi in #279
- scx_rustland: properly support offline CPUs by @arighi in #281
- Add pacman hooks for systemd by @sirlucjan in #282
- scx_lavd: add non-functional misc updates by @multics69 in #283
- Fix typo by @vax-r in #284
- scripts: Add script to measure runqlat for a process by @jfernandez in #285
- scripts: whitespace cleanup for process_runqlat.bt by @jfernandez in #288
- journal.conf: increase the size of the logs and drop unneeded options by @sirlucjan in #287
- Avoid redundant substraction in rsigmoid_u64 by @vax-r in #290
- scx_rustland: introduce low power mode by @arighi in #286
- Add remaining hotplug pieces by @Byte-Lab in #289
- Add missing skel.attach() calls by @htejun in #293
- Sync from kernel (73f4013eb1eb) by @htejun in #291
- scx_lavd: fix inconsistent indentation in main.bpf.c by @multics69 in #295
- Fix warnings by @Byte-Lab in #294
- meson: fix a build error for libbpf at release build by @multics69 in #297
- Build: Make -Werror non-default by @Byte-Lab in #302
- scx_simple: re-add __COMPAT_scx_bpf_switch_all() by @arighi in #298
- simple: Add comment explaining use of SHARED_DSQ by @Byte-Lab in #303
- meson: fix a build error for libbpf at release build by @sirlucjan in #301
- Add pacman hooks for openrc by @sirlucjan in #300
- scx_rustland: cleanups by @arighi in #299
- scx_flatcg: Correct content error in comment by @vax-r in #304
- scx_rustland: introduce fifo mode by @arighi in #305
- scx_rustland: fix fifo mode support by @arighi in #306
- scx_rustland: improve audio workload and performance predictability by @arighi in #307
- Reduce MAX_ENQUEUED_TASKS to fit percpu allocator by @RinHizakura in #310
- Update INSTALL.md with fedora c scheds info by @jordalgo in #311
- scx_central: Provide backward compability by @vax-r in #314
- scx_lavd: Enforce memory barrier in flip_sys_cpu_util by @vax-r in #318
- Add openSUSE installation notes by @frelon in #316
- Revert "scx_lavd: Enforce memory barrier in flip_sys_cpu_util" by @multics69 in #321
- scx_layered: Improve affn_viol handling and implement dump method by @htejun in #312
- scx_rustland_core: fix build error with musl by @arighi in #320
- Document the needed BPF kernel config by @aruhier in #323
- scx_lavd: Adding READ_ONCE()/WRITE_ONCE() macros by @vax-r in #322
- README: Adding dependencies to allow compilation by @sirlucjan in #326
- scx_rustland: get rid of --builtin-idle option by @arighi in #325
- Bump versions for a release by @htejun in #327
New Contributors
- @danieljordan10 made their first contribution in #260
- @ptr1337 made their first contribution in #267
- @vax-r made their first contribution in #271
- @jfernandez made their first contribution in #285
- @RinHizakura made their first contribution in #310
- @frelon made their first contribution in #316
- @aruhier made their first contribution in #323
Full Changelog: v0.1.9...v0.1.10