mirror of
https://github.com/JakeHillion/scx.git
synced 2024-11-29 20:50:22 +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>
24 lines
727 B
TOML
24 lines
727 B
TOML
[package]
|
|
name = "scx_rlfifo"
|
|
version = "0.0.2"
|
|
authors = ["Andrea Righi <andrea.righi@canonical.com>", "Canonical"]
|
|
edition = "2021"
|
|
description = "A simple FIFO scheduler in Rust that runs in user-space"
|
|
license = "GPL-2.0-only"
|
|
|
|
[dependencies]
|
|
anyhow = "1.0.65"
|
|
plain = "0.2.3"
|
|
ctrlc = { version = "3.1", features = ["termination"] }
|
|
libbpf-rs = "0.23.1"
|
|
libc = "0.2.137"
|
|
scx_utils = { path = "../../../rust/scx_utils", version = "0.8" }
|
|
scx_rustland_core = { path = "../../../rust/scx_rustland_core", version = "0.4" }
|
|
|
|
[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 = []
|