CPU power management

Some CPU’s and system boards allow you to change operating voltage and frequency, resulting in a corresponding change in performance, and power consumed.

To test what frequencies are supported:

# kstat -m cpu_info -s supported_frequencies_Hz
module: cpu_info instance: 0
name: cpu_info0 class: misc
supported_frequencies_Hz 2000000000:2667000000module: cpu_info instance: 1
name: cpu_info1 class: misc
supported_frequencies_Hz 2000000000:2667000000module: cpu_info instance: 2
name: cpu_info2 class: misc
supported_frequencies_Hz 2000000000:2667000000

module: cpu_info instance: 3
name: cpu_info3 class: misc
supported_frequencies_Hz 2000000000:2667000000

In this example (Xeon x5355), two frequencies are supported: 2.000 and 2.667 GHz

What is the current frequency:

# kstat -m cpu_info -s current_clock_Hz
module: cpu_info instance: 0
name: cpu_info0 class: misc
current_clock_Hz 2000000000module: cpu_info instance: 1
name: cpu_info1 class: misc
current_clock_Hz 2000000000

module: cpu_info instance: 2
name: cpu_info2 class: misc
current_clock_Hz 2667000000

module: cpu_info instance: 3
name: cpu_info3 class: misc
current_clock_Hz 2667000000

In this example, two cores are running at 2.00GHz and two at 2.667GHz

To enable CPU power management add the following lines to /etc/power.conf and let pmconfig reread the config:

# vi /etc/power.conf
...
cpupm enable
cpu-threshold 1s
...
# pmconfig
#

Or download and install powertop. When you start it, press “p” to enable CPU power management.

Using dtpower:

To be able run dtpower as a superuser (only) edit /etc/default/power:

# vi /etc/default/power
. . .
PMCHANGEPERM=-
CPRCHANGEPERM=-
. . .
#

ATTENTION: If you have an ASUS DSBF motherboard you need to upgrade the BIOS to AT LEAST version 1004. Older revisions do not support multiple frequencies.

Additional information: