**If you use `apmd` service, you have to start it either with `-H` or `-L` flag, otherwise it will start after **obsdfreqd** and set the performance policy to automatic and **obsdfreqd** will crash**.
Parameters are applied when both plugged on the wall or on battery, parameters can have two values comma separated to give different values when plugged on wall and for when on battery.
If CPU usage > `threshold`, increase frequency by `stepfrequency` up to `maxfrequency` every `timefreq` milliseconds and keep this frequency at least `inertia` cycles.
If CPU usage <= `threshold`, reduce frequency by `downstepfrequency` down to `minfrequency` every `timefreq` milliseconds when `inertia` reached 0. `inertia` lose one point every cycle the CPU usage is below `threshold`.
When flag `-T` is used, if the temperature exceeds the defined limit, the `maxfrequency` is decremented every cycle. When the current temperature is below the limit, the frequency limit is incremented at every cycle.
**obsdfreqd** will change the perfpolicy sysctl to manual and will change the CPU frequency by polling every often (like 100ms) the CPU load and change the frequency accordingly, the perfpolicy is set to auto upon exit.
obsdfreqd is available as a package in OpenBSD current. The point of this progrm is to allow OpenBSD users to have a quiet and cool system which is not possible with the current code due to [this change in the kernel](https://marc.info/?l=openbsd-cvs&m=163563630606615&w=2).