Re: [PATCH 0/2] Kexec jump: The first step to kexec base hibernation

From: Rafael J. Wysocki
Date: Tue Jul 17 2007 - 07:52:01 EST


On Tuesday, 17 July 2007 10:13, david@xxxxxxx wrote:
> Ying, as the kexec guru in this thread I have a question for you about how
> kexec works (and possibly where you are going with this)
>
> for the power-off hibernate with ACPI disabled the hibernation seems
> fairly straightforward (although there are still some missing pieces)
>
> however, since the resume designed for ACPI won't work would the following
> approach work
>
> 1. boot one kernel
> 2. setup a kexec the same way you would for hibernate
> 3. kexec to the new kernel
> 4. overwrite the memory of the first kernel
> 5. kexec 'back' to the main kernel that has now been overwritten by what was saved?
>
> as part of this question, when you do a kexec, how does the kernel that
> you are doing the kexec to know what to run next?
>
> it needs to do some initialization first before it starts running normal
> things, and at that point it the move back doesn't look for init like a
> normal kernel boot (or the system would effectivly boot instead of picking
> up where it left off)
>
> is this 'restart point' flexible enough that either the pre-hibernate
> kerenl or the small hibernate kernel could tell the pre-hibernate kernel
> to go into suspend-to-ram mode before doing anything else?
>
> Rafael,
> if ACPI is disabled and not used, is there any memory in the origional
> kernel that _must not_ be saved in the hibernate image? I recognise that
> for efficancy it would save time to not save free memory, but if I'm
> willing to waste some resources would it hurt to save everything?

On some systems there are valid 'struct page' structures that correspond to
memory holes and the kernel will oops if you try to save the contents of
these pages. Unfortunately, only the early initialization platform code can
tell you which they are.

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/