diff options
author | aszlig <aszlig@redmoonstudios.org> | 2017-07-06 01:59:32 +0200 |
---|---|---|
committer | aszlig <aszlig@redmoonstudios.org> | 2017-07-06 01:59:32 +0200 |
commit | a6c365df63db28eb73adb7b89250dbacb791e920 (patch) | |
tree | eec87309402f5d905528a8f4c76144ea934a51b9 /modules | |
parent | d1e8f105cdb6e8e9449bbef4459d9dd0fd745065 (diff) |
modules: Move BFQ stuff into its dedicated module
Not everybody likes to have the latest release canidate kernel, so we now have an option called vuizvui.system.kernel.bfq.enable, which *only* enables the BFQ scheduler per default. Signed-off-by: aszlig <aszlig@redmoonstudios.org> Cc: @devhell
Diffstat (limited to 'modules')
-rw-r--r-- | modules/module-list.nix | 1 | ||||
-rw-r--r-- | modules/system/kernel/bfq/bfq-by-default.patch (renamed from modules/user/aszlig/system/bfq-by-default.patch) | 0 | ||||
-rw-r--r-- | modules/system/kernel/bfq/default.nix | 30 | ||||
-rw-r--r-- | modules/user/aszlig/system/kernel.nix | 29 |
4 files changed, 40 insertions, 20 deletions
diff --git a/modules/module-list.nix b/modules/module-list.nix index 6d749457..ca3172fb 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -14,6 +14,7 @@ ./services/postfix ./services/starbound.nix ./system/iso.nix + ./system/kernel/bfq ./user/aszlig/profiles/base.nix ./user/aszlig/profiles/managed.nix ./user/aszlig/profiles/workstation diff --git a/modules/user/aszlig/system/bfq-by-default.patch b/modules/system/kernel/bfq/bfq-by-default.patch index c6ee0492..c6ee0492 100644 --- a/modules/user/aszlig/system/bfq-by-default.patch +++ b/modules/system/kernel/bfq/bfq-by-default.patch diff --git a/modules/system/kernel/bfq/default.nix b/modules/system/kernel/bfq/default.nix new file mode 100644 index 00000000..064179cf --- /dev/null +++ b/modules/system/kernel/bfq/default.nix @@ -0,0 +1,30 @@ +{ config, lib, ... }: + +{ + options.vuizvui.system.kernel.bfq = { + enable = lib.mkEnableOption "Enable the BFQ scheduler by default"; + }; + + config = lib.mkIf config.vuizvui.system.kernel.bfq.enable { + boot.kernelPatches = lib.singleton { + name = "bfq"; + patch = ./bfq-by-default.patch; + extraConfig = '' + SCSI_MQ_DEFAULT y + DM_MQ_DEFAULT y + IOSCHED_BFQ y + BFQ_GROUP_IOSCHED y + ''; + }; + + vuizvui.requiresTests = lib.singleton ["vuizvui" "system" "kernel" "bfq"]; + + assertions = lib.singleton { + assertion = + lib.versionAtLeast config.boot.kernelPackages.kernel.version "4.12"; + + message = "The BFQ scheduler in conjunction with blk-mq requires " + + "at least kernel 4.12."; + }; + }; +} diff --git a/modules/user/aszlig/system/kernel.nix b/modules/user/aszlig/system/kernel.nix index 48b2475a..c8531e30 100644 --- a/modules/user/aszlig/system/kernel.nix +++ b/modules/user/aszlig/system/kernel.nix @@ -6,26 +6,15 @@ }; config = lib.mkIf config.vuizvui.user.aszlig.system.kernel.enable { - boot = { - kernelPatches = lib.singleton { - name = "bfq"; - patch = ./bfq-by-default.patch; - extraConfig = '' - SCSI_MQ_DEFAULT y - DM_MQ_DEFAULT y - IOSCHED_BFQ y - BFQ_GROUP_IOSCHED y - ''; - }; + vuizvui.system.kernel.bfq.enable = true; - kernelPackages = let - inherit (lib) take splitString replaceStrings; - inherit (pkgs) linux_latest linux_testing; - dotizeVer = replaceStrings ["-"] ["."]; - trimVer = ver: take 2 (splitString "." (dotizeVer ver)); - tooOld = trimVer linux_latest.version == trimVer linux_testing.version; - kernel = if tooOld then linux_latest else linux_testing; - in pkgs.linuxPackagesFor kernel; - }; + boot.kernelPackages = let + inherit (lib) take splitString replaceStrings; + inherit (pkgs) linux_latest linux_testing; + dotizeVer = replaceStrings ["-"] ["."]; + trimVer = ver: take 2 (splitString "." (dotizeVer ver)); + tooOld = trimVer linux_latest.version == trimVer linux_testing.version; + kernel = if tooOld then linux_latest else linux_testing; + in pkgs.linuxPackagesFor kernel; }; } |