This is a scheduler testing and benchmarking framework.
The project is organized into several modules:
cases: Test cases and benchmarksworkloads: Implementations of various workloads for testing scheduler behaviorutil: Utility functions and types for system operations, statistics, etc.
- Rust 1.70 or later
- Cargo (Rust's package manager)
- Linux kernel with sched_ext support (for full functionality)
The project is a standard Cargo-based project, which will work with cargo build and cargo test. Some tests may require root privileges.
Run the schtest binary to run the tests. Use --help to see all available options.
To run with a custom scheduler:
sudo schtest [options] -- /path/to/scheduler [scheduler args...]
This will:
- Run the specified scheduler binary
- Wait for it to install a custom scheduler
- Run the tests against that scheduler
- Kill the scheduler when done