mirror of
https://github.com/JakeHillion/scx.git
synced 2024-12-02 05:47:12 +00:00
d8985306f4
We don't need to send the number of voluntary context switches (nvcsw) from BPF to user-space, as this information is already accessible in user-space via procfs. Sending this data would only create unnecessary overhead for schedulers that don't require it, and those that do can easily retrieve it through procfs. Therefore, drop this metric from scx_rustland_core and change scx_rustland implementing an interactive task classifier fully in the user-space part of the scheduler. Also drop some options that are not provide any significant benefit (also in preparation of a bigger refactoring to define a better API for the user-space framework). Signed-off-by: Andrea Righi <andrea.righi@linux.dev> |
||
---|---|---|
.. | ||
src | ||
.gitignore | ||
build.rs | ||
Cargo.toml | ||
LICENSE | ||
meson.build | ||
README.md | ||
rustfmt.toml |
scx_rlfifo
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.
Overview
scx_rlfifo is a simple FIFO scheduler runs in user-space, based on the scx_rustland_core framework.
Typical Use Case
This scheduler is provided as a simple template that can be used as a baseline to test more complex scheduling policies.
Production Ready?
Definitely not. Using this scheduler in a production environment is not recommended, unless there are specific requirements that necessitate a basic FIFO scheduling approach. Even then, it's still recommended to use the kernel's SCHED_FIFO real-time class.