Releases: sched-ext/scx
Releases · 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
v0.1.9
What's Changed
- scx_lavd: Add .gitignore by @htejun in #215
- systemd: Move services to separate directory by @sirlucjan in #216
- scx_rustland_core: separate crate source code from assets by @arighi in #217
- scx_rustland_core: bump up version to 0.2 by @arighi in #219
- Gracefully handle hotplug in scx_rusty by @Byte-Lab in #218
- meson: Add missing path to libbpf_local_h. by @ThinkerYzu in #220
- meson.build: Update libbpf and bpftool version requirements by @htejun in #221
- Sync libbpf_h and libbpf_local_h by @jordalgo in #222
- scx_lavd: support preemption (in some scenarios) by @multics69 in #224
- Fix error typo by @dschatzberg in #225
- rusty: Allocate DSQ on appropriate NUMA node by @Byte-Lab in #226
- Small rusty cleanup by @Byte-Lab in #228
- rusty: Remove explicit padding by @Byte-Lab in #229
- README: update additional resources by @arighi in #230
- simple: Invoke __COMPAT_scx_bpf_switch_all(); by @Byte-Lab in #231
- lavd: Fix a few typos by @Byte-Lab in #232
- layered: Fix init_task by @Byte-Lab in #233
- scheds-rust: build rust schedulers in sequence by @takase1121 in #236
- rustland: enable preemption by @arighi in #235
- layered: Add ability to match by process name by @Byte-Lab in #240
- topology: Don't allocate on calls to span() by @Byte-Lab in #241
- Add CPU frequency related helpers and extend scx_layered by @hodgesds in #239
- layered: Make layered backwards compat with cpufreq by @Byte-Lab in #243
- scx_rustland: reduce overhead by caching host topology by @arighi in #238
- scx_lavd: fix copyright information by @multics69 in #245
- scx_lavd: use c_char consistently by @arighi in #246
- rustland: bump up version by @arighi in #248
- scx-utils: bump up version to 0.8.0 by @arighi in #249
- scx_lavd: always inline submit_task_ctx to make the verifier happy by @multics69 in #247
- scx_lavd: replesih time slice at ops.running() only when necessary by @multics69 in #250
- Bump versions to prepare for a release by @htejun in #252
New Contributors
- @ThinkerYzu made their first contribution in #220
- @takase1121 made their first contribution in #236
- @hodgesds made their first contribution in #239
Full Changelog: v0.1.8...v0.1.9
v0.1.8
What's Changed
- README: drop reference to old ABI /sys/kernel/debug/sched/ext by @arighi in #140
- scx_rustland: improve kernel/user-space communication by @arighi in #142
- scx_rustland: prevent misaligned pointer dereference by @arighi in #144
- rust: Add topology module to utils crate by @Byte-Lab in #143
- scx_rustland: additional comand line options by @arighi in #145
- Add libbpf logging to rust schedulers by @jordalgo in #141
- scx: Demote panic! to warn! in topology crate by @Byte-Lab in #146
- layered: Fix static configuration, and dispatch for Grouped layers by @Byte-Lab in #148
- Refresh after attach by @Byte-Lab in #150
- scx_layered: Add MATCH_NICE_EQUALS match kind by @davemarchevsky in #149
- Add cpumask.rs crate by @Byte-Lab in #152
- Topology refactor by @Byte-Lab in #154
- scheds/sync-to-kernel.sh: Warn and skip if destination file is missing instead of failing by @htejun in #156
- scx_rustland: cpu topology refactoring by @Byte-Lab in #155
- common: Cosmetic change for consistency by @htejun in #157
- sync-to-kernel.sh: Sync scx_central and scx_flatcg by @htejun in #158
- ci: eclude scx_qmap and scx_userland from testing by @arighi in #160
- Gate cargo build options behind 'enable_rust' by @jordalgo in #162
- Add new infeasible.rs crate by @Byte-Lab in #159
- Introduce scx_rustland_core: a generic layer to implement user-space schedulers in Rust by @arighi in #161
- scx: update /etc/default/scx by @sirlucjan in #164
- build: limit the maximum amount of parallel cargo build by @arighi in #165
- Add libbpf as a submodule by @jordalgo in #163
- Revert "Merge pull request #163 from jordalgo/libbpf-submodule" by @htejun in #166
- Revert "Merge pull request #165 from sched-ext/reduce-rust-build-load" by @htejun in #167
- Add libbpf as a submodule (take 2) by @jordalgo in #168
- scx_rustland_core: API improvements by @arighi in #169
- meson-scripts/build_libbpf: Accommodate meson setting CC to "ccache $COMPILER" by @htejun in #170
- scx_rlfifo: warn user about performance by @arighi in #173
- Always build libbpf as a PIE by @jordalgo in #172
- Libbpf - add BUILD_STATIC_ONLY flag by @jordalgo in #174
- [trivial] docs: Update rhone link by @Byte-Lab in #175
- Remove libbpf as a submodule by @jordalgo in #177
- Update README.md by @htejun in #182
- scx_rustland_core: use new consume_raw() libbpf-rs API by @arighi in #180
- scx_rustland: interactive tuning by @arighi in #181
- Revert "scx_rustland_core: use new consume_raw() libbpf-rs API" by @arighi in #183
- Fetch and build bpftool by default by @jordalgo in #179
- rusty: Implement NUMA-aware load balancing by @Byte-Lab in #178
- scx_flatcg: Keep cgroup rb nodes stashed by @davemarchevsky in #33
- scx_layered: Implement layer properties
exclusive
andmin_exec_us
by @htejun in #185 - scx_layered: Make config json assume default vaules for unspecified fields by @htejun in #187
- Better parsing for clang version by @leitao in #190
- scx_rustland: mitigate sub-optimal performance with offline CPUs by @arighi in #189
- rusty: Account for disabled but offline CPUs by @Byte-Lab in #191
- topology: support single CPU systems by @arighi in #188
- scx_lavd: add LAVD (Latency-criticality Aware Virtual Deadline) scheduler by @multics69 in #192
- scx: update /etc/default/scx by @sirlucjan in #193
- scx_lavd: addressed comments from PR #192 by @multics69 in #194
- topology: Fall back to cache 0 by @Byte-Lab in #196
- layered: Make helper functions static by @Byte-Lab in #198
- scx_lavd: improve virtual deadline calculation by @multics69 in #197
- layered: Use TLS map instead of hash map by @Byte-Lab in #200
- scx_lavd: Clean up task state transition tracking by @htejun in #199
- scx_lavd: fix merge conflicts between PR 197 and 199 by @multics69 in #201
- scx_lavd: directly accumulate task's runtimes for consecutive runnings by @multics69 in #204
- rusty: Check LOCAL_DSQ length for WAKE_SYNC by @Byte-Lab in #206
- scx: Apply API updates from sched_ext by @htejun in #207
- Update cachyos-keyring by @sirlucjan in #208
- Update Arch install instruction in README.md by @htejun in #209
- Add install instructions for Fedora by @jordalgo in #210
- Doc & build: Warn about sccache by @htejun in #212
- openrc init support by @nycko123 in #211
- ci: make test build more robust by @arighi in #213
- scx_rustland_core: re-introduce consume_raw() libbpf-rs API by @arighi in #214
New Contributors
- @davemarchevsky made their first contribution in #149
- @leitao made their first contribution in #190
- @nycko123 made their first contribution in #211
Full Changelog: v0.1.7...v0.1.8