1{
2 lib,
3 stdenv,
4 scx-common,
5 scx,
6 nixosTests,
7}:
8scx.cscheds.overrideAttrs (oldAttrs: {
9 pname = "scx_full";
10 postInstall = (oldAttrs.postInstall or "") + ''
11 cp ${scx.rustscheds}/bin/* ${placeholder "bin"}/bin/
12 '';
13
14 passthru.tests.basic = nixosTests.scx;
15
16 passthru.updateScript.command = ./update.sh;
17
18 meta = oldAttrs.meta // {
19 description = "Sched-ext C and Rust userspace schedulers";
20 longDescription = ''
21 This includes C based schedulers such as scx_central, scx_flatcg,
22 scx_pair, scx_qmap, scx_simple, scx_userland and Rust based schedulers
23 like scx_rustland, scx_bpfland, scx_lavd, scx_layered, scx_rlfifo.
24
25 ::: {.note}
26 Sched-ext schedulers are only available on kernels version 6.12 or later.
27 It is recommended to use the latest kernel for the best compatibility.
28 :::
29 '';
30 };
31})