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 is powersave for all cores. In this mode, the CPU is borderline unusable as it keeps all cores running at 400Mhz except for short bursts of turbo boosts, where they go to 4.8GHz and then back.
  • Setting the scaling_governor to performance for a core makes it run at nominal 3GHz, turbo-boosting to 4.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?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.