Yeah, no one cares my problem, that's a tremendous pity.
However, luckily, I lave found a solution to deal with it!
What limits the CPU's maximum frequency? BIOS!
The file /sys/devices/system/cpu/cpu*/cpufreq/bios_limit
tells the limitation value of BIOS.
On condition that performance
governor is activated, when I use battery only, the value of bios_limit
is 2400000, the maximum of the hardware. However, when I connect AC adapter, this value will soon lower to 1600000.
By default, Linux's governor follows bios_limit
, so the problem occurs. But we can let Linux to ignore it, and don't let the maximum frequency stucks. Just set ignore_ppc
to 1.
echo 1 | sudo tee /sys/module/processor/parameters/ignore_ppc
And modify /etc/default/grub
to automatically set ignore_ppc
on reboot. Open it with root privilege, attach processor.ignore_ppc=1
to GRUB_CMDLINE_LINUX_DEFAULT
, just like this:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash processor.ignore_ppc=1"
then run:
sudo update-grub
and reboot.
References: