[ltp] Re: High power consumption after suspend/resume cycle

Andrew Lutomirski linux-thinkpad@linux-thinkpad.org
Sat, 3 Oct 2009 11:58:58 -0400


On Fri, Oct 2, 2009 at 5:37 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> On Friday 02 October 2009, Andrew Lutomirski wrote:
>> [Adding cc's to linux-pm and linux-acpi and ]
>>
>> On Fri, Oct 2, 2009 at 1:44 PM, Andrew Lutomirski <luto@mit.edu> wrote:
>> > Hi all-
>> >
>> > I'm running a git kernel that's slightly newer than 2.6.32-rc1.
>> >
>> > First, thanks for all the great work everywhere on laptop power
>> > consumption -- on my Lenovo X200s, it looks like Linux is getting
>> > close to Windows (Windows wins by about 0.7W, except that its power
>> > usage frequently spikes since Windows apparently still doesn't know
>> > how to sit still and do nothing, whereas Linux's seems more stable.),
>> > even running KDE with compositing enabled and
>> > while connected to wifi, at least after some tweaking.
>>
>> [fixed irrelevant typo above, too.]
>>
>> >
>> > There's a catch, though: after a suspend/resume cycle, power
>> > consumption goes up by over well over a watt. =A0(On a system that dra=
ws
>> > about 7 watts before suspending, that's a big deal.) =A0I've tried
>> > turning off X, suspending with 'echo mem > /sys/power/state' to avoid
>> > any distro scripts running, and manually restoring SATA power saving
>> > settings, but it still happens. =A0I even tried unbinding e1000e and
>> > both USB drivers, unloading the i2400 (wimax) driver, iwlagn, and
>> > iwlcore, and it still happens. =A0This is 100% reproducible, and I'd b=
e
>> > happy to test things.
>> >
>> > This could be a BIOS bug I suppose (although I'm running the latest
>> > BIOS), but Windows 7 does not have this problem at all.
>> >
>> > Any ideas about what to try or what subsystem to blame?
>
> It's quite hard to say. =A0Most likely one of devices is put into the ful=
l power
> state during resume and not put back into the low power state it was in b=
efore.
>
> That may be a result of the PCI core handling of resume, which puts all d=
evices
> into D0 in order to restore their standard config registers and doesn't p=
ut
> them into low power states afterwards.

I don't think that's the problem at all -- I diffed the output of
lspci -vvvvxxxx before and after suspend and none of the differences
looked interesting.  Everything was in D0 both before and after.  One
of the EHCI devices had PME asserted after resume, but clearing that
with setpci made no difference.

I did some more experiments that make it look like it's a bug in i915.
 I'll email the maintainers.

>
> If that's really the case, PCI run-time PM should help here once implemen=
ted,
> although that's going to take some time to achieve.

I'm looking forward to another little bit of power savings there, too :)

Thanks,
Andy