Messages in this thread | | | From | (Eric W. Biederman) | Date | Thu, 15 May 2008 20:33:41 -0700 | Subject | Re: [PATCH] kexec based hibernation: a prototype of kexec multi-stage load |
| |
"Huang, Ying" <ying.huang@intel.com> writes:
> I think it is reasonable to enable jumping back and forth more than one > time.
I'm not opposed. I just don't understand the utility yet.
> So the following should be possible: > > 1. Jump from A to B (actually jump to purgatory, trigger the boot of B) > 2. Jump from B to A > 3. Jump from A to B again (jump to the kexec_jump_back_entry of B) (And we go through purgatory which remembers the kexec_jump_back_entry of B) > 4. Jump from B to A > ... > > So it should be possible to get the re-entry point of kernel B in > kexec_jump_back_entry of kernel A too. So I think in > kexec_jump_back_entry, the caller's stack should be checked to get > re-entry point of peer. And the stack state is different depend on where > come from, from relocate_new_kernel() or return.
Yes.
Any conditional logic needs to be in purgatory or a similar trampoline.
Eric
| |