CPUFreq is the interface and infrastructure provided by
the Linux® kernel to control
processor performance state capability.
Processor performance states (P-states) and processor operating
states (C-states) are the capability of a processor to switch between
different supported operating frequencies and voltages to modulate
power consumption. The Advanced Configuration and Power Interface
(ACPI) specification (http://www.acpi.info/spec.htm) defines
the CPU P-states power management states. The number of P-states is
processor specific. If configured properly according to system workload,
this feature provides power savings. Higher P-state numbers represent
slower processor speeds. Power consumption is lower at higher P-states.
For example, a P3 state is higher than a P1 state. A processor in
P3 state will run more slowly and use less power than a processor
running at P1 state. To operate at any P-state, the processor must
be in the C0 operational state where the processor is working and
not idling.
The ACPI specification also defines the CPU C-states power management
states. CPU operating states (C-states) are the capability
of an idle processor to turn off unused components to save power.
When a processor runs in the C0 state it is working. A processor running
in any other C-state is idle. Higher C-state numbers represent deeper
CPU sleep states. At higher C-states, more components shut down to
save power. Some components that are shut down include stopping the
processor clock and stopping interrupts. A disadvantage is that deeper
sleep states have slower wake up times.