kexec -p loads
Bernhard Walle
bwalle at suse.de
Wed Aug 27 09:43:33 EDT 2008
* Vivek Goyal [2008-08-27 09:39]:
>
> On Tue, Aug 26, 2008 at 05:13:27PM -0500, Cliff Wickman wrote:
> >
> > Hi Vivek,
> >
> > I'm having trouble getting a system kernel to load a kdump kernel.
> >
> > These are 2.6.26.2 kernels on an x86_64.
> > The kdump kernel has no modules.
> > The kdump kernel area is reserved as 64M at 16M.
> >
> > This is the way I try to load it:
> >
> > /usr/local/sbin/kexec -p /boot/vmlinux-cpwcomm --args-linux --append="root=/dev/sda3 1 irqpoll maxcpus=1 reset_devices"
> >
> > This works with -l. But with -p the kernel objects to the 2 lowest
> > segments, at 0x1000 and 0xa000 which I presume are the startup code
> > and arguments.
> >
>
> CCing to kexec mailing list.
>
> Few questions.
>
> - What version of kexec-tools are you using?
> - Can you please provide output of /proc/iomem. (With crash kernel memory
> reserved).
> - Looks like you have compiled your kernel for physical address 16MB?
> (CONFIG_PHYSICAL_START=0x1000000)
> - Can you also try loading relocatable bzImage, instead of vmlinux and see
> what happens.
>
>
> > 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.
Bernhard
--
Bernhard Walle, SUSE LINUX Products GmbH, Architecture Development
More information about the kexec
mailing list