Visible to Intel only — GUID: GUID-DA639363-151E-4D74-BF69-9923F2334C2E
Visible to Intel only — GUID: GUID-DA639363-151E-4D74-BF69-9923F2334C2E
How to Debug Suspend-Resume Issues
The purpose of going through the steps below is to help narrow down the root cause (BIOS? Kernel? Graphics driver?) of the suspend/resume failure and provide more info for debugging.
Prerequisite: No processes using /proc/acpi/event (which might be used by, for example, gnome-power-manager, to interfere with some ACPI related actions, like pressing the power button).
- Get the process id by "lsof /proc/acpi/event".
- Kill these processes.
- Perform suspend/resume test under both text console mode (init level 3) and X mode (init level 5) to see if it's X specific. If they are with the same failure, let's focus on text console mode and just provide logs under that condition.
Provide the following lofgs before and after suspend/resume:
- dmesg output
- intel_reg_dumper output (using reg_dump tool in xf86-video-intel source package)
- intel_gpu_dump output (see this guide)
- To narrow down the issue, try removing modules before you suspend. This can help determine which module is responsible for a suspend or resume failure. For example, if you remove the b43 module and then suspend/resume works, there's likely a problem with either b43 or the wifi stack.
- If you remove i915 module, and suspend/resume still fails, it's likely not our drm graphics driver bug. Please file the bug at bugzilla.kernel.org,
select the component "Power Management - Hibernation/Suspend", and CC rafael.j.wysocki@intel.com.
S3 Suspend (Suspend to RAM):
A. Check if the Resume Hang is Caused by a Graphics Driver:
- Run: dmesg > dmesg_before; echo mem > /sys/power/state; dmesg > dmesg_after
- Press the power button to see if the machine can be resumed.
- If it can't be resumed, reboot the system then check if the file "dmesg_after" generated.
- If dmesg_after exists, it means that the system can be resumed from BIOS, so it's likely to be a graphics issue. Otherwise, it's not related to graphics and don't report it to freedesktop.org bugzilla.
B. Suspend/Resume by Skipping BIOS:
- Enable CONFIG_PM_DEBUG in kernel configuration, so that we can use /sys/power/pm_test.
- Run: echo core/processors/devices > /sys/power/pm_test
- Run: dmesg > dmesg_before; echo mem > /sys/power/state; dmesg > dmesg_after
- Wait for about five seconds and see whether it can be resumed correctly.
- If it can't be resumed correctly, it may be graphics driver bug. This information is helpful to narrow down the issue.
S4 Hibernation (Suspend to Disk):
If resume fails at kernel booting stage, try adding boot option "resume=/dev/XXXX" (XXXX means the swap partition).
Check if hibernation under console mode has the same failure as in X mode.
- Boot the system into init level 3 (text mode).
- Run: echo disk > /sys/power/state
- Press the power button to see if the system can be resumed correctly.
- If it can be resumed normally, the issue may be related to the graphics driver.
- If it can't be resumed normally, the issue may be related to the Linux kernel.