Re: Hibernation considerations

Matthew Garrett
2007-07-16T00:51:35Z

On Sun, Jul 15, 2007 at 02:33:32PM +0200, Rafael J. Wysocki wrote:

(snip)

Many of these assumptions are based on the assumption that we want to
save a full image of RAM. I'm not convinced that this is true. The two
things that we need are application state and hardware state.
Application state can clearly be saved without kernel involvement
(though restoring some of it may need some help from the kernel...), so
hardware state is a more interesting question.

The obvious argument for saving the entirity of memory is that we have
no mechanism for picking apart hardware state from any other part of the
kernel. In reality, we're looking at implementing a set of hibernation
operations anyway - it would be possible to utilise those to save as
much state as needed. You also get fringe benefits, like being able to
freeze a process that's accessing a piece of flaky hardware, swap the
card out (assuming hotplug PCI), restore some amount of state and then
let the process continue.

I appreciate that this suggestion sounds kind of fragile and
complicated, but I think that's true of most descriptions of suspend to
disk :) The main benefit is that it means we can use the hibernation
infrastructure for other purposes (checkpointing, swapping hardware,
that kind of thing) and reduce the damage caused by users doing
seemingly reasonable things (like suspending Linux, booting Windows and
then writing to a shared partition...).

--
Matthew Garrett | mjg59@srcf.ucam.org