I am using cpupower to set the governor to powersave via cpupower.service at boot using the config at /etc/default/cpupower:
# Define CPUs governor
# valid governors: ondemand, performance, powersave, conservative, userspace.
governor='powersave'
# Limit frequency range
# Valid suffixes: Hz, kHz (default), MHz, GHz, THz
# min_freq="400MHz"
# max_freq="4600MHz"
# Specific frequency to be set.
# Requires userspace governor to be available.
# Do not set governor field if you use this one.
#freq=
# Utilizes cores in one processor package/socket first before processes are
# scheduled to other processor packages/sockets.
# See man (1) CPUPOWER-SET for additional details.
#mc_scheduler=
# Utilizes thread siblings of one processor core first before processes are
# scheduled to other cores. See man (1) CPUPOWER-SET for additional details.
#smp_scheduler=
# Sets a register on supported Intel processore which allows software to convey
# its policy for the relative importance of performance versus energy savings to
# the processor. See man (1) CPUPOWER-SET for additional details.
#perf_bias=
# vim:set ts=2 sw=2 ft=sh et:
cpupower frequency-info
analyzing CPU 0:
driver: intel_pstate
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: Cannot determine or is not supported.
hardware limits: 400 MHz - 4.60 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 400 MHz and 4.60 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 2.48 GHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes
I have been keeping an eye on the CPU frequency with htop and it seems that it idles at 2000MHz almost all the time on all the cores and just very rarely goes down to 800-900 MHz on one or another core but never below.
I would expect lower CPU frequencies when the governor is set to powersave since the CPU has the lowest hardware limit of 400 MHz.
I am not sure if I have missed some steps or misunderstood something with regard to CPU scaling as described in the ArchWiki.
Any help/suggestions/pointers/comments are highly appreciated.
# Sets a register on supported Intel processore which allows software to convey
# its policy for the relative importance of performance versus energy savings to
# the processor. See man (1) CPUPOWER-SET for additional details.
#perf_bias=
Edit:
I set the epb value for all the cores to 15 but it doesn’t seem to make any difference.
I am going to set it in /etc/default/cpupower and test.
I don’t have TLP installed.
Also, I have disabled power-profiles-daemon as well before starting to use cpupower.
I did now:
# cpupower set -b 15
but the situation remains the same as described in the op. I am stumped
The only method remaining is:
# x86_energy_perf_policy *epb*
I am going to try it and report back.
Edit:
Tried: x86_energy_perf_policy 15 as well. Still the same.
Also, in /etc/default/cpupower, set perf_bias= to 15 (and also “15”, unsure of the syntax), restarting the cpupower.service and/or rebooting seems not to have any effects.
It seems the only supported governors are powersave and performance according to cpupower frequency-info:
analyzing CPU 0:
driver: intel_pstate
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: Cannot determine or is not supported.
hardware limits: 400 MHz - 4.60 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 400 MHz and 4.60 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 1.32 GHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes
$ sudo cpupower frequency-set -g ondemand
Setting cpu: 0
Error setting new values. Common errors:
- Do you have proper administration rights? (super-user?)
- Is the governor you requested available and modprobed?
- Trying to set an invalid policy?
- Trying to set a specific frequency, but userspace governor is not available,
for example because of hardware which cannot be set to a specific frequency
or because the userspace governor isn't loaded?
… it should set all cores to the same frequency.
but if you have some implementation running that does set frequencies it will get overwritten.
or … there is some missing setup needed for the CPU… like mine here:
Yes, it uses power-profiles-daemon by default and you get the power options in the settings.
However, It was still the same using it so that’s why I disabled it in favor of cpupower.
Right. I should have been more clear. I did disable and masked it since it got started at boot as a “dependency” of the control-center, I believe. Thanks for pointing it out though!