Unverified Commit 4ddb0661 authored by Masum Reza's avatar Masum Reza Committed by GitHub
Browse files

scx.full: init; scx.rusty: init (#352077)

parents 5d73ec24 e24aaf4f
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -10,6 +10,9 @@
}:
let
  versionInfo = lib.importJSON ./version.json;

  # Useful function for packaging schedulers, should be used unless the build system is too complex
  # passes some default values like src, version (all of which can be overridden)
  mkScxScheduler =
    packageType:
    args@{ schedulerName, ... }:
@@ -43,7 +46,7 @@ let
            "zerocallusedregs"
          ] ++ (args.hardeningDisable or [ ]);

          meta = args.meta // {
          meta = (args.meta or { }) // {
            description = args.meta.description or "";
            longDescription =
              (args.meta.longDescription or "")
@@ -65,7 +68,9 @@ let
    { layered = import ./scx_layered; }
    { rlfifo = import ./scx_rlfifo; }
    { 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)
+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@
  mkScxScheduler,
}:

mkScxScheduler "rust" rec {
mkScxScheduler "rust" {
  schedulerName = "scx_bpfland";

  cargoRoot = "scheds/rust/scx_bpfland";
+7 −4
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ let
  });

in
mkScxScheduler "c" rec {
mkScxScheduler "c" {
  schedulerName = "scx_csheds";

  postPatch = ''
@@ -78,8 +78,11 @@ mkScxScheduler "c" rec {

  mesonFlags = [
    (lib.mapAttrsToList lib.mesonEnable {
      # systemd unit is implemented in the nixos module
      # upstream systemd files are a hassle to patch
      "systemd" = false;
      "openrc" = false;
      # libbpf is already fetched as FOD
      "libbpf_a" = false;
      # not for nix
      "libalpm" = false;
@@ -87,7 +90,7 @@ mkScxScheduler "c" rec {
    (lib.mapAttrsToList lib.mesonBool {
      # needed libs are already fetched as FOD
      "offline" = true;
      # rust schedulers are built seperately
      # rust based schedulers are built seperately
      "enable_rust" = false;
    })
  ];
@@ -99,8 +102,8 @@ mkScxScheduler "c" rec {
  meta = {
    description = "Sched-ext C userspace schedulers";
    longDescription = ''
      This includes C based schedulers such as scx_central,
      scx_flatcg, scx_pair, scx_qmap, scx_simple, scx_userland.
      This includes C based schedulers such as scx_central, scx_flatcg,
      scx_nest, scx_pair, scx_qmap, scx_simple, scx_userland.
    '';
  };
}
+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.
    '';
  };
})
+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@
  mkScxScheduler,
}:

mkScxScheduler "rust" rec {
mkScxScheduler "rust" {
  schedulerName = "scx_lavd";

  cargoRoot = "scheds/rust/scx_lavd";
Loading