22 releases (7 stable)

new 1.0.6 Nov 6, 2024
1.0.4 Sep 7, 2024
1.0.1 Jul 15, 2024
0.8.1 Jun 3, 2024
0.2.0 Nov 30, 2023

#1042 in Unix APIs

Download history 24/week @ 2024-07-19 2/week @ 2024-07-26 3/week @ 2024-08-02 121/week @ 2024-08-09 158/week @ 2024-08-16 48/week @ 2024-08-23 21/week @ 2024-08-30 185/week @ 2024-09-06 76/week @ 2024-09-13 47/week @ 2024-09-20 204/week @ 2024-09-27 62/week @ 2024-10-04 40/week @ 2024-10-11 21/week @ 2024-10-18 13/week @ 2024-10-25 63/week @ 2024-11-01

143 downloads per month
Used in 7 crates

GPL-2.0-only

8MB
3.5K SLoC

Utility collection for sched_ext schedulers

sched_ext is a Linux kernel feature which enables implementing kernel thread schedulers in BPF and dynamically loading them.

This crate is a collection of utilities for sched_ext scheduler implementations which use Rust for userspace component. This enables implementing hot paths in BPF while offloading colder and more complex operations to userspace Rust code which can be significantly more convenient and powerful.

Please see documentation for more details.


lib.rs:

Utility collection for sched_ext schedulers

sched_ext is a Linux kernel feature which enables implementing kernel thread schedulers in BPF and dynamically loading them.

This crate is a collection of utilities for sched_ext scheduler implementations which use Rust for userspace component. This enables implementing hot paths in BPF while offloading colder and more complex operations to userspace Rust code which can be significantly more convenient and powerful.

The utilities can be put into two broad categories.

Build Utilities

BPF being its own CPU architecture and independent runtime environment, build environment and steps are already rather complex. The need to interface between two different languages - C and Rust - adds further complexities. This crate contains struct BpfBuilder which is to be used from build.rs and automates most of the process.

Utilities for Rust Userspace Component

Utility modules which can be useful for userspace component of sched_ext schedulers.

Dependencies

~23–34MB
~600K SLoC