Merge pull request #114464 from rnhmjoj/ksm

nixos/ksm: rewrite using systemd-tmpfiles

authored by Florian Klink and committed by GitHub d52d0a1d 70c0af4b

+29 -6
+6 -6
nixos/modules/hardware/ksm.nix
··· 26 26 systemd.services.enable-ksm = { 27 27 description = "Enable Kernel Same-Page Merging"; 28 28 wantedBy = [ "multi-user.target" ]; 29 - after = [ "systemd-udev-settle.service" ]; 30 - script = '' 31 - if [ -e /sys/kernel/mm/ksm ]; then 29 + script = 30 + '' 32 31 echo 1 > /sys/kernel/mm/ksm/run 33 - ${optionalString (cfg.sleep != null) ''echo ${toString cfg.sleep} > /sys/kernel/mm/ksm/sleep_millisecs''} 34 - fi 35 - ''; 32 + '' + optionalString (cfg.sleep != null) 33 + '' 34 + echo ${toString cfg.sleep} > /sys/kernel/mm/ksm/sleep_millisecs 35 + ''; 36 36 }; 37 37 }; 38 38 }
+1
nixos/tests/all-tests.nix
··· 196 196 keymap = handleTest ./keymap.nix {}; 197 197 knot = handleTest ./knot.nix {}; 198 198 krb5 = discoverTests (import ./krb5 {}); 199 + ksm = handleTest ./ksm.nix {}; 199 200 kubernetes.dns = handleTestOn ["x86_64-linux"] ./kubernetes/dns.nix {}; 200 201 # kubernetes.e2e should eventually replace kubernetes.rbac when it works 201 202 #kubernetes.e2e = handleTestOn ["x86_64-linux"] ./kubernetes/e2e.nix {};
+22
nixos/tests/ksm.nix
··· 1 + import ./make-test-python.nix ({ lib, ...} : 2 + 3 + { 4 + name = "ksm"; 5 + meta = with lib.maintainers; { 6 + maintainers = [ rnhmjoj ]; 7 + }; 8 + 9 + machine = { ... }: { 10 + imports = [ ../modules/profiles/minimal.nix ]; 11 + 12 + hardware.ksm.enable = true; 13 + hardware.ksm.sleep = 300; 14 + }; 15 + 16 + testScript = 17 + '' 18 + machine.start() 19 + machine.wait_until_succeeds("test $(</sys/kernel/mm/ksm/run) -eq 1") 20 + machine.wait_until_succeeds("test $(</sys/kernel/mm/ksm/sleep_millisecs) -eq 300") 21 + ''; 22 + })