An Update On The Linux Power Situation In Ubuntu

Written by Michael Larabel in Software on 7 October 2011 at 01:38 PM EDT. Page 2 of 6. 13 Comments.

The MSR_IA32_ENERGY_PERF_BIAS register is meant to give the hardware a generic "hint" whether the operating system is favoring greater power savings or greater performance. Intel has said the EPB MSR will be of greater importance with future generations of processors. With the Linux 3.0.1/3.1 kernel now setting MSR_IA32_ENERGY_PERF_BIAS to "normal" rather than "performance" when booting may seem like a big deal, this MSR is only used in very recent Intel CPUs. MSR_IA32_ENERGY_PERF_BIAS was first found with the 2010 "Westmere" Xeon CPUs and now with Sandy Bridge CPUs and future generations. Older Intel hardware and non-Intel hardware does not use this MSR. You can also check whether your system supports this feature by looking for the "epb" flag in /proc/cpuinfo. Within the dmesg output should also be ENERGY_PERF_BIAS messages, if being used.

Using the back-ported patch on the new 2.6.38 kernel in Ubuntu 11.04 may help if you have new Intel hardware within the past year or so, but it's unrelated to the PCI Express ASPM change and won't do good if you're experiencing other power issues on older hardware. Yet bug #760131 is now marked as fixed by Canonical's Leann Ogasawara with this MSR_IA32_ENERGY_PERF_BIAS patch being applied. Leann additionally said, "If you are still experiencing issues with regards to power consumption even with this patch applied, I strongly urge you to open a new bug report as issues such as this are typically hardware specific and will require different fixes."

Comments in late September responding to these recent developments still confirm the issue. James Ferguson, the Canonical employee who originally created LP #760131 for the Natty power consumption being raised significantly, opened the bug report based upon his Lenovo notebook with an Intel Core 2 Duo L9400. This Penyrn CPU from 2008 does not even support the energy performance bias MSR. Canonical might just be rather anxious to close the bug due to the significant attention it's received.

Previously the power policy for MSR_IA32_ENERGY_PERF_BIAS could be overrode using the "epb=" kernel command line parameter with a value of either disable or a value between 0 and 15. A value of 0 is the highest performance state while 15 is the most energy saving state. The "normal" mode is a value of 7. Now there is an x86_energy_perf_policy utility from Intel that allows passing modes of "performance", "normal", and "powersave" or setting a MSR_IA32_ENERGY_PERF_BIAS integer value directly. At one point there was also a patch proposed for exposing the energy performance bias via sysfs, but sadly, it has not been merged.

To see the Ubuntu 11.10 power consumption today as well as some upstream results, here is a fresh set of tests as of the morning of 7 October.


Related Articles