On Wed, Aug 27, 2008 at 05:30:35PM +0200, Bernhard Walle wrote: > * 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. > > Its litle tricky. I think one can always do both "kexec -l" and "kexec -p" on a vmlinux which has been built for kdump (for reserved region). But one can not do "kexec -p" on normal kernel vmlinux. So I am assuming that Cliff is running into first case. But he can tell us more. Cliff, is it same vmlinux which you use for first kernel or a different vmlinux compiled for dump capture. Thanks Vivek