I bought a laptop with a fairly recent CPU: the i7-1185G7.
On a fresh Ubuntu 20.20 installation (Linux 5.8.0-33-generic), I noticed the laptop was very slow.
I poked around the intel_pstate
parameters in /sys/devices/system/cpu/cpu*/cpufreq
and made the following observations:
- The default
scaling_governor
ispowersave
for all cores. In this mode, the CPU is borderline unusable as it keeps all cores running at400Mhz
except for short bursts of turbo boosts, where they go to4.8GHz
and then back. - Setting the
scaling_governor
toperformance
for a core makes it run at nominal3GHz
, turbo-boosting to4.8GHz
for as long as it can, with no reason (laptop idle) until some cutoff is reached (thermald
is my theory).
The CPU has 4 physical, 8 logical cores. Setting 4 logical cores to performance
and 4 to powersave
drains the battery at ~1%/min. So I get ~1h40m of battery life. Disabling turbo boosts improves this a little bit.
Next I disabled frequency scaling in the BIOS and linux defaulted to use acpi-cpufreq
. With this driver, all cores are always at 400MHz
by default. And I need to set the min/max frequencies I want myself. They usually stay at minimum. This defeats the purpose of having automatic frequency scaling at all.
My question is: can I have purely hardware-controlled frequency scaling? I would like to disable both drivers and have the CPU make its own frequency scaling decision. Is that a possibility? Secondly, where should I best report this behavior, arguably in intel_pstate
?