scx/scheds/rust/scx_rlfifo/Cargo.toml
Andrea Righi 5da4602ad7 scx_rustland_core: use a BPF_MAP_TYPE_USER_RINGBUF to dispatch tasks
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>
2024-05-08 22:16:53 +02:00

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 = []