Why is it so hard to hibernation and suspend write? That is, if all it’s
really doing is dumping the memory to disk and then loading it back when the
computer wakes up, why all the mishaps and instabilities and generic
In this excerpt from
Answercast #81, I look at some of the difficulties involved in standby and
hibernate that have made it rather unstable in the past.
Hibernate and standby are difficult
Well, in a way, you’ve kind of led me to the answer right there.
Hibernation and standby are in fact, a lot more than just loading the memory to disk and loading it back from disk.
In fact, when you think about it… think about all of the hardware that’s associated with that machine: your keyboard, your mouse, your video, your hard disk. Think about all your other accessories that are installed on that machine; the BIOS and the power management hardware that’s actually associated with the very hibernation and standby functions we’re talking about.
Recovering from standby
All of that hardware (which of course is all very different from machine to machine) has to have the ability to recover from standby and hibernation the correct way. That means they might adjust the ability to initialize, as if they’re starting from boot, but they also need a way to restore their state to what it was when the hibernation or standby was initiated.
And you know what, as it turns out… that’s kind of hard! I’m not saying it shouldn’t be possible to do it one-hundred percent correctly – but over time, the device driver manufacturers found that it just wasn’t as easy as they thought it should be.
In concept, it’s very simple. In practice, the devices and the interfaces to them are sufficiently complex that it’s fairly easy to get it wrong. As a result, hibernation and standby can be a little unstable – at least in older machines.
Newer machines hibernate easier
The good news is that we’ve progressed… as hibernation and standby have been around for so many years now.
The device drivers, and the hardware associated with it, are getting simpler and getting more robust. Newer machines tend to do a much better job in this area than some of the older machines and the older BIOSs.
So the bottom line is that it’s a lot more involved than simply writing memory out to disk and bringing it back. It’s fairly complex. It’s just something that has taken apparently several years to mature as all of the software gets all of the kinks worked out.
(Transcript lightly edited for readability.)