HWPSTATE_INTEL(4)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

πŸ’… HWPSTATE_INTEL(4) πŸ’…

okay so welcome to the Kernel Interfaces Manual bestie, and today's main character is hwpstate_intel(4) β€” yes that's a section 4 page, we love a driver doc ✨


🌸 NAME 🌸

hwpstate_intel β€” the Intel Speed Shift Technology driver. that's it, that's the whole name. iconic.


πŸŽ€ SYNOPSIS πŸŽ€

so if you want this driver baked into your kernel (and honestly, who wouldn't), you drop this line into your kernel configuration file:

device cpufreq

that's the whole vibe check. one line. slay.


πŸ¦‹ DESCRIPTION πŸ¦‹

okay so hwpstate_intel is the driver that gives you support for hardware-controlled performance states on Intel platforms β€” which, for the uninitiated, is the thing everybody calls Intel Speed Shift Technology. fr fr, that's the name. the hardware handles the performance states itself and this driver is the one holding its hand through it. 🫢


πŸ”₯ LOADER TUNABLES πŸ”₯

these are the knobs you can twist before the kernel even wakes up. tune responsibly bestie πŸ’œ

  • hint.hwpstate_intel.0.disabled β€” this one lets you disable hwpstate_intel entirely, which frees up other compatible drivers to manage performance states instead β€” the manpage literally name-drops est(4) as an example. it defaults to "0", meaning enabled, meaning the driver is on by default. no cap.
  • machdep.hwpstate_pkg_ctrl β€” this is the choose-your-fighter between package-level control (which is the default, btw) and per-core control. set it to "1" and you get package-level control; set it to "0" and you get core-level control</civan>. pick your lane. πŸ’…
ngl the defaults matter here: package-level is what you get if you touch nothing.

⭐ SYSCTL VARIABLES ⭐

these are the sysctl(8) values you can peek at, and they're giving very much "look at me, I'm the driver's whole personality":

  • dev.hwpstate_intel.%d.%desc β€” describes the attached driver. it's the driver's little bio.

living proof:

dev.hwpstate_intel.0.%desc: Intel Speed Shift
  • dev.hwpstate_intel.%d.%driver β€” the driver in use, and it is always hwpstate_intel. always always. no impostors.
dev.hwpstate_intel.0.%driver: hwpstate_intel
  • dev.hwpstate_intel.%d.%parent β€” the CPU that's exposing these frequencies. for example cpu0. it's the parent, it's the source of truth, it's giving main character energy.
dev.hwpstate_intel.0.%parent: cpu0
  • dev.hwpstate_intel.%d.epp β€” the Energy/Performance Preference 🌈 valid values range from 0 to 100. setting this field basically whispers a hint to the hardware: preference towards performance at value 0, preference towards energy efficiency at value 100, or honestly somewhere in between if you're feeling indecisive. it's a hint, not a command β€” the hardware gets the vibe, not a mandate.
dev.hwpstate_intel.0.epp: 0

🧚 COMPATIBILITY 🧚

hwpstate_intel is only found on supported Intel CPUs. so if you're on something else… bestie this page isn't for you, sorry 😭 it's not personal.


πŸ‘‘ SEE ALSO πŸ‘‘


πŸ’œ AUTHORS πŸ’œ

this manual page was written by D Scott Phillips <scottph@FreeBSD.org>. give them their flowers, they earned them. πŸŽ€


okay that's the whole page, you're officially informed, go forth and configure your performance states responsibly πŸ¦‹βœ¨

β€” cute sign-off time: this page came to you courtesy of Debian, dated April 21, 2020, and it lives at HWPSTATE_INTEL(4). periodt. πŸ’…πŸŒΈ

πŸ“¦ where this page comes from