mirror of
https://github.com/sched-ext/scx.git
synced 2024-11-25 04:00:24 +00:00
e627176d90
As described in [0], there is an open problem in load balancing called the "infeasible weights" problem. Essentially, the problem boils down to the fact that a task with disproportionately high load can be granted more CPU time than they can actually consume per their duty cycle. This patch implements a solution to that problem, wherein we apply the algorithm described in this paper to adjust all infeasible weights in the system down to a feasible wight that gives them their full duty cycle, while allowing the remaining feasible tasks on the system to share the remaining compute capacity on the machine. [0]: https://drive.google.com/file/d/1fAoWUlmW-HTp6akuATVpMxpUpvWcGSAv/view?usp=drive_link Signed-off-by: David Vernet <void@manifault.com>
29 lines
972 B
TOML
29 lines
972 B
TOML
[package]
|
|
name = "scx_rusty"
|
|
version = "0.5.4"
|
|
authors = ["Dan Schatzberg <dschatzberg@meta.com>", "Meta"]
|
|
edition = "2021"
|
|
description = "A multi-domain, BPF / user space hybrid scheduler 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"
|
|
bitvec = { version = "1.0", features = ["serde"] }
|
|
clap = { version = "4.1", features = ["derive", "env", "unicode", "wrap_help"] }
|
|
ctrlc = { version = "3.1", features = ["termination"] }
|
|
fb_procfs = "0.7.0"
|
|
hex = "0.4.3"
|
|
libbpf-rs = "0.22.0"
|
|
libc = "0.2.137"
|
|
log = "0.4.17"
|
|
ordered-float = "3.4.0"
|
|
scx_utils = { path = "../../../rust/scx_utils", version = "0.6" }
|
|
simplelog = "0.12.0"
|
|
static_assertions = "1.1.0"
|
|
|
|
[build-dependencies]
|
|
scx_utils = { path = "../../../rust/scx_utils", version = "0.6" }
|
|
|
|
[features]
|
|
enable_backtrace = []
|