The Leading Cause Of The Recent Linux Kernel Power Problems

Written by Michael Larabel in Software on 26 June 2011 at 11:17 PM EDT. Page 1 of 3. 144 Comments.

"Mobile users are urged to seriously consider these results, and possibly even avoid the Natty Narwhal...I hate to say it, especially in an Ubuntu review, but the mobile edge goes to Windows for now...There are also compelling reasons for folks to avoid [Ubuntu 11.04] at all costs. Linux gamers should see substantial improvements, while mobile users suffer a dramatic loss in battery life," were among the critical comments that Tom's Hardware had in their Ubuntu 11.04 review as they were referencing the power regressions I discovered nearly two months ago within the mainline Linux kernel. As I mentioned on Sunday, the Phoronix Test Suite stack and I have now nailed this major power regression in the Linux 2.6.38 kernel that is affecting a significant number of mobile Linux users. Here is what is happening and a way that you should be able to workaround the serious regression should it affect your computer system(s).

This article is documenting what is the largest contributor to the major Linux power regression in the Linux 2.6.38 kernel that dramatically is shortening the battery life for many Linux users compared to running the Linux 2.6.37 kernel and earlier. The regression is in the mainline kernel tree but was first spotted when Ubuntu 11.04 was on a power consumption binge and is now affecting users of Fedora 15 and other recent Linux distribution releases too. This issue affects not everyone, but a significant number of people are if you go across various Linux forums, Ubuntu 11.04 reviews, the 270+ people in this Launchpad bug report, and in other online destinations.

The 2.6.38 issue is not the only major power regression outstanding in kernel-space, but there is also a more selective Linux 2.6.35 power regression that I have spotted and there is a separate power regression caused by the scheduler too that I am still investigating. Now that I'm able to automatically run power consumption tests from a USB-based AC power meter and battery tests, plus with enhancements to the open-source and enterprise versions of Phoronix Test Suite & Co (Phoromatic, OpenBenchmarking.org, etc), it's very easy to quickly nail down these issues.

It takes about as much time to hit kernel regressions these days as it takes me to drink a Maß of Augustiner at Oktoberfest. Using the Phoronix Test Suite testing solutions, it has long been possible to automatically find regressions in the Linux kernel by layering it atop git-bisect, but now it is breaking into the power world and new frontiers. More details on the other issues going forward, but this article is just centered on the notable 2.6.38 power issue.

While no Linux distribution vendors (surprisingly) stepped up to work on this Linux power management problem, deserving of a shout-out is Intel Corp. Intel didn't provide any resources specifically for tracking down this serious Linux bug, but they earlier provided the wonderful hardware that ended up being used in testing out the many different kernel builds, building all of the kernels during the bisecting process, etc. Specifically, the Intel Core i7 990X Extreme "Gulftown" with its six physical cores plus Hyper Threading is blazingly fast as well as our various Intel Sandy Bridge systems. The SNB-based HP EliteBook as part of the Intel Software Development Platform (that they provided for the per-commit Intel Linux driver testing we are setting up) was also one of the affected notebooks to this power regression and so that was used for testing too. Intel Gulftown and Sandy Bridge processors with their sheer speed dramatically sped up this testing process over the past week when the USB-based power meter arrived.


Related Articles