Linux power regression + overheating problem on ThinkPad [fixed?]

November 10, 2011 – 11:28 pm by Adnan Hodzic

This post is also available on/was written for OMG! Ubuntu

This blog post isn’t only directed to ThinkPad owners as most notebook Linux users with Intel Core Duo 1/2 and i3/i5/i7 processors have been affected by this bug if not all. And yes, this problem is present on latest Debian Unstable and Ubuntu 11.10.


I’m owner of Thinkpad X300, great machine except the fact that just recently I replaced its 3rd cooling fan!  Yea, I do a lot of compiling and it’s on all the time, but still this kind of things shouldn’t happen. I first linked this problem to the fact that Thinkpad fan on Linux (as of 2.6.22) always works at what’s its basically maximum RPM, thus the reason there are numerous fan control scripts. My favorite one is Thinkfan, but controlling fan doesn’t really help if you have a overheating problem. For matter of a fact it working on its maximum speed might only help, with its own toll.

As of kernel 2.6.38 up until 3.1 (still present) there has been a problem of power regression but besides this I had slight problem with overheating. Regarding overheating in beginning I tried reporting bugs, tried different Thinkfan configurations, blamed proprietary software such as Adobe Flash for spiking up CPU temperature, however this problem was somewhat solved. After numerous battery calibrations and as these didn’t work in the end for battery life getting poorer with each day, I just blamed the factor that notebook  was getting pretty old (~3 years).

Then the consumer woke up inside of me and I thought it was time to get new notebook. I laid my eyes upon ThinkPad X1 thing of beauty except one mayor drawback, its price. I did some reading on X1 and interesting enough, X300 comes with Core Duo 2 L7100 but overheating + power regression was still present even on latest Intel Core I* series. Reading this killed the consumer and woke up the hacker side.


Initial workaround to the problems of power regression is to add “pcie_aspm=force” besides existing GRUB boot arguments, this did help to some point but what really helped in both cases was also adding “i915.i915_enable_rc6=1” or at least I thought so since this line only applies to Sandy Bridge (i3/i5/i7) and latter. In the end my “/etc/default/grub” looks like:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force i915.i915_enable_rc6=1"

and make sure you run “update-grub” after making these changes. Besides the arguments I used there are other ones you can use and for more info please head to “Tweaks To Extend The Battery Life Of Intel Linux Notebooks“.

Results I ended up with such simple tweak are more then satisfactory as I got some ~45 extra minutes of battery life besides the fact that it lowered temperature by some ~10 °C. Guess this also gives me extra time until I get a chance to lay my hands on X1 Smile


After I posted this some argued that this is a workaround rather then a fix and folks at [Phoronix] just posted what they call a proper solution to this problem.  Also please note although Sandy Bridge users that enable this might sometimes get a video corruption bug, i915_enable_rc6 is still supposed to get enabled by default in 3.2. So logical conclusion you can come up with is unless you’re troubled by this problem, you might not want to use this “work around/fix” at this point. And hope it’ll be fixed in future releases of your favorite Linux distribution.

  • HarveyKelly

    Brilliant. I switched distros as I thought it was a Debian problem, but I had much worse trouble when I tried Fedora 15, and then with Arch (a better experience as I learnt how to control cpu_freq!) it was still worse than Wheezy/Sid so I returned to Debian Unstable as of two days ago, but was wondering if I should go back to Squeeze as Linux has been burning up my laptop!

    Many thanks (although my kitten won’t thank you as he likes sitting on top of a roasting laptop).

  • HarveyKelly

    Just thought… you should add this to the Debian Wiki.

  • Matthew Garrett

    enable_rc6 will do nothing on the X300. It only applies to sandybridge and later.

  • Adnan Hodzic

    Glad I helped Smile

  • Adnan Hodzic

    yes you’re right, I’ll have the posted edited mentioning this, tnx for the heads up. 

  • John Eikenberry

    According to the intel dev’s blog i915_enable_rc6 is supposed to be enabled by default again in 3.2. You can get more details if you search a bit on the blog;

  • John Eikenberry

    Sandy bridge users that enable this sometimes get hit by a video corruption bug. You can track progress on that bug at;

  • Pingback: FoolControl – Phear the penguin » Blog Archive » Linux power … | Linux Supersaniya()

  • Pingback: FoolControl – Phear the penguin » Blog Archive » Linux power … | What is Linux()

  • Fabian

    I’d call this [worked around] and not [fixed], though.

  • Aa
  • Adnan Hodzic

    I edited the post and included your link. 

  • Adnan Hodzic

    I edited the post and included your link.

  • Adnan Hodzic

    edited the post and mentioned what you said as I didn’t have direct link to point to the issue we’re discussing here. 

  • Fedhaghafoor

    Regression Testing
    Regression Testing,regression test, regression tests, what is regression testing, performance testing, application testing, quality assurance testing, testing tool, regression test tools