Welcome to the Slackware Documentation Project

CPU-frequency scaling with Slackware

Overview

CPU frequency scaling is carried out by the kernel. Slackware comes with all requirements necessary to use this feature.

Requirements

The kernel module which provides cpu frequency scaling for AMD processors is powernow_k8; for Intel, the modules are x86_speedstep_centrino and x86_p4_clockmod.

Slackware comes with the cpufrequtils package which helps to configure frequency scaling in an appropriate manner.

Note that on a laptop the appropriate kernel module for cpu frequency scaling is loaded automatically. If your computer is not a laptop, you'll have to load the module via modprobe.

Configuring the kernel

Cpu frequency scaling can be done automatically by a so-called governor, or manually. The governors available are “conservative”, “ondemand”, “powersave” and “performance”. When you build your own kernel, you can choose one of these governors or “userspace” which allows for configuring cpu frequency in userspace. The stock Slackware kernels are configured for “userspace” by default.

Explanation of the governors

The “performance” governer always sets the highest frequency available for the processor. “ondemand” switches dynamically between the available frequencies depending on the system load. “conservative” is similar to “ondemand”, but always tries to use the lowest frequency possible. “powersave” sets the frequency to the lowest possible. When you configure your kernel for “userspace” you can configure the different governors in userspace (which is most convenient).

Checking the cpu frequency settings on your computer

You can check the settings on your system with the command

cpufreq-info

Or using sysfs:

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

where “cpu*” per cpu subdir.

The configuration

The cpufrequtils package provides two commands. With cpufreq-info you can find out which governor is configured and also some other information, for example, the available frequencies for your processor. The cpufreq-set command can be used to set the appropriate governor.

Example

On my laptop I have the following lines in my /etc/rc.d/rc.local file

# CPU-frequency scaling
cpufreq-set --cpu 0 --governor conservative
cpufreq-set --cpu 1 --governor conservative

If using sysfs:

echo "conservative" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo "conservative" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor

Further reading

I recommend reading the manpages for cpufreq-info and cpufreq-set. Also you can read the relevant documentation in the kernel sources.

Sources


In Other Languages
Translations of this page?:
QR Code
QR Code howtos:hardware:cpu_frequency_scaling (generated for current page)