scx/scheds/rust
Andrea Righi 6a2285398d scx_bpfland: introduce --lowlatency option
Introduce the new `--lowlatency` option, which enables switching between
the default pure vruntime-based scheduling (more optimized for server
workloads) and a deadline-based scheduling (better suited for
low-latency workloads).

When the low-latency mode is activated, a task's deadline is calculated
as its vruntime, adjusted by a bonus proportional to the task's average
number of voluntary context switches (the more voluntary context
switches, the shorter the deadline).

This feature enhances the prioritization of interactive tasks even more,
proportionally to their average voluntary context switches, also within
the two main global queues (priority / shared) and it helps to maintain
interactive workloads always responsive, even in presence of heavy
non-interactive background work.

Low-latency mode allows to prevent audio cracking even in presence of a
large amount of short-lived tasks with pseudo-interactive behavior (i.e,
hackbench) and it enables achieving approximately a +33% average
frames-per-second (FPS) in the typical "gaming while building the
kernel" benchmark.

However, it can also amplify the de-prioritization of CPU-intensive
tasks, making this option more suitable for specific low-latency
scenarios. Therefore the low-latency mode is disabled by default and it
can only be enabled via the `--lowlatency` option.

Tested-by: Piotr Gorski (piotrgorski@cachyos.org)
Signed-off-by: Andrea Righi <andrea.righi@linux.dev>
2024-08-22 13:26:19 +02:00
..
scx_bpfland scx_bpfland: introduce --lowlatency option 2024-08-22 13:26:19 +02:00
scx_lavd Version: Cargo.lock 2024-08-21 06:45:19 -10:00
scx_layered scx_layered: Drop SCX_OPS_ENQ_LAST 2024-08-21 13:13:59 -10:00
scx_mitosis Version: v1.0.3 2024-08-21 06:42:11 -10:00
scx_rlfifo Version: Cargo.lock 2024-08-21 06:45:19 -10:00
scx_rustland Version: Cargo.lock 2024-08-21 06:45:19 -10:00
scx_rusty Version: Cargo.lock 2024-08-21 06:45:19 -10:00
meson.build Sync from kernel - 1edab907b57d 2024-07-12 11:08:41 -10:00
README.md scheds: introduce scx_bpfland 2024-06-27 17:28:42 +02:00

RUST SCHEDULERS

Introduction

This directory contains schedulers with user space rust components.

The README in each scheduler directory provides some background and describes the types of workloads or scenarios they're designed to accommodate. For more details on any of these schedulers, please see the header comment in their main.rs or *.bpf.c files.

Schedulers