Processor

How to limit Power Consumption under high CPU Load?

The intel_pstate scaling driver offers this possibility. Use the settings

CPU_MAX_PERF_ON_AC=nn
CPU_MAX_PERF_ON_BAT=nn

with nn < 100 to achieve it. Refer to CPU_MIN/MAX_PERF_ON_AC/BAT.

Note

  • Check the output of tlp-stat -p to determine the active scaling driver
  • This will not limit the power consumption of the GPU (neither for integrated nor for discrete graphics)

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 gone.

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.