mirror of
https://github.com/sched-ext/scx.git
synced 2024-11-28 21:50:23 +00:00
5da4602ad7
Replace the BPF_MAP_TYPE_QUEUE with a BPF_MAP_TYPE_USER_RINGBUF to store the tasks dispatched from the user-space scheduler to the BPF component. This eliminates the need of the bpf() syscalls, significantly reducing the overhead of the user-space->kernel communication and delivering a notable performance boost in the overall system throughput. Based on experimental results, this change allows to reduces the scheduling overhead by approximately 30-35% when the system is overcommitted. This improvement has the potential to make user-space schedulers based on scx_rustland_core viable options for real production systems. Link: https://github.com/libbpf/libbpf-rs/pull/776 Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
29 lines
1.2 KiB
TOML
29 lines
1.2 KiB
TOML
[package]
|
|
name = "scx_rustland"
|
|
version = "0.0.6"
|
|
authors = ["Andrea Righi <andrea.righi@canonical.com>", "Canonical"]
|
|
edition = "2021"
|
|
description = "A BPF component (dispatcher) that implements the low level sched-ext functionalities and a user-space counterpart (scheduler), written in Rust, that implements the actual scheduling policy. This is used within 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"
|
|
license = "GPL-2.0-only"
|
|
|
|
[dependencies]
|
|
anyhow = "1.0.65"
|
|
plain = "0.2.3"
|
|
clap = { version = "4.1", features = ["derive", "env", "unicode", "wrap_help"] }
|
|
ctrlc = { version = "3.1", features = ["termination"] }
|
|
fb_procfs = "0.7.0"
|
|
libbpf-rs = "0.23.1"
|
|
libc = "0.2.137"
|
|
log = "0.4.17"
|
|
ordered-float = "3.4.0"
|
|
scx_utils = { path = "../../../rust/scx_utils", version = "0.8" }
|
|
scx_rustland_core = { path = "../../../rust/scx_rustland_core", version = "0.4" }
|
|
simplelog = "0.12.0"
|
|
|
|
[build-dependencies]
|
|
scx_utils = { path = "../../../rust/scx_utils", version = "0.8" }
|
|
scx_rustland_core = { path = "../../../rust/scx_rustland_core", version = "0.4" }
|
|
|
|
[features]
|
|
enable_backtrace = []
|