Title: OpenBSD 7.1: fan noise and high temperature solution
       Author: Solène
       Date: 21 April 2022
       Tags: openbsd obsdfreqd openbsd71
       Description: Here is a fix if your OpenBSD 7.1 system is drawing too
       much power, has its fan always on or the CPU temperature is too high
       
       # Introduction
       
       OpenBSD 7.1 has been released with a change that will set the CPU to
       max speed when plugged to the wall.  This brings better performance and
       entirely let the CPU and mainboard do the frequency throttling.
       
       However, it may doesn't throttle well for some users, resulting in huge
       power usage even when idle, heat from the CPU and also fan noise.
       
       As the usual "automatic" frequency scheduling mode is no longer
       available when connected to powergrid, I wrote a simple utility to
       manage the frequency when the system is plugged to the wall, I took the
       opportunity to improve it, giving better performance than the previous
       automatic mode, but also giving more battery life when using on a
       laptop on battery.
       
 (HTM) obsdfreqd project page
       
       # Installation
       
       Since OpenBSD 7.2 obsdfreqd is available as a packge. An extra
       important step is to remove the automatic mode in apmd which would kill
       obsdfreqd, you can keep apmd for its ability to run commands on
       resume/suspend etc...
       
       ```shell
       pkg_add obsdfreqd
       rcctl ls on | grep ^apmd && rcctl set apmd flags -L && rcctl restart apmd
       rcctl enable obsdfreqd
       rcctl start obsdfreqd
       ```
       
       # Configuration
       
       No configuration are required, it works out of the box with a battery
       saving profile when on battery and a performance profile when connected
       to power.
       
       If you feel adventurous, obsdfreqd man page will give you information
       about all the parameters available if you want to tailor yourself a
       specific profile.
       
       Note that obsdfreqd can target a specific temperature limit using -T
       parameter, see the man page for explanations.
       
       # FAQ
       
       Using hw.perfpolicy="auto" sysctl won't help, the kernel code entirely
       bypass the frequency management if the system is not running on
       battery.
       
 (HTM) sched_bsd.c line shipped in OpenBSD 7.1
       
       Using apmd -A doesn't solve the issue because apmd was simply setting
       the sysctl hw.perfpolicy to auto, which as explained above set the
       frequency to full speed when not on battery.