This is just a notice to everyone searching for things like "why is my computer always booting in powersave / power save mode?"
I had the same "problem" going on with my computer, but finally found a single line that explains why that is expected behavior if you have an Intel CPU/processor using the
So when I started this journey, I initially noticed a message showing up in the journal during boot:
ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
Normal? But I had set the power profile in KDE to performance if it was on AC (and it is). Why is it changing to normal?
Now, if I install
cpupower and set it to performance mode (or via
sysfs similar to below), it still changes the energy performance bias to performance. On kernels older than 5.18, I do notice a slight improvement by changing this value manually (or automatically via a script, but doesn't seem to auto-change based on power state).
>>> cat /sys/devices/system/cpu/cpu*/power/energy_perf_bias File: /sys/devices/system/cpu/cpu0/power/energy_perf_bias 6 ...
A value of 6 is normal, lower values down to 0 goes to performance, and higher values are for powersave. 6 appears to be the default.
I then discovered other values like scaling governor.
>>> cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor File: /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor powersave ...
Powersave? I thought it should be performance?
After digging around the internet and seeing most documentation pointing to
tlp refering to what values this could be (and noting that
intel_pstate only has the values powersave and performance available). However,
tlp is not installed by default and isn't anymore. It provides roughly the same function as
power-profiles-daemon, but the latter is required for KDE's power settings to work. You can't have both installed, they conflict.
So I went to the
power-profiles-daemon gitlab page.
Partway down the page under the "Operations on Intel-based machines" heading, there is a small paragraph:
Finally, if the Intel P-State scaling driver is used in
activemode, the P-State scaling governor will be changed to
powersaveas it is the only P-State scaling governor that allows for the "Energy vs Performance Hints" to be taken into consideration, ie. the only P-State scaling governor that allows power-profiles-daemon to work.
So the CPU governor value is expected to be
powersave if you have the
intel_pstate driver as it's the only one that will work properly with the power profile daemon. When I change it to
performance manually I notice some strange stuttering happening.
As far as the other stuff... I suppose the
ENERGY_PERF_BIAS value largely has little effect when
intel_pstate driver is used.
If you want to see what power profile daemon is set to, you can use
>>> powerprofilesctl * performance: Driver: intel_pstate Degraded: no balanced: Driver: intel_pstate power-saver: Driver: intel_pstate
The asterisk (*) is the one that is currently in use, so clearly it is set to performance which is what I expect... even if the other values for
/sys/devices/system/cpu/cpu*/ are not what you would expect.
TLDR: The driver seems to ignore some hinting values and requires the governor to be
powersave to work properly with the software performance hinting libraries, so you don't need to worry about those.