Bug 14365

Summary: resume from suspend to ram broken after suspend to disk - Thinkpad T61
Product: Power Management Reporter: Yves-Alexis Perez (corsac)
Component: Hibernation/SuspendAssignee: power-management_other
Status: REJECTED INSUFFICIENT_DATA    
Severity: normal CC: lenb, rjw, rui.zhang, yakui.zhao
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.31 Subsystem:
Regression: No Bisected commit-id:
Bug Depends on:    
Bug Blocks: 7216    
Attachments: lspci -vxx
dmesg before first hibernation
dmesg after first hibernation, before first suspend
dmesg after second hibernation and second suspend

Description Yves-Alexis Perez 2009-10-10 13:40:44 UTC
Hi,

I have a problem on my T61, running 2.6.31.

Steps are:

- boot
- login to desktop
- hibernate
- boot, resume to desktop
- suspend
- try to resume

At that time, when opening the LID, or pressing the Fn key to resume the laptop, the moon blinks once and then stays lighted on, and nothing happens. I can't do anything except pressing the power button for 4 seconds to switch off the laptop.

It happens since quite some time (at least 2.6.26, I guess), I don't think it ever worked correctly.

Cheers,
--
Yves-Alexis
Comment 1 Rafael J. Wysocki 2009-10-10 21:10:55 UTC
Do you use s2disk for hibernation?
Comment 2 Yves-Alexis Perez 2009-10-10 21:31:54 UTC
No, I hibernate from hal which in turns runs pm-hibernate which uses:

echo disk > /sys/power/state
Comment 3 Rafael J. Wysocki 2009-10-10 21:41:55 UTC
Please try doing 'echo shutdown > /sys/power/disk' before hibernation and see if suspend is still broken after that (please do it after a clean boot).
Comment 4 Yves-Alexis Perez 2009-10-10 22:03:01 UTC
It didn't work, same thing happens.
Comment 5 Rafael J. Wysocki 2009-10-11 12:28:53 UTC
Please try "simulated hibernation" with

echo core > /sys/power/pm_test
echo disk > /sys/power/state
(this will sleep for at least 5 seconds)
echo none > /sys/power/pm_test

and see if suspend to RAM works after that.
Comment 6 Yves-Alexis Perez 2009-10-11 12:40:31 UTC
I don't have any /sys/power/pm_test
I guess I need to rebuild a 2.6.31 with some debugging options enabled?
Comment 7 Rafael J. Wysocki 2009-10-11 12:42:16 UTC
Yes. CONFIG_PM_DEBUG has to be set to 'y' for this purpose.
Comment 8 Yves-Alexis Perez 2009-10-11 13:08:21 UTC
(In reply to comment #5)
> Please try "simulated hibernation" with
> 
> echo core > /sys/power/pm_test
> echo disk > /sys/power/state
> (this will sleep for at least 5 seconds)

In fact it didn't really “sleep”. It started a suspend to disk, shrunk the memory etc. but didn't stop the machine. Then it started resuming to normal desktop.

> echo none > /sys/power/pm_test
> 
> and see if suspend to RAM works after that.

After that, the suspend to ram went fine, and resumed fine.
Comment 9 ykzhao 2009-10-12 14:42:12 UTC
Hi, Yves-alexis
    Will you please do the following suspend/resume test after hibernation?
    1. dmesg >dmesg_before;
    2. echo mem > /sys/power/state; dmesg >dmesg_after; sync;
    3. after the system enters the sleeping state, press the power button and see whether the system can be resumed.
    4. If it can't be resumed, please reboot the box and check whether the file of dmesg_after is created. If it is created, please attach the files of dmesg_before, dmesg_after.

    Thanks.
Comment 10 ykzhao 2009-10-12 14:43:07 UTC
Please attach the output of acpidump, lspci -vxxx.
thanks.
Comment 11 Yves-Alexis Perez 2009-10-12 17:36:35 UTC
Created attachment 23362 [details]
lspci -vxx
Comment 12 Yves-Alexis Perez 2009-10-12 18:08:14 UTC
(In reply to comment #9)
> Hi, Yves-alexis
>     Will you please do the following suspend/resume test after hibernation?
>     1. dmesg >dmesg_before;
>     2. echo mem > /sys/power/state; dmesg >dmesg_after; sync;
>     3. after the system enters the sleeping state, press the power button and
> see whether the system can be resumed.
>     4. If it can't be resumed, please reboot the box and check whether the
>     file
> of dmesg_after is created. If it is created, please attach the files of
> dmesg_before, dmesg_after.
> 

dmesg_after is never created.

I noticed that, at one point, I managed to get a working machine after the second resume, but was never able to reproduce it, so I don't know what happened at that time. But I do have the resume_after for this one so I'm attaching it just in case.
Comment 13 Yves-Alexis Perez 2009-10-12 18:12:19 UTC
Created attachment 23363 [details]
dmesg before first hibernation
Comment 14 Yves-Alexis Perez 2009-10-12 18:12:57 UTC
Created attachment 23364 [details]
dmesg after first hibernation, before first suspend
Comment 15 Yves-Alexis Perez 2009-10-12 18:13:27 UTC
Created attachment 23365 [details]
dmesg after second hibernation and second suspend
Comment 16 Zhang Rui 2010-01-18 02:25:41 UTC
please use "echo mem/disk > /sys/power/state" to suspend/hibernate, and use power button to resume, instead of Lid/Fn keys.
does the problem still exist?
Comment 17 Zhang Rui 2011-04-19 07:51:35 UTC
bug closed as there is no response from the bug reporter.
please re-open it if the problem still exists in the latest upstream kernel.