scx/scheds/rust/scx_rlfifo
Andrea Righi 568e292a24 scx_rustland_core: get rid of the exiting task API
The current API used to notify the user-space scheduler when a task
exits is really confusing (setting a negative value in
queued_task_ctx.cpu), and it's also possible to detect task exiting
events from user-space (or check in procfs, even if it's slower).

In any case, a better API should be provided for this, so drop the
current one for now.

NOTE: this will cause additional memory usage for scx_rustland, but it
can be fixed/addressed later in a separate commit (i.e., providing a
periodic garbage collector for the unused task entries).

Signed-off-by: Andrea Righi <andrea.righi@linux.dev>
2024-08-24 21:29:10 +02:00
..
src scx_rustland_core: get rid of the exiting task API 2024-08-24 21:29:10 +02:00
.gitignore scheds/rust: Include Cargo.lock in the repo 2024-08-15 23:08:35 -10:00
build.rs scx_rustland_core: introduce RustLandBuilder() 2024-02-28 17:49:44 +01:00
Cargo.lock scx_rlfifo: update Cargo.lock 2024-08-24 20:24:48 +02:00
Cargo.toml Version: v1.0.3 2024-08-21 06:42:11 -10:00
LICENSE scx_rlfifo: simple user-space FIFO scheduler written in Rust 2024-02-28 17:49:44 +01:00
meson.build meson: introduce serialize build option 2024-06-28 10:17:37 +02: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.