This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Power management/Processor
This article describes the setup of power management for processors.
CPU frequency scaling
CPU frequency scaling is a technique whereby the frequency of a processor can be automatically adjusted "on the fly" to conserve power and to reduce the amount of heat generated by the chip.
Installation
BIOS
Some functions can be enabled or disabled in the BIOS. Check that the following are enabled:
- "Processor C1E support"
- "Enhanced Speedstep (EIST)"
Kernel
Activate the following kernel options:
Power management and ACPI options ---> [*] ACPI (Advanced Configuration and Power Interface) Support ---> <*> Processor CPU Frequency scaling ---> [*] CPU Frequency scaling Default CPUFreq governor (ondemand) ---> Select a default governor; see below table Default is ondemand *** CPU frequency scaling drivers *** Select a driver; see below table
A governor is needed, which is responsible for changing the frequency based on its profile:
Option | Module | Supported Processors | Note |
---|---|---|---|
'performance' governor | cpufreq_performance | Sets the frequency statically to the highest available CPU frequency. | For Intel core processors, this should be selected as default. [1] [2] |
'powersave' governor | cpufreq_powersave | Sets the frequency statically to the lowest available CPU frequency. | Can't be set as default. |
'userspace' governor for userspace frequency scaling | cpufreq_userspace | To set the CPU frequency manually or when a userspace program shall be able to set the CPU dynamically. | |
'ondemand' cpufreq policy governor | cpufreq_ondemand | Does a periodic polling and changes frequency based on the CPU utilization. | For processors other than Intel core, this should be selected as default. |
'conservative' cpufreq governor | cpufreq_conservative | Similar to ondemand. The frequency is gracefully increased and decreased rather than jumping to 100% when speed is required. |
Option | Module | Supported Processors | Note |
---|---|---|---|
Intel P state control | intel_pstate | Newer (SandyBridge+) Intel Core | |
Processor Clocking Control interface driver | pcc-cpufreq | ||
ACPI Processor P-States driver | acpi-cpufreq | Older Intel Core, Intel Atom, Intel Pentium M | |
AMD Opteron/Athlon64 PowerNow! | powernow-k8 | AMD Opteron, AMD Athlon 64, AMD Turion 64 | |
Intel Enhanced SpeedStep (deprecated) | speedstep-centrino | Intel Pentium M (Centrino), Intel Xeon | Deprecated, use ACPI Processor P-States driver instead |
Intel Pentium 4 clock modulation | p4-clockmod | Intel Pentium 4, Intel XEON | Causes severe slowdowns and noticeable latencies |
Ticks
The processor saves the most energy when the processor stays longer in power savings mode, so reduce the amount of ticks that wakes the processor up.
Installation
BIOS
Some functions can be enabled or disabled in the BIOS. Check that the following are enabled:
- "HPET"
- "Multimedia timer"
Kernel
Activate the following kernel options:
Processor type and features ---> [*] Tickless System (Dynamic Ticks) [*] High Resolution Timer Support [*] HPET Timer Support
These options now appear to be under "General setup" -> "Timers subsystem".
PowerTOP
PowerTOP is a utility designed to measure, explain and minimize a computer's electrical power consumption.
When it is run, it sorts the running processes in order of how often they cause the processor to wake up. For details on installation, configuration and usage see the separate PowerTOP article.
Hprofile
It is possible to change the active CPU governor using a simple command:
root #
for c in $(ls -d /sys/devices/system/cpu/cpu[0-9]*); do
echo ondemand >$c/cpufreq/scaling_governor; done
Read /etc/local.d/README to learn how to execute this command on startup.
Applications such as sys-power/cpupower do little more than the above but with some interface on top of it. However, having to run certain commands as root depending on the system usage is not efficient for most users. It is better to automate some of the decisions of governing CPU frequency. For instance, when not wired to AC power, most users would like to have the system in a power saving mode.
This is where Hprofile comes into play. Please refer to its article for more information and configuration.
See also
- ACPI - Advanced Configuration and Power Management Interface.
External resources
- What exactly is a P-state? (Pt. 1) - An Intel article (kind of) explaining P-states.
- Linux's "Ondemand" Governor Is No Longer Fit - Explains why ondemand should not be used for newer Intel core processors.
References
- ↑ Dominik Brodowski. Intel P-State driver, CPU frequency and voltage scaling code in the Linux(TM) kernel. Retrieved 12 June 2016.
- ↑ Michael Larabel. Linux's "Ondemand" Governor Is No Longer Fit. Retrieved 15 October 2016.