[PATCH] kexec based hibernation: a prototype of kexec multi-stage load

Huang, Ying ying.huang at intel.com
Thu May 15 22:19:34 EDT 2008

On Thu, 2008-05-15 at 22:00 -0400, Vivek Goyal wrote:
> IMHO, this kind of make more sense to me when keeping C function like
> semantics in mind.
> Both the cases can be treated like calls to functions (calling BIOS function
> and jumping to kernel B). The basic difference between two cases is the
> re-entry point. In BIOS function case, we always re-enter the function at the
> start but in case of kernel B, except first entry, all other entries happen
> at a run time determined address, which needs to be communicated to kernel A.
> I would think that second kernel B just should execute "ret" and new entry
> address of kernel B is passed to kernel A through %eax (return value of
> function).

The disadvantage of this solution is that kernel B must know it is
original kernel (A) or kexeced kernel (B). Different code should be used
by kernel A and kernel B. And after jump from A to B, jump from B to A,
when jump from A to B again, kernel A must use different code from the
first time.

Best Regards,
Huang Ying

More information about the kexec mailing list