From e24aaf4f6390a4719dbcbcec2f92debc249b1809 Mon Sep 17 00:00:00 2001 From: John Titor <50095635+JohnRTitor@users.noreply.github.com> Date: Tue, 29 Oct 2024 15:04:47 +0530 Subject: [PATCH] scx.full: init This package combines the Rust and C based schedulers. This is likely to be the default in the upcoming nixos module. --- pkgs/os-specific/linux/scx/default.nix | 1 + pkgs/os-specific/linux/scx/scx_full.nix | 28 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 pkgs/os-specific/linux/scx/scx_full.nix diff --git a/pkgs/os-specific/linux/scx/default.nix b/pkgs/os-specific/linux/scx/default.nix index 807216ba1799..e064e45c50cb 100644 --- a/pkgs/os-specific/linux/scx/default.nix +++ b/pkgs/os-specific/linux/scx/default.nix @@ -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) diff --git a/pkgs/os-specific/linux/scx/scx_full.nix b/pkgs/os-specific/linux/scx/scx_full.nix new file mode 100644 index 000000000000..48254ee4c2c8 --- /dev/null +++ b/pkgs/os-specific/linux/scx/scx_full.nix @@ -0,0 +1,28 @@ +{ + 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. + ''; + }; +})