scx.rusty: init

This commit is contained in:
John Titor 2024-10-29 23:15:56 +05:30
parent b7edadebf8
commit 29f813eb67
No known key found for this signature in database
GPG Key ID: 29B0514F4E3C1CC0
4 changed files with 1729 additions and 1 deletions

View File

@ -68,6 +68,7 @@ let
{ layered = import ./scx_layered; }
{ rlfifo = import ./scx_rlfifo; }
{ rustland = import ./scx_rustland; }
{ rusty = import ./scx_rusty; }
{ csheds = import ./scx_csheds.nix; }
];
in

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,38 @@
{
stdenv,
lib,
mkScxScheduler,
}:
mkScxScheduler "rust" {
schedulerName = "scx_rusty";
cargoRoot = "scheds/rust/scx_rusty";
cargoLock.lockFile = ./Cargo.lock;
postPatch = ''
rm Cargo.toml Cargo.lock
ln -fs ${./Cargo.lock} scheds/rust/scx_rusty/Cargo.lock
'';
preBuild = ''
cd scheds/rust/scx_rusty
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp target/${stdenv.targetPlatform.config}/release/scx_rusty $out/bin/
runHook postInstall
'';
meta = {
description = "Sched-ext Rust userspace scheduler";
longDescription = ''
Multi-domain, BPF/userspace hybrid scheduler. BPF portion of the scheduler does
a simple round robin in each domain, and the userspace portion calculates the load
factor of each domain, and informs BPF of how tasks should be load balanced accordingly.
Rusty is designed to be flexible, accommodating different architectures and workloads.
'';
mainProgram = "scx_rusty";
};
}

View File

@ -40,7 +40,7 @@ jq \
rm -f Cargo.toml Cargo.lock
for scheduler in bpfland lavd layered rlfifo rustland; do
for scheduler in bpfland lavd layered rlfifo rustland rusty; do
pushd "scheds/rust/scx_$scheduler"
cargo generate-lockfile