| 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. |