DPM for Intel Centrino Notebooks

Dynamic Power Management for Intel Centrino Notebooks

Installation

Start with a 2.6 kernel from kernel.org and apply the appropriate dpm-2.6.x.patch from sourceforge. Kernel support for Centrino platforms is included with the DPM core software. The code is based on the speedstep-centrino cpufreq driver by Jeremy Fitzhardinge. Use CONFIG_DPM_CENTRINO=y.

Utilities are in dpm-utils-centrino package from sourceforge. Currently, utils for the 1.4GHz Pentium-M model only are supplied. Start with script dpm-setup-centrino-1.4G, edited as necessary for your processor model (see the cpufreqs code or the data sheet).

See the generic DPM setup and usage instructions for more information.

Analysis

DPM works best for platforms on which significant power savings can be realized by scaling power parameters (such as CPU frequency) very low during idle periods. It is usually necessary to scale dynamically when applications need processing power on these platforms because the very low operating points are too low-powered to meet the application requirements. In the case of the Intel Centrino 1.4GHz notebook we evaluated, the lowest operating point available still provides a 600MHz CPU clock, and so relatively smaller power savings can be obtained on this platform than on platforms that implement more aggressive operating points. At the lowest operating point, plenty of processing power is available for applications such as multimedia playback that are often the applications that can benefit the most from DPM capabilities on lower-powered devices such as cell phones and PDAs.

We setup a Fluke 105B Scopemeter (thanks to Scott Anderson) to observe the power being drawn during various activities in three configurations: no DPM running at the highest operating point, using DPM scaling between the highest operating point active and the lowest operating point when idle, and no DPM running at the lowest operating point. The battery was removed to exclude the effects of battery charging. The results included:

Activity No DPM 1.4GHz Power (amps) DPM 1.4GHz active 600MHz idle (amps) No DPM 600MHz Power (amps)
idle shell prompt 1.42 0.91 0.91
find / 1.92 1.85 1.03
madplay file.mp3 1.46 0.95 0.93

We also ran a full compile of the linux-2.6.0-test5 kernel in the three configurations:

Config Total time Max power (amps) Avg power (amps)
No DPM 1.4GHz 6m4s 2.08 1.98
DPM 1.4GHz active 600MHz idle 6m5s 2.06 1.96
No DPM 600MHz 12m32s 1.08 1.04

The DPM scaling causes the system to perform approximately like a 600MHz system when idle or running less-demanding applications such as MP3 playback, and to perform approximately like a 1.4GHz system when running an almost completely cpu-bound activity such as the kernel compile (which spent very little time in the disk sleep state). Systems that frequently switch back and forth between the two types of workloads may exhibit greater power savings while supplying performance when needed.