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
powersavefor all cores. In this mode, the CPU is borderline unusable as it keeps all cores running at
400Mhzexcept for short bursts of turbo boosts, where they go to
4.8GHzand then back.
- Setting the
performancefor a core makes it run at nominal
3GHz, turbo-boosting to
4.8GHzfor as long as it can, with no reason (laptop idle) until some cutoff is reached (
thermaldis 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