scx-upstream/scheds/rust/scx_rlfifo
David Vernet 3bd15be840
rlfifo: Use topo.nr_cpu_ids() instead of topo.nr_cpus_possible()
In scx_rlfifo, we're currently using topo.nr_cpus_possible() to
determine how many possible CPU IDs we could have on the system. To
properly support systems whose disabled CPUs may be in the middle of the
range of possible CPU IDs, let's instead use topo.nr_cpu_ids() so that
we don't accidentally dispatch to an invalid DSQ.

Signed-off-by: David Vernet <void@manifault.com>
2024-06-21 12:57:20 -05:00
..
src rlfifo: Use topo.nr_cpu_ids() instead of topo.nr_cpus_possible() 2024-06-21 12:57:20 -05:00
.gitignore scx_rustland_core: generate source files in-tree 2024-02-28 17:49:44 +01:00
build.rs scx_rustland_core: introduce RustLandBuilder() 2024-02-28 17:49:44 +01:00
Cargo.toml Bump versions for a release 2024-06-03 08:35:21 -10:00
LICENSE scx_rlfifo: simple user-space FIFO scheduler written in Rust 2024-02-28 17:49:44 +01:00
meson.build scheds-rust: build rust schedulers in sequence 2024-04-23 08:06:27 +08:00
README.md scx_rlfifo: simple user-space FIFO scheduler written in Rust 2024-02-28 17:49:44 +01:00
rustfmt.toml scx_rlfifo: simple user-space FIFO scheduler written in Rust 2024-02-28 17:49:44 +01:00

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.