Bug 93486 - [HP Compaq dc7800 Small Form Factor PC][REGRESSION] suspend/resume failure
Summary: [HP Compaq dc7800 Small Form Factor PC][REGRESSION] suspend/resume failure
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg git
Hardware: x86-64 (AMD64) Linux (All)
: high critical
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
Keywords: bisect_pending, regression
Depends on:
Reported: 2015-12-23 15:54 UTC by Urs Fleisch
Modified: 2017-05-09 17:39 UTC (History)
2 users (show)

See Also:
i915 platform: G33
i915 features: power/suspend-resume


Description Urs Fleisch 2015-12-23 15:54:19 UTC
Suspend to RAM fails, the PC will not wake up again. It only works if I suspend to disk before, then I can suspend to RAM afterwards (as many times as needed) until the PC is rebooted again.

The suspend to disk workaround no longer works on Ubuntu 15.10, but it still works with Arch Linux and it worked with all Ubuntu versions I had on this PC, i.e. Ubuntu 11.10, 12.04, 12.10, 13.04, 13.10, 14.04, 14.10, 15.04. I think this information is still important as it shows that the PC can be brought into a state where suspend to RAM works.

Another observation: The PC can resume from suspend to RAM if nomodeset is added to the kernel cmdline, in which case,the screen isn't turned on after resume but the PC reacts to keyboard and is able to reboot with ctrl-alt-del.

I reported this bug initially to Ubuntu at https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1375995, where it was triaged to be a kernel bug https://bugzilla.kernel.org/show_bug.cgi?id=109811, where they said this is a GPU driver issue. You can find additional information in these two bug reports.

I checked if any remarkable differences between the state of Intel registers can be observed (using intel_reg dump) in the case after reboot (where STR fails) and the case after hibernation (where STR works), however, I could not find any. Please tell me, if I can check anything else.
Comment 1 Imre Deak 2016-09-27 14:38:05 UTC
Could you do a kernel bisect between the good and bad kernel versions (from 15.04 and 15.10)?
Comment 2 Urs Fleisch 2016-11-08 19:00:16 UTC
I could not do a kernel bisect because I have the regression only on Ubuntu. I have now switched to Arch Linux where I still have the same (not optimal but at least usable) behavior: After having suspended to disk, I am able to suspend to RAM. After a reboot or shutdown, it does not work.

I do not know if the Ubuntu kernel is "patched" to cause the failure or if the way how to hibernate (on Arch Linux, I have to used the resume=/dev/swap-partition-name parameter whereas on Ubuntu no additional kernel parameter seems to be necessary) has an effect. I also wonder what effect from hibernation is "healing" suspend to RAM.
Comment 3 Jari Tahvanainen 2017-04-20 14:31:45 UTC
Hello Urs, I'm sorry about this delay until getting back to you. 
I would propose that we mark this bug resolved+worksforme since we cannot reproduce the failure here. 
Please file another bug for Arch Linux, if there is problem with the newest kernel (preferable from drm-tip). 
See https://01.org/linuxgraphics/documentation/how-report-bugs about our instructions if applicable.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.