aboutsummaryrefslogtreecommitdiff
path: root/tw/system/cern.scm
diff options
context:
space:
mode:
authorTimo Wilken2023-03-02 15:42:44 +0100
committerTimo Wilken2023-03-04 19:24:12 +0100
commitf38996b3a3c6d05909e5dd61ce1a2c1b5de85c7a (patch)
treed6c439990e6e3eadfc957f08076591271c436cd7 /tw/system/cern.scm
parent02b1345113a4cccf7394eb74eb7955e8c2a1a8f8 (diff)
Control max CPU frequency with cpupower
Diffstat (limited to 'tw/system/cern.scm')
-rw-r--r--tw/system/cern.scm29
1 files changed, 21 insertions, 8 deletions
diff --git a/tw/system/cern.scm b/tw/system/cern.scm
index 0c05b822..fb767213 100644
--- a/tw/system/cern.scm
+++ b/tw/system/cern.scm
@@ -17,7 +17,8 @@
mtools pulseaudio search shells wm xorg)
(use-service-modules admin authentication avahi base cups dbus desktop docker
- kerberos linux mcron networking pm ssh syncthing vpn xorg)
+ kerberos linux mcron networking pm shepherd ssh syncthing
+ vpn xorg)
(define efi-system-partition ; /dev/nvme0n1p1
(uuid "806A-2762" 'fat))
@@ -166,13 +167,25 @@
(kdc "cerndc.cern.ch"))))))
;; At high CPU frequencies, the fan is very loud, starting around 3.5 GHz.
- (service tlp-service-type
- (tlp-configuration
- (energy-perf-policy-on-ac "balance_power")
- (cpu-scaling-governor-on-ac '("powersave"))
- (cpu-scaling-max-freq-on-ac 3600000) ; kHz
- (cpu-boost-on-ac? #f)
- (sched-powersave-on-ac? #t)))
+ (simple-service 'cpufreq shepherd-root-service-type
+ (list (shepherd-service
+ (documentation "Limit CPU frequency")
+ (provision '(cpufreq))
+ (one-shot? #t)
+ (start #~(make-system-constructor
+ #$(file-append cpupower "/bin/cpupower")
+ " frequency-set --max 3.6GHz"))
+ (stop #~(make-system-constructor
+ #$(file-append cpupower "/bin/cpupower")
+ " frequency-set --max 4.8GHz"))
+ (actions
+ (list (shepherd-action
+ (name 'current)
+ (documentation "Show the current CPU frequencies.")
+ (procedure
+ #~(lambda _
+ (system* #$(file-append cpupower "/bin/cpupower")
+ "frequency-info")))))))))
(service thermald-service-type
(thermald-configuration