Like eating a jumbo bag of potato chips from Costco, making suspend/resume *really* work is *really* hard.
First you get the hardware to appear to work properly…. That’s a big bowl right there…
Then you have to go get a refill, on Linux drivers…. The next big bowl… But mostly just work.
Then you get to fix some pretty obvious hardware problems…. Such as minor pops from the audio amplifier when power is reapplied. A few more chips….
Then you get to do some engineering, such as Marcelo’s work on lazy resume on USB, Dan and Marcelo’s work on the wireless driver and its interactions with the wireless firmware, Javier’s and Marvell’s work on the wireless firmware, Chris B’s endless testing, back to the audio driver, Andres and Jaya’s work on the audio driver, and so on… Another big bowl…
After all that, you start seeing Linux suspend and resume hundreds or thousands of times. At this point, everyone would consider this “good enough” for a regular laptop, and move on. We’ve learned better.
For us, it’s not good enough… We’re going to be suspending between every page rendered on the screen when reading books or the web, so thousands of times/day is entirely expected… And someday, we’d like to even be able to suspend between long keystrokes. So you realize you need hundreds of thousands of suspend/resume cycles on many machines (due to variation between hardware), to have a rock solid system, and even the testing starts taking a long time.
So then you get to chase the bugs that only happen after hundreds, or thousands, of suspend/resume cycles, not knowing if they are hardware or software…. Some more chips buried in the bag…
So over the last few days we’ve been chasing a problem in our power supply causing failures, and it looks like we have a bug fix in hand, now being tested (of course, doing the testing now takes days on a bunch of machines). Even before this fix, some systems were going more than 140,000 suspend/resume cycles before failure, but some machines were showing problems faster (yes Petunia, these are cycles while Linux is running, not just hardware tests). In a few days, maybe we’ll have some more interesting data, but it now takes quite a while to get the data.
It will be interesting to see how many more chips we have at the bottom of the bag. Not many, but I’ve learned to never say we’ve eaten the whole bag. This bag is sort of like a Hermoine’s Hogwarts bag, that is much much bigger inside than outside. There may be a few rattling around in a corner someplace we haven’t found yet.
My great thanks to (in no particular order): Wad, Marcelo, Chis B, Javier, Jordan, Andres, Mitch, Arnold, Gary, Richard, Terry, Mike, Kim, Ronak, Victor, Jon, …. I know I have missed a few potato chip consumers particularly inside Cozybit and Marvell; my apologies to them…