scx.full: init

This package combines the Rust and C based schedulers.
This is likely to be the default in the upcoming nixos module.
This commit is contained in:
John Titor 2024-10-29 15:04:47 +05:30
parent 29f813eb67
commit e24aaf4f63
No known key found for this signature in database
GPG Key ID: 29B0514F4E3C1CC0
2 changed files with 29 additions and 0 deletions

View File

@ -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)

View File

@ -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.
'';
};
})