2018-08-15 13:34:44 -04:00
|
|
|
{ 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;
|
2019-07-04 10:59:11 -04:00
|
|
|
description = "CPU Throttling Fix";
|
2018-08-15 13:34:44 -04:00
|
|
|
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;
|
2019-07-04 10:59:11 -04:00
|
|
|
description = "CPU Throttling Fix";
|
2018-08-15 13:34:44 -04:00
|
|
|
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"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
}
|