Currently: rewrite of CPU_Frequency_Scaling#CPU_frequency_driver
CPU frequency scaling enables the operating system to scale the CPU speed up or down in order to save power. CPU frequencies can be scaled automatically depending on the system load, in response to ACPI events, or manually by userspace programs.
Configuration of CPU frequency scaling is done through three mechanics:
- The CPU frequency driver
- The scaling governor
- Fine-tuning of the governor through user-space tools
Since kernel 3.4 the necessary CPU frequency driver modules are loaded automatically and the recommended ondemand governor is enabled by default. This leaves the user with a functional, on-demand, CPU frequency scaling setup requiring no intervention from user-space.
User-space applications like cpupower, acpid, laptop-mode-tools, or GUI tools provided for your desktop environment, may still be used for advanced configuration.
The CPU frequency driver
In order for frequency scaling to work properly, the operating system must first know the limits of the CPU(s). To accomplish this, a kernel module must be loaded that can read and manage the specifications of the CPU(s). Note that these modules may need related features enabled in BIOS which may be labeled as: Speedstep, Cool and Quiet, PowerNow!, or ACPI.
- CPUFreq driver which utilizes the ACPI Processor Performance States. This driver also supports Intel Enhanced SpeedStep (previously supported by the deprecated speedstep-centrino module).
- CPUFreq driver for certain mobile Intel Pentium III (Coppermine), all mobile Intel Pentium III-M (Tualatin) and all mobile Intel Pentium 4 P4-M on systems which have an Intel ICH2, ICH3 or ICH4 southbridge.
- CPUFreq driver for certain mobile Intel Pentium III (Coppermine), all mobile Intel Pentium III-M (Tualatin) on systems which have an Intel 440BX/ZX/MX southbridge.
- CPUFreq driver for K8/K10 Athlon64/Opteron/Phenom processors.
- CPUFreq driver for mobile AMD K7 mobile processors.
- CPUFreq driver for FSB changing on nVidia nForce2 platforms. (AMD K7, Socket A)
- This driver supports Processor Clocking Control interface by Hewlett-Packard and Microsoft Corporation which is useful on some Proliant servers.
- CPUFreq driver for Intel Pentium 4 / Xeon / Celeron processors. When enabled it will lower CPU temperature by skipping clocks. You probably want to use a Speedstep driver instead.
Governors can be thought of as pre-configured power schemes for the CPU. Some of the governors must be loaded as kernel modules in order to be seen by user space programs. One may load as many governors as desired (only one will be active on a CPU at any given time).
- Dynamically switches between the CPU(s) available clock speeds based on system load
- The performance governor runs the CPU(s) at maximum clock speed
- Similar to
ondemand, but the CPU(s) clock speed switches gradually through all its available frequencies based on system load
- Runs the CPU(s) at minimum speed
- Manually configured clock speeds by user
Improving on-demand performance
Changing the on-demand governor's threshold
On-demand governor sampling_down_factor
Tuning conservative governor
Changing the CPU frequency scaling properties from the defaults set during boot can be done through several user-space tools.