Unverified Commit 29f813eb authored by John Titor's avatar John Titor
Browse files

scx.rusty: init

parent b7edadeb
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+1689 −0

File added.

Preview size limit exceeded, changes collapsed.

+38 −0
Original line number Diff line number Diff line
{
  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";
  };
}
+1 −1
Original line number Diff line number Diff line
@@ -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