scx-upstream/meson-scripts
Andrea Righi 678b10133d scheds: introduce scx_flash
Introduce scx_flash (Fair Latency-Aware ScHeduler), a scheduler that
focuses on ensuring fairness among tasks and performance predictability.

This scheduler is introduced as a replacement of the "lowlatency" mode
in scx_bpfland, that has been dropped in commit 78101e4 ("scx_bpfland:
drop lowlatency mode and the priority DSQ").

scx_flash operates based on an EDF (Earliest Deadline First) policy,
where each task is assigned a latency weight. This weight is adjusted
dynamically, influenced by the task's static weight and how often it
releases the CPU before its full assigned time slice is used: tasks that
release the CPU early receive a higher latency weight, granting them
a higher priority over tasks that fully use their time slice.

The combination of dynamic latency weights and EDF scheduling ensures
responsive and stable performance, even in overcommitted systems, making
the scheduler particularly well-suited for latency-sensitive workloads,
such as multimedia or real-time audio processing.

Tested-by: Peter Jung <ptr1337@cachyos.org>
Tested-by: Piotr Gorski <piotrgorski@cachyos.org>
Signed-off-by: Andrea Righi <arighi@nvidia.com>
2024-11-16 14:49:25 +01:00
..
bpftool_build_skel scx: Initial repo setup and import of example schedulers from kernel tree 2023-11-27 14:47:04 -10:00
bpftool_dummy.c Fetch and build bpftool by default 2024-03-11 10:00:01 -07:00
build_bpftool Doc & build: Warn about sccache 2024-04-03 10:18:45 -10:00
build_libbpf Remove libbpf as a submodule 2024-03-07 18:31:09 -08:00
cargo_fetch Support offline compilation 2023-12-08 08:45:44 -10:00
cc_cflags_probe.c Add libbpf as a submodule 2024-03-01 12:39:35 -08:00
fetch_bpftool meson: check if commit exists in remote git repos 2024-06-28 15:16:56 +02:00
fetch_libbpf meson: check if commit exists in remote git repos 2024-06-28 15:16:56 +02:00
get_bpftool_ver meson.build: Update libbpf and bpftool version requirements 2024-04-04 13:16:08 -10:00
get_clang_ver get_clang_ver: Fix regex for LLVM RC Versions 2024-08-25 00:49:00 +02:00
get_sys_incls scx: Initial repo setup and import of example schedulers from kernel tree 2023-11-27 14:47:04 -10:00
install_rust_user_scheds build: Use a single top-level rust workspace 2024-09-08 14:23:48 -10:00
run_stress_tests setup matrix job to run key paths of layered through verifier/stress test 2024-10-09 21:09:41 -04:00
stress_tests.ini scheds: introduce scx_flash 2024-11-16 14:49:25 +01:00
test_sched ci: enable verbose mode when testing schedulers 2024-10-23 09:29:54 +02:00
veristat Setup "debugging" and misc cleanup (#695) 2024-09-26 11:11:10 -04:00
veristat_diff split build and test jobs 2024-09-08 02:54:24 -04:00