Title: Keep your OpenBSD system cool with obsdfreqd | |
Author: Solène | |
Date: 21 March 2022 | |
Tags: openbsd power | |
Description: A new daemon to keep your system cool and improve battery | |
life | |
# Introduction | |
Last week I wrote a system daemon to manage the CPU frequency from | |
userland, entirely bypassing the kernel automatic mode. While this was | |
more of a toy at first because I only implemented the same automatic | |
mode used in the kernel but with all the variables being easily | |
changed, I found it valuable for many use case to improve battery life | |
or even temperature. | |
The coolest feature I added today is to support a maximum temperature | |
and let the program do its best to keep the CPU temperature below the | |
limit. | |
obsdfreqd project page | |
# Installation | |
- `pkg_add obsdfreqd` since OpenBSD 7.2 | |
# Results | |
A nice benchmark to run was to start the compilation of the rust | |
package with all the four cores of my T470 laptop and run obsdfreqd | |
with various temperature limits and see how it goes. The program did a | |
good job at reducing the CPU frequency to keep the temperature around | |
the threshold. | |
Diagram of benchmark results of various temperature limitation | |
# Conclusion | |
While this is ultimately not a replacement for the in-kernel frequency | |
scheduler, it can be used to keep a computer a lot cooler or make a | |
system comply with some specific requirements (performance for given | |
battery life or maximum temperature). | |
The customization is so that you can have various settings depending if | |
the system is running on battery or not, which can be tailored to suit | |
every kind of user. The defaults are made to provide good performance | |
when on AC, and provide a balanced performance/battery life mode when | |
on battery. |