scx/scheds/rust
Andrea Righi 9a29547e5b scx_bpfland: rework lowlatency mode
In lowlatency mode (option --lowlatency) tasks are ordered using a
deadline that is evaluated as the vruntime minus a certain "bonus",
determined in function of the max time slice and the average amount of
voluntary context switches, to amplify the priority boost of the tasks
that are voluntarily releasing the CPU (which are typically
interactive).

However, this method can be extremely unfair in some cases: tasks with
short bursts of voluntary context switches may receive a huge priority
boost, making the rest of the system almost unresponsive (see massive
hackbench stress tests for example).

To prevent this rework the task's deadline logic to use the vruntime and
a "deadline component" that is a function of the average used time
slice, scaled using a dynamic task priority (evaluated as the static
task priority and the its average amount of voluntary context switches).

This logic seems to prevent excessive prioritization of tasks performing
short intensive bursts of voluntary context switches.

It also makes lowlatency mode in scx_bpfland (somehow) more similar to
the deadline logic used by scx_rusty.

Signed-off-by: Andrea Righi <andrea.righi@linux.dev>
2024-10-05 17:44:09 +02:00
..
scx_bpfland scx_bpfland: rework lowlatency mode 2024-10-05 17:44:09 +02:00
scx_lavd scx_lavd: split main.bpf.c into multiple files 2024-10-05 00:25:40 +09:00
scx_layered scx_layered: Add better debug output of iter algo 2024-10-04 11:36:36 -07:00
scx_mitosis version: v1.0.5 2024-10-02 08:34:57 -10:00
scx_rlfifo version: v1.0.5 2024-10-02 08:34:57 -10:00
scx_rustland version: v1.0.5 2024-10-02 08:34:57 -10:00
scx_rusty Replace PID with Task Pointer in Rusty 2024-10-04 18:06:37 -04:00
.gitignore build: Use workspace to group rust sub-projects 2024-08-25 00:47:58 -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