scx/scheds/rust
Andrea Righi cfe2ed063d scx_bpfland: time-based starvation prevention
Tasks are consumed from various DSQs in the following order:

  per-CPU DSQs => priority DSQ => shared DSQ

Tasks in the shared DSQ may be starved by those in the priority DSQ,
which in turn may be starved by tasks dispatched to any per-CPU DSQ.

To mitigate this, record the timestamp of the last task scheduling event
both from the priority DSQ and the shared DSQ.

If the starvation threshold is exceeded without consuming a task, the
scheduler will be forced to consume a task from the corresponding DSQ.

The starvation threshold can be adjusted using the --starvation-thresh
command line parameter (default is 5ms).

Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
2024-07-04 10:52:39 +02:00
..
scx_bpfland scx_bpfland: time-based starvation prevention 2024-07-04 10:52:39 +02:00
scx_lavd meson: introduce serialize build option 2024-06-28 10:17:37 +02:00
scx_layered meson: introduce serialize build option 2024-06-28 10:17:37 +02:00
scx_mitosis Merge pull request #389 from dschatzberg/mitosis 2024-07-01 09:44:26 -04:00
scx_rlfifo meson: introduce serialize build option 2024-06-28 10:17:37 +02:00
scx_rustland meson: introduce serialize build option 2024-06-28 10:17:37 +02:00
scx_rusty scx_rusty: fix stats map initialization 2024-06-30 17:37:14 +02:00
meson.build scheds: introduce scx_bpfland 2024-06-27 17:28:42 +02: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