Mobile Users Beware: Linux Has Major Power Regression
For those that follow my personal Twitter feed will know that for the past week I've been closely testing Ubuntu 11.04 and all Ubuntu releases going back to Ubuntu 8.04 on many mobile devices in the office. The overall system performance, power consumption, and boot performance have been the principal targets. However, late this week I discovered a glaring regression: Ubuntu 11.04 is viciously going through power. Compared to Ubuntu 10.10, the power consumption on Ubuntu 11.04 for mobile devices is up about 10% on average but under some workloads, I am seeing the power consumption up by nearly 30%. This is happening on many mobile systems spanning multiple generations of Intel CPUs and with Intel / ATI / NVIDIA graphics. This issue has been tracked down to a frightening kernel regression in the mainline tree that is still not addressed.
In the publishing queue for Monday morning is the main article for the full power consumption results with all of the tested mobile devices, more details, and of the Ubuntu releases going back to 8.04 Hardy. However, due to the severity of the regression, this afternoon I am putting out the key bits of information that illustrate the regression. During the Linux 2.6.38 kernel development, a regression was introduced causing systems to burn through significantly more power. The below graph shows the battery power consumption of one of the Lenovo ThinkPad notebooks under the Linux 2.6.35, 2.6.36, 2.6.37, 2.6.38, and 2.6.39 (Git code as of 19 April 2011) kernels. Unlike some of the other regressions to have been highlighted on Phoronix, this regression is still unfixed in Linux 2.6.39. On the particular system being talked about in the article today is the power consumption going up by 14%, which would lead to a noticeably shorter battery life.
This particular result is for the ThinkPad T60 with an Intel Core Duo and ATI Mobility Radeon graphics, but the power regression as spotted by the original Ubuntu 11.04 tests has been found on hardware going back to a vintage Pentium M notebook and also under Atom netbooks to a lesser extent. As far as what the above graph illustrates, it is a composite overview showing the battery power consumption when the Ubuntu Linux system was idling followed by running the OpenArena game, and then running the OpenSSL benchmark to show a variety of workloads. The Linux 2.6.35/2.6.36/2.6.37 results are virtually identical, but with 2.6.38 is where the regression strikes. As far as the Linux 2.6.39 results, it shows the regression still present. The Linux 2.6.39 results are slightly different from the 2.6.38 results likely because the Intel 3945ABG WiFi adapter separately regressed and is currently borked/non-functional in this kernel on the ThinkPad T60. Below are the results broken down by test profile.
The above graph shows each of the kernel's power consumption when the system was doing nothing but idling in the GNOME desktop. Between the Linux 2.6.37 and 2.6.38 vanilla kernels, the power consumption goes up by an average of 18% when just idling.