Kernel comment: Untapped power saving potential
by Thorsten Leemhuis
Recent Linux kernels, and distributions based on them, don't make use of some of the power-saving features offered by modern computers because they can cause problems on some systems. The distributions tend to just ignore such difficulties – but it is they who are best placed to remedy them.
BIOS bugs which result in unnecessarily high power consumption were a major talking point in the spring and summer. Ubuntu 11.10, released on Thursday, has left some users facing a similar problem because the Linux 3.0 kernel employed in the new distribution no longer uses the Sandy Bridge graphics core's RC6 power-saving feature. Sandy Bridge processors were introduced by Intel at the start of this year and are now in widespread use. RC6 can result in considerable reductions in power consumption.
Deactivating RC6 on one of the Sandy Bridge laptops tested for Linux compatibility in c't 20/11 increased idle power consumption (measured at the power supply) from around 15 to around 21.5 watts. This roughly 40 per cent increase noticeably shortened battery life and caused the fan to run more frequent and loudly. Other laptops displayed a similar change in power consumption. All of the systems that c't used in their RC6 tests remained stable when the power saving technology was active. This was likewise the case on a desktop system containing a Sandy Bridge Pentium on which RC6 reduced power consumption from around 35 to 30 watts.
The 2.6.38 kernels in Ubuntu 11.04 and Fedora 15 used RC6 on Sandy Bridge processors by default. In Linux 3.0 and 3.1, that's no longer the case. This is due to a bug report (currently unavailable as a result of the recent kernel.org intrusion). Unless they activate RC6 by passing the argument i915.i915_enable_rc6=1 to the bootloader, some laptop users are therefore likely to notice a drop in battery life after updating from Ubuntu 11.04 to 11.10. Fedora 15 users will also have experienced this problem in recent weeks, assuming they have installed kernel version 2.6.40, which is being distributed as a standard update and is actually a disguised 3.0 kernel.
Several parties deserve a share of the blame for the increased power consumption in the absence of RC6.
Part of the responsibility lies with Intel's driver developers. When first released, the graphics driver code contained a number of bugs which did occasionally lead to problems with RC6. The developers have at least been hard at work remedying this and many of these bugs have been fixed in recent months. They tried to get RC6 reactivated by default in both Linux 3.0 (1, 2) and Linux 3.1 (1, 2), but because users who had previously complained of problems continued to report difficulties (1, 2, 3), in both cases the change was revoked.
Next: Torvalds' modus operandi