Testing For The Latest Linux Kernel Power Regression

Written by Michael Larabel in Software on 29 August 2014 at 12:00 AM EDT. Page 1 of 5. 11 Comments.

As I wrote about yesterday, there appears to be a new Linux kernel power regression that's yet to be solved by the latest Linux 3.17 code. The issue was originally tracked down to being a regression introduced during the Linux 3.15 stable cycle that disabled frame-buffer compression support by default for the Intel DRM graphics driver, but the impact it's had on the system power draw is much greater than what was anticipated by the Intel developers. A separate Intel employee is also reporting increased power draw, so I decided to run some tests on a few local systems to see what I'm encountering in the power consumption primarily between Linux 3.15 and 3.16.

Frame-buffer compression (FBC) support was disabled by default in the Linux 3.15 stable series for Haswell hardware and newer since the support wasn't mature and there were Intel HD Graphics users reporting issues with this feature being turned on, so it was disabled by default and hidden behind a kernel module parameter. After an Arch Linux user experienced a 4+ Watt increase in power draw for his Apple laptop, he bisected it to this FBC feature, but Intel Linux developers weren't expecting FBC to make such a huge difference in power draw. The matter is still being investigated but FBC simply can't be flipped back on by default since the code is incomplete and there's still some unmerged patches under review that won't make it until at least the Linux 3.18 kernel.

For seeing how recent kernels have been burning through power on a few of my local systems, first I decided to run some basic tests on an ASUS Zenbook ultrabook with Core i7 3517U processor and HD Graphics 4000 (and NVIDIA Optimus graphics that weren't in use). This system was running Ubuntu GNOME 14.04 where I tested the mainline/vanilla Linux 3.13, 3.14, 3.15, 3.16, and 3.17 Git kernels. All benchmarking was done via the Phoronix Test Suite and with the MONITOR=sys.power environment variable set so it would monitor the laptop's battery usage during testing.

From this Ivy Bridge ultrabook I first ran Xonotic where the reported power difference on battery between the tested kernels wasn't much... Between Linux 3.13 and 3.17 Git, the power consumption only differed by two Watts at most.

While the Xonotic data from the Ivy Bridge laptop wasn't interesting, when running LAME MP3 and watching the battery usage there is a clear difference... When running the MP3 encoding process on this Core i7 ultrabook, the power consumption with Linux 3.13~3.15 was 19~20 Watts, but when turning to the Linux 3.16 stable kernel and Linux 3.17 Git, the power consumption rose to 23 Watts on average. The peak power consumption was also much greater at 26~27 Watts whereas Linux 3.15 peaked at just 20 Watts.


Related Articles