KernelLucidSuspendResumeImprovements
Launchpad Entry: kernel-lucid-suspend-resume
Created: ManojIyer
Contributors: ManojIyer, Andy Whitcroft
Packages affected:
Summary
Release Note
Rationale
Userland control of suspend/resume/hibernate
pm-utils.
Diagnosing and Fixing suspend/resume/hiberate
Diagnosing and hence fixing broken suspend/resume/hibernate needs to easier. A Community based Wiki tutorial or troubleshooting guide (such as http://people.freedesktop.org/~hughsient/quirk/quirk-suspend-debug.html) needs to be written as the de-facto reference page to help users to:
- identify known hardware issues
- step-by-step diagnose problems
- gather hardware and kernel specific information that can help pin-point and fix problems
Also having a program/script that can test for known quirks and suggest pm-suspend workarounds would be helpful.
Debugging suspend/resume/hibernate issues can be notoriously difficult; being able do dump kernel messages early to a serial console is useful. However modern PCs do not have legacy serial port hardware, so providing a USB serial console driver in initramfs is required.
Use Cases
- A user cannot get their laptop to resume. They visit the trouble shooting guide which lists known hardware issues and pm-suspend workarounds that they can try.
- A user cannot get their laptop to resume. The Wiki trouble shooting guide explains how to run a quirk checking program which can automatically suggest pm-suspend workarounds.
- A user cannot resume their laptop because they have problems with specific buggy drivers. The Wiki tutorial explains how to turn on the/sys/power/pm_trace "resume-trace" debugging procedure for finding buggy drivers to gather sufficient information to pin-point the relevant broken driver. They can then submit a bug report against this driver.
- A user cannot hibernate their laptop. The tutorial explains how to make the hibernation core run in a test mode and then run through the 5 different test modes: freezer, devices, platform, processors or core.
- A user wants to attach an early kernel log message to a bug report. By plugging in a USB-serial dongle and enabling the USB serial console driver they can then capture the log on another PC using hardware which does no have a legacy serial port. The tutorial should explain how to enable the driver using kernel boot line options and how to capture the dmesg log on a 2nd PC over serial using tools such as minicom.
- A user shuts the laptop lid and put it directly in a bag, possibly a tight fitting neoprene bag. The laptop may take 20 seconds or so to complete the suspend process, but it must always complete to avoid a flat battery and potential fire hazard.
Assumptions
Design
Implementation
pm-utils Quirk Checking Scripts
The Quirk checking script http://people.freedesktop.org/~hughsient/quirk/quirk-checker.sh perhaps could be included into the disto to help users pin-point suspend/resume quirks.
Test/Demo Plan
Unresolved issues
- OEM Team
- What does the OEM Team need from the Kernel/Userspace?
- What are typical and acceptable cycles? i.e. Suspend/Resume 500 times without failure
- Other?
BoF agenda and discussion
Userland control of suspend/resume/hibernate
pm-utils vs DeviceKit-power - risk/benefit of choice
Diagnosing and Fixing suspend/resume/hiberate
Including and beefing up http://people.freedesktop.org/~hughsient/quirk/quirk-checker.sh
- Wiki troubleshooting guide/documentation needs writing
References
https://wiki.canonical.com/UbuntuPlatform/Roadmaps/9.04/SuspendHibernate
http://people.freedesktop.org/~hughsient/quirk/quirk-suspend-debug.html
http://lxr.linux.no/linux/Documentation/power/basic-pm-debugging.txt