Unverified Commit e24aaf4f authored by John Titor's avatar John Titor
Browse files

scx.full: init

This package combines the Rust and C based schedulers.
This is likely to be the default in the upcoming nixos module.
parent 29f813eb
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ let
    { rustland = import ./scx_rustland; }
    { rusty = import ./scx_rusty; }
    { csheds = import ./scx_csheds.nix; }
    { full = import ./scx_full.nix; }
  ];
in
(lib.mapAttrs (name: scheduler: callPackage scheduler { inherit mkScxScheduler; }) schedulers)
+28 −0
Original line number Diff line number Diff line
{
  stdenv,
  lib,
  scx,
  mkScxScheduler,
}:
scx.csheds.overrideAttrs (oldAttrs: {
  pname = "scx_full";
  postInstall =
    (oldAttrs.postInstall or "")
    + ''
      cp ${lib.getExe scx.bpfland} $out/bin/
      cp ${lib.getExe scx.lavd} $out/bin/
      cp ${lib.getExe scx.layered} $out/bin/
      cp ${lib.getExe scx.rlfifo} $out/bin/
      cp ${lib.getExe scx.rustland} $out/bin/
      cp ${lib.getExe scx.rusty} $out/bin/
    '';

  meta = oldAttrs.meta // {
    description = "Sched-ext C and Rust userspace schedulers";
    longDescription = ''
      This includes C based schedulers such as scx_central, scx_flatcg,
      scx_pair, scx_qmap, scx_simple, scx_userland and Rust based schedulers
      like scx_rustland, scx_bpfland, scx_lavd, scx_layered, scx_rlfifo.
    '';
  };
})