From 2bf94227c1efbf47e99f55dacd799fffe87207e8 Mon Sep 17 00:00:00 2001 From: Michael Peyton Jones Date: Fri, 19 Jul 2019 11:03:36 +0100 Subject: [PATCH] Replace ad hoc throttling fix with throttled `throttled` is a service designed to fix the same CPU throttling bug, but it's an actively maintainted upstream project that we can use. --- common/pc/laptop/cpu-throttling-bug.nix | 38 --------------------- dell/xps/13-9370/default.nix | 3 +- lenovo/thinkpad/p53/default.nix | 5 +-- lenovo/thinkpad/t480s/default.nix | 3 +- lenovo/thinkpad/t490/default.nix | 5 +-- lenovo/thinkpad/x1-extreme/gen2/default.nix | 3 +- lenovo/thinkpad/x1/6th-gen/default.nix | 5 +-- 7 files changed, 15 insertions(+), 47 deletions(-) delete mode 100644 common/pc/laptop/cpu-throttling-bug.nix diff --git a/common/pc/laptop/cpu-throttling-bug.nix b/common/pc/laptop/cpu-throttling-bug.nix deleted file mode 100644 index 7f3caa2..0000000 --- a/common/pc/laptop/cpu-throttling-bug.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ config, pkgs, ... }: -{ - # Temporary fix for cpu throttling issues visible in the kernel log - # (journalctl -k) by setting the same temperature limits used by - # Window$ - # See https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_6)#Power_management.2FThrottling_issues - systemd.services.cpu-throttling = { - enable = true; - description = "CPU Throttling Fix"; - documentation = [ - "https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_6)#Power_management.2FThrottling_issues" - ]; - path = [ pkgs.msr-tools ]; - script = "wrmsr -a 0x1a2 0x3000000"; - serviceConfig = { - Type = "oneshot"; - }; - wantedBy = [ - "timers.target" - ]; - }; - - systemd.timers.cpu-throttling = { - enable = true; - description = "CPU Throttling Fix"; - documentation = [ - "https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_6)#Power_management.2FThrottling_issues" - ]; - timerConfig = { - OnActiveSec = 60; - OnUnitActiveSec = 60; - Unit = "cpu-throttling.service"; - }; - wantedBy = [ - "timers.target" - ]; - }; -} diff --git a/dell/xps/13-9370/default.nix b/dell/xps/13-9370/default.nix index cd53acd..609aebf 100644 --- a/dell/xps/13-9370/default.nix +++ b/dell/xps/13-9370/default.nix @@ -5,7 +5,6 @@ ../../../common/cpu/intel/kaby-lake ../../../common/pc/laptop ../../../common/pc/laptop/acpi_call.nix - ../../../common/pc/laptop/cpu-throttling-bug.nix ]; # Force S3 sleep mode. See README.wiki for details. @@ -13,4 +12,6 @@ # touchpad goes over i2c boot.blacklistedKernelModules = [ "psmouse" ]; + + services.throttled.enable = lib.mkDefault true; } diff --git a/lenovo/thinkpad/p53/default.nix b/lenovo/thinkpad/p53/default.nix index 6eadb6e..a499d5c 100644 --- a/lenovo/thinkpad/p53/default.nix +++ b/lenovo/thinkpad/p53/default.nix @@ -1,9 +1,10 @@ -{ nixos, pkgs, config, stdenv, ... }: +{ nixos, pkgs, lib, config, stdenv, ... }: { imports = [ ../../../common/cpu/intel ../../../common/pc/laptop/acpi_call.nix - ../../../common/pc/laptop/cpu-throttling-bug.nix ../. ]; + + services.throttled.enable = lib.mkDefault true; } diff --git a/lenovo/thinkpad/t480s/default.nix b/lenovo/thinkpad/t480s/default.nix index 3e079d5..1a14afa 100644 --- a/lenovo/thinkpad/t480s/default.nix +++ b/lenovo/thinkpad/t480s/default.nix @@ -4,7 +4,8 @@ imports = [ ../../../common/cpu/intel ../../../common/pc/laptop/acpi_call.nix - ../../../common/pc/laptop/cpu-throttling-bug.nix ../. ]; + + services.throttled.enable = lib.mkDefault true; } diff --git a/lenovo/thinkpad/t490/default.nix b/lenovo/thinkpad/t490/default.nix index 1a4f71d..3578da6 100644 --- a/lenovo/thinkpad/t490/default.nix +++ b/lenovo/thinkpad/t490/default.nix @@ -1,9 +1,8 @@ -{ nixos, pkgs, config, stdenv, ... }: +{ nixos, lib, pkgs, config, stdenv, ... }: { imports = [ ../../../common/cpu/intel ../../../common/pc/laptop/acpi_call.nix - ../../../common/pc/laptop/cpu-throttling-bug.nix ../. ]; @@ -26,5 +25,7 @@ LABEL="pulseaudio_end" ''; + + throttled.enable = lib.mkDefault true; }; } diff --git a/lenovo/thinkpad/x1-extreme/gen2/default.nix b/lenovo/thinkpad/x1-extreme/gen2/default.nix index 912cc95..6b0ebbd 100644 --- a/lenovo/thinkpad/x1-extreme/gen2/default.nix +++ b/lenovo/thinkpad/x1-extreme/gen2/default.nix @@ -5,7 +5,6 @@ with lib; { imports = [ ../. - ../../../../common/pc/laptop/cpu-throttling-bug.nix ]; # Fixes an issue with incorrect battery reporting. See @@ -44,4 +43,6 @@ with lib; videoDrivers = [ "intel" ]; }) ]; + + services.throttled.enable = lib.mkDefault true; } diff --git a/lenovo/thinkpad/x1/6th-gen/default.nix b/lenovo/thinkpad/x1/6th-gen/default.nix index e8c6f0e..00446b8 100644 --- a/lenovo/thinkpad/x1/6th-gen/default.nix +++ b/lenovo/thinkpad/x1/6th-gen/default.nix @@ -5,15 +5,16 @@ # # Enable the lower-power S3 suspend state by upgrading the BIOS to version >= 1.30, # then manually selecting Linux in the power management section. -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: { imports = [ ../. ../../../../common/pc/laptop/acpi_call.nix - ../../../../common/pc/laptop/cpu-throttling-bug.nix ]; # New ThinkPads have a different TrackPoint manufacturer/name. # See also https://certification.ubuntu.com/catalog/component/input/5313/input%3ATPPS/2ElanTrackPoint/ hardware.trackpoint.device = "TPPS/2 Elan TrackPoint"; + + services.throttled.enable = lib.mkDefault true; }