kexec -p loads

Bernhard Walle bwalle at suse.de
Wed Aug 27 11:30:35 EDT 2008


* Vivek Goyal [2008-08-27 11:28]:
> > > 
> > > > I have this debugging output from my kexec:
> > > > 
> > > > cpw: elf_x86_64_load returning entry:0x1550
> > > > cpw: after call to file_type[i].load: nr_segments:6 entry:0x1550
> > > > kexec_load: entry = 0x1550 flags = 1
> > > > nr_segments = 6
> > > > segment[0].buf   = 0x5237a0
> > > > segment[0].bufsz = 7100
> > > > segment[0].mem   = 0x1000
> > > > segment[0].memsz = 9000
> > > > 
> > > > segment[1].buf   = 0x52aaf0
> > > > segment[1].bufsz = 1000
> > > > segment[1].mem   = 0xa000
> > > > segment[1].memsz = 1000
> > > > 
> > > 
> > > I think above two segments are not being loaded at right place. Looks like
> > > kexec-tools decided to load first one at physical address 0x1000 and other at
> > > physical address 0xa000. For crash kernel this is not right. It should
> > > come out of reserved memory area and that's why you are encountering the
> > > error.
> > 
> > Relocatability in ELF image never worked on x86_64 because of GDB but
> > (so the binary was marked as ET_EXEC instead of ET_DYN).
> > 
> > You have to use bzImage for kdump in any case.
> 
> True that vmlinux is not relocatable. But one can always compile the
> vmlinux for a fixed physical address (Address in reserved region) and then
> use it?  In this case his vmlinux seems to have been compiled for physical
> address 16MB. Which should be usable if there is a reserved memory region
> at 16MB.

Of course, that's true. I just thought when Cliff uses the same kernel
for "kexec -l" and "kexec -p", then it's the "normal" kernel. But I
didn't calculate the numbers.



Bernhard
-- 
Bernhard Walle, SUSE Linux Products GmbH, Architecture Development



More information about the kexec mailing list