Suspend and Resume?

Imagine working on your laptop in the airport, connected to internet via wifi, when someone accidentally pulls your power plug. The display goes to the battery intensity and the CPU(s) reduce their frequency to get the best battery life, and up pops a dialog to let you know you are now running on the battery.

OK, you say, I can work on the battery, and not have my cord so it will trip other travelers, because you also know when the battery gets to a low level, another dialog will let you know. Or maybe instead, you will just close the lid, and the machine just goes to sleep. And when you open the lid, in a few seconds, you are resumed to where you left off, even if that was when you arrived at your destination 15 hours later.

Now the neat part of this, is that you are not running software from a Redmond company, but you are running the worlds most robust OS: Solaris!

In the very near future, you will be able to load Solaris on your x86 machines and get all the power savings previously available from that Redmond company or from some penguin sources. You might even be able to get more, as you will even be able to see how it works or even help make it better by getting it from Open Solaris. You will even be able to set policies from disk spin-down, to CPU frequency thresholds, and even what network events will wake the machine, expanding the limitations of the Magic Packet!

For a limited set of machines, this is available now! But to understand what it will mean to most laptop users, it would be helpful to know the key point for making suspend work: ALL drivers MUST comply with a suspend and properly save and restore hardware state for a resume to properly work. And this means ALL devices. If just one doesn't comply, suspend cannot (and should not) happen. And the reason that this is a problem is that hardware vendors don't tend to write drivers for Solaris, and sometimes it is even hard to get information so that drivers can be developed.

And the single most important device for users is the one that is the least likely to have a Solaris driver is the framebuffer. And to make it worse, vendors aren't forthcoming with information to make them work on platforms they don't choose to support (and even if they do, lawyers get involved to limit where and when they can become available).

This will change as Solaris becomes more prevelent and drivers for more hardware is available, and it is likely that your particular framebuffer won't be on the list of working devices. But it is likely that all the other devices will work, even some wifi drivers!

With all that power at your fingertips, I guess that it deserves a powerful beer! A Kona Brewery Barlywine! Usually only available at the Kona Brewery in Kona Hawaii. With bold malt and hop characteristics, and plenty of body. This is one brew that is best not to drive after enjoying.


Hey, Randy,

The question that comes to mind is, for which laptops will this work? This is likely to be a difficult question to answer, so is there a list of compliant drivers? Better yet, is there a tool that will tell me whether all of the drivers in use on my laptop are on the list of compliant drivers?


Posted by Chad Mynhier on December 26, 2007 at 09:29 PM PST #

To some extent, the best way is to enable the feature and trying to suspend. It will at least identify the first failing device on your machine. One of my recent blogs should help in this area.

Some known failing devices are ATI framebuffers, and the uhci (usb) driver. The latter is being worked on, and should (hopefully) be available soon. The former may take a bit longer as it primarily isn't a strategic driver (meaning that there are not many Sun systems that have one that are not already supported). There is also a know bug with some Intel CPU's that should be fixed early in the new year.

Some laptops that the non-compliant list is very short and will be supported soon, are the Tecra M5 to M9 series. They contain nVidia framebuffer drivers that do support Suspend and Resume (caveat described in a recent blog), and the remaining drivers that don't work \*should\* be functional this month.

I am hoping that we will be able to create a list of known working machines and also try and get a list of non-compliant drivers and try and prioritize their update.

Keep watching the Laptop community on OpenSolaris, as this is where these lists will be posted.


Posted by Randy on January 01, 2008 at 02:13 PM PST #

Post a Comment:
  • HTML Syntax: NOT allowed



« December 2016