1{ pkgs, ... }:
2
3{
4 name = "scx_full";
5 meta = {
6 inherit (pkgs.scx.full.meta) maintainers;
7 };
8
9 nodes.machine = {
10 boot.kernelPackages = pkgs.linuxPackages_latest;
11 services.scx.enable = true;
12
13 specialisation = {
14 bpfland.configuration.services.scx.scheduler = "scx_bpfland";
15 central.configuration.services.scx.scheduler = "scx_central";
16 lavd.configuration.services.scx.scheduler = "scx_lavd";
17 rlfifo.configuration.services.scx.scheduler = "scx_rlfifo";
18 rustland.configuration.services.scx.scheduler = "scx_rustland";
19 rusty.configuration.services.scx.scheduler = "scx_rusty";
20 };
21 };
22
23 testScript = ''
24 specialisation = [
25 "bpfland",
26 "central",
27 "lavd",
28 "rlfifo",
29 "rustland",
30 "rusty"
31 ]
32
33 def activate_specialisation(name: str):
34 machine.succeed(f"/run/booted-system/specialisation/{name}/bin/switch-to-configuration test >&2")
35
36 for sched in specialisation:
37 with subtest(f"{sched}"):
38 activate_specialisation(sched)
39 machine.succeed("systemctl restart scx.service")
40 machine.succeed(f"ps -U root -u root u | grep scx_{sched}")
41 '';
42}