Processor

Sluggish performance with kernel 5.7 (and newer)

Symptoms: you have configured the powersave scaling governor for intel_pstate:

CPU_SCALING_GOVERNOR_ON_AC=powersave
CPU_SCALING_GOVERNOR_ON_BAT=powersave

and tlp-stat -p displays

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver    = intel_cpufreq
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  = powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors = conservative ondemand userspace powersave performance schedutil

Cause: starting with kernel 5.7, the intel_pstate scaling driver selects “passive mode” aka intel_cpufreq for CPUs that do not support hardware-managed P-states (HWP), i.e. Intel Core i 5th gen. or older. The governor powersave provided by intel_cpufreq works differently than the one provided by intel_pstate and produces the sluggish behaviour.

Solution: use the default governor – should be schedutil - by commenting above configuration lines or configure it explictly:

CPU_SCALING_GOVERNOR_ON_AC=schedutil
CPU_SCALING_GOVERNOR_ON_BAT=schedutil

For details refer to CPU_SCALING_GOVERNOR_ON_AC/BAT.

CPU_BOOST_ON_BAT/AC=0 decreases scaling_max_freq

Affected hardware: ThinkPad X1 Carbon Gen9

Symptom: tlp-stat -p shows scaling_max_freq way below the nominal frequency of the CPU:

+++ Processor
CPU model      = 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver    = intel_pstate
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  = powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq  =  1200000 [kHz]

Probable cause: intel_pstate driver or UEFI firmware bug.

Workaround: either do not disable turbo boost or configure additionally PLATFORM_PROFILE_ON_AC/BAT (Version 1.4 and newer only, see Issue #570 for details).

Frequency scaling settings do not get applied

Symptom: tlp-stat -p shows values that do not reflect configuration.

There are several possible causes:

Invalid frequency settings

Solution: tlp-stat -p tells the possible frequencies for your CPU. Example:

/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies = 2400000 1600000 800000 [kHz]

No ondemand governor with intel_pstate

Symptom: tlp-stat -p displays

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = powersave

Works as designed: since kernel 3.9 the new scaling driver intel_pstate is available and enabled by default on Intel Sandy Bridge (or newer) hardware. intel_pstate supports the governors powersave (recommended default) and performance only, ondemand is not available.

AMD CPU with amd-pstate-epp driver doesn’t switch EPP

Solution: AMD EPP requires at least TLP version 1.6.

Governor performance also locks EPP to performance

Symptom: energy_performance_preference is set to performance regardless of CPU_ENERGY_PERF_POLICY_ON_AC/BAT. Happens with amd_pstate and intel_pstate in active mode. tlp-stat -p gives

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver    = amd-pstate-epp | intel_pstate
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  = performance
/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference = performance [EPP]

Works as designed: full throttle and brake at the same time isn’t permitted by the kernel driver. Makes sense, doesn’t it?

tlp-stat -p shows “x86_energy_perf_policy: program for your kernel not installed.”

Depending on the distribution your mileage may vary:

  • Ubuntu: install the metapackage linux-tools-generic or linux-tools-generic-lts-* for HWE stack kernels, no package is available for mainline kernels.

  • Debian: install the package linux-cpupower.

  • Arch: install the package x86_energy_perf_policy.

  • Fedora: install the package kernel-tools.