dxvk_1: fix build compatibility with GCC 14 (#360918)
[NixPkgs.git] / nixos / modules / hardware / ksm.nix
blob26b6e6049b97fc2b41ec4c4be232c276514b129c
1 { config, lib, ... }:
2 let
3   cfg = config.hardware.ksm;
5 in
7   imports = [
8     (lib.mkRenamedOptionModule [ "hardware" "enableKSM" ] [ "hardware" "ksm" "enable" ])
9   ];
11   options.hardware.ksm = {
12     enable = lib.mkEnableOption "Linux kernel Same-Page Merging";
13     sleep = lib.mkOption {
14       type = lib.types.nullOr lib.types.int;
15       default = null;
16       description = ''
17         How many milliseconds ksmd should sleep between scans.
18         Setting it to `null` uses the kernel's default time.
19       '';
20     };
21   };
23   config = lib.mkIf cfg.enable {
24     systemd.services.enable-ksm = {
25       description = "Enable Kernel Same-Page Merging";
26       wantedBy = [ "multi-user.target" ];
27       script =
28         ''
29           echo 1 > /sys/kernel/mm/ksm/run
30         ''
31         + lib.optionalString (cfg.sleep != null) ''
32           echo ${toString cfg.sleep} > /sys/kernel/mm/ksm/sleep_millisecs
33         '';
34     };
35   };