Crates.io | scx_lavd |
lib.rs | scx_lavd |
version | 1.0.16 |
created_at | 2024-04-04 17:16:15.64408+00 |
updated_at | 2025-09-05 23:13:16.097419+00 |
description | A Latency-criticality Aware Virtual Deadline (LAVD) scheduler based on sched_ext, which is a Linux kernel feature which enables implementing kernel thread schedulers in BPF and dynamically loading them. https://github.com/sched-ext/scx/tree/main |
homepage | |
repository | |
max_upload_size | |
id | 1196521 |
size | 346,994 |
This is a single user-defined scheduler used within sched_ext
, which is a Linux kernel feature which enables implementing kernel thread schedulers in BPF and dynamically loading them. Read more about sched_ext
.
scx_lavd
is a BPF scheduler that implements an LAVD
(Latency-criticality Aware
Virtual Deadline) scheduling algorithm. While LAVD
is new and still evolving,
its core ideas are 1) measuring how much a task is latency critical and 2)
leveraging the task's latency-criticality information in making various
scheduling decisions (e.g., task's deadline, time slice, etc.). As the name
implies, LAVD
is based on the foundation of deadline scheduling. This scheduler
consists of the BPF part and the Rust
part. The BPF part makes all the
scheduling decisions; the Rust
part provides high-level information (e.g., CPU
topology) to the BPF code, loads the BPF code and conducts other chores (e.g.,
printing sampled scheduling decisions).
scx_lavd
is initially motivated by gaming workloads. It aims to improve
interactivity and reduce stuttering while playing games on Linux. Hence, this
scheduler's typical use case involves highly interactive applications, such as
gaming, which requires high throughput and low tail latencies.
Yes, scx_lavd
should be performant across various CPU architectures. It creates
a separate scheduling domain per-LLC, per-core type (e.g., P or E core on
Intel, big or LITTLE on ARM), and per-NUMA domain, so the default balanced
profile or autopilot mode should be performant. It mainly targets single CCX
/ single-socket systems.