KernelLucidSuspendResumeImprovements
Launchpad Entry: kernel-lucid-suspend-resume
Created: ManojIyer
Contributors: ManojIyer, Andy Whitcroft
Packages affected:
Summary
Suspend/Resume user experience in karmic is quiet remarkable. On our benchmark hardware, Dell Mini10V with SSD for storage, I am able to suspend in .8s and resume in 1.6s on an average. Our aim is to expand this Suspend/Resume experience in Lucid for other hardware configurations as well.. Major pain points in improving suspend/resume are , proprietary drivers, staging drivers etc.
The aim in karmic is
- identify drivers that take long time to suspend/resume
- analyze bugs on suspend/resume and find common points of failure.
- improve logging infrastructure of pm-suspend/pm-resume utils.
- identify and tag frequency of suspend/resume failure in bugs.
Release Note
This effort is a continuation of the work that was done for Karmic cycle, it will not improve user experience for the case where proprietary/staging drivers are involved.
Diagnosing and Fixing suspend/resume/ bugs
- identify known hardware that causes suspend/resume issues
- document step-by-step instruction on how to diagnose problems
- larger community/upstream involvement in fixing known suspend/resume issues
- use existing testcases for suspend/resume testing for Lucid.
Assumptions
We will follow up on bugs that are:
- Suspend/Resume bugs reported on non-proprietary/staging drivers.
- Suspend/Resume bugs are not related to bios issues.
Design
- Measure suspend/Resume times for drivers
- Report suspend/Resume failure frequency in bugs
- Improve pm tools
- Analyze data for existing bugs and identify common failure points.
Implementation
Instrument the kernel to report suspend/resume times for drivers & potentially use a variation of boot chart to provide a visual representation.
- Currently pm logs are truncated, this behavior needs to be changed, and logs needs to be rotated.
- Report frequency of failure in the bugs by gathering data from the pm logs, this will help us prioritize bugs.
- Review pm utils and make improvements and optimizations in the code.
- We have several bugs filed for suspend/resume, we need to (programmaticaly) analyse this data and identify pain points, identify the components that contribute towards failure.
Test/Demo Plan
- Continue to conduct checkbox based testing on suspend/resume tests at sprints or Linux Fests. Get users to report bugs.
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