Re: Hibernation Redesign

From: Jeremy Fitzhardinge
Date: Tue Jul 10 2007 - 19:00:37 EST


Jeremy Maitin-Shepard wrote:
I suppose that would be an interesting thing to look into. Another
possible approach for having the kernel run in non-contiguous memory is
to specify a memmap exactly to the kernel on the command-line, as I
believe is done for the crashdump kernels currently.

That sounds very fragile. It would be better to extend the bootparams to contain that information.

I recall reading, though, that even with the relocatable
kernel support, there are still significant alignment requirements for
loading the kernel. In particular, I seem to recall that it is
necessary to load an x86 kernel at maybe a 16MB boundary, and on other
platforms the alignment requirements may be even more restrictive.

2MB for x86, I think. But that's not really an issue if you use a P(seudo-physical) to M(achine) mapping, since you can choose any arrangement you like for the kernel. The only restriction is that you can't use large pages any more, but I don't think that's an issue for a dump/hibernation kernel.

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?

J

-
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/