During some update my Lenovo Z510 with an Intel I7-4700MQ cpu lost the ability to automatically scale the cpu frequency with the following kernels (maybe a few previous ones too. I’m not sure).
linux 6.1.1.arch1-1
linux-lts 5.15.84-1
linux-lts510 5.10.153-1
The cpu frequency is at 798 MHz on battery and 798MHz or sometimes 2.4 GHz plugged in to the charger (it’s a crap shoot). All other functions seem to work as expected.
However,
linux-lts54 5.4.223-1
still scales dynamically as expected with battery or with charger plugged in. Although it seems to scale more aggressively with the charger than with battery only.
I only noticed because mkinitcpio was taking forever to finish compiling and browser page updates were slow.
This is similar to the problem reported in:
I didn’t revive that topic since it was more than a year old.
Solution was pretty simple once I read through half a dozen wiki articles on cpu frequency at least twice.
Installed cpupower
Turned on governor=‘ondemand’ in /etc/default/cpupower
Enabled cpupower.service with systemctl enable cpupower.service
Started cpupower.service with systemctl start cpupower.service
Edit 1
Well the solution is not so simple. While
# cpupower frequency-set -g ondemand
works as expected, I cannot get the systemd service to honor the config file:
/etc/default/cpupower
that cpupower is supposed to read.
Edit2
Seems I had cpupower.service and cpupower-gui.service competing with each other. I Stopped and disabled cpupower-gui.service and all works as it should. Since I don’t plan on using cpupower-gui I installed it.