kexec fails to boot kernels where CONFIG_RANDOMIZE_BASE=y is set
vgoyal at redhat.com
Fri Aug 22 05:38:12 PDT 2014
On Fri, Aug 22, 2014 at 11:19:41AM +0800, WANG Chao wrote:
> On 08/21/14 at 02:10pm, Vivek Goyal wrote:
> > If kernel is being moved physically, then we potentially have the issue of
> > it stomping other things. So how do we make sure that it does not overwrite
> > initramfs, or previous kernel's page tables or something else?
> In case you don't read that part, memory of initrd, cmdline and others
> won't be overwritten.
> This work is done in x86/boot/compressed/aslr.c::mem_avoid_init().
Ok, got it. so cmdline and initrd info is present in bootparams and kernel
can use that to avoid stomping those.
But that still does not protect ELF header segment (prepared in case of
kdump) and page tables setup by previous kernel.
So may be this failure happens because new kernel stomps over page tables
of old kernel. But if that theory is right, then we should be able to
kexec using 32bit entry point of bzImage.
Thomas, have you had any success with that?
More information about the kexec