Re: Hibernation Redesign

From: Rafael J. Wysocki
Date: Wed Jul 11 2007 - 06:20:45 EST


On Wednesday, 11 July 2007 06:11, Al Boldi wrote:
> Jeremy Fitzhardinge wrote:
> > Jeremy Maitin-Shepard wrote:
> > > In
> > > addition, I recall that the Linux boot procedure on x86 and on some
> > > other platforms necessarily uses certain low-address memory, like the
> > > first 640K, which must be backed up regardless.
> >
> > Well, the traditional framebuffer/ISA space between 640k and 1M probably
> > needs to be identity mapped, but I don't think there's anything in there
> > which specifically needs to be save/restored (except framebuffer
> > contents, maybe?).
> >
> > > For these reasons, it seems that it would be easiest to simply backup
> > > the first e.g. 16 or 64 MB of memory, and not have to worry about
> > > loading the kernel at a non-standard address and specifying a
> > > complicated exact memmap. Someone might prove me wrong, though.
> >
> > Yes, I suppose. You're certain the old kernel's devices are completely
> > quiescent at that point?
>
> That's exactly the problem; trying to save a state from within the kernel
> would probably necessitate a freezer hack, which we are trying so dearly to
> avoid.

Well, I don't think that avoiding the freezer whatever it takes would be a good
idea. There needs to be some balance. ;-)

> The only way the kexec approach may be successful, is by completely relying
> on the kexec'd hibernate-mode kernel to save state, otherwise we would be
> back to square one. And if that required a special boot procedure for the
> kexec'd hibernate-mode kernel, then why not?

Because such things are very difficult for many users. My experience with
the userland suspend shows that clearly.

Greetings,
Rafael


--
"Premature optimization is the root of all evil." - Donald Knuth
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/