On Wed, Aug 12, 2009 at 09:41:23AM +0200, Hannes Reinecke wrote: > Hi all, > > I cannot load a x86_64 kernel with kexec on 2.6.31; the error message is: > > Can't find kernel text map area from kcore > Cannot load /boot/vmlinuz > > Digging through the source I found a mismatch between the assumed > kernel text size; kexec has: > > #define KERNEL_TEXT_SIZE (40UL*1024*1024) > > but on the kernel side we have: > > include/asm/page_64_types.h: > #define KERNEL_IMAGE_SIZE (512 * 1024 * 1024) > > And, indeed, changing the definition in kexec-tools to the kernel one > fixed the problem. > > Not sure if this has been reported before, if so please ignore > the noise. Hi, I'm wondering what effect this would have when using kexec-tools with older kernels, which presumably have a smaller value for KERNEL_IMAGE_SIZE. > diff --git a/kexec/arch/x86_64/crashdump-x86_64.h b/kexec/arch/x86_64/crashdump-x86_64.h > index 9f4dee9..0e83527 100644 > --- a/kexec/arch/x86_64/crashdump-x86_64.h > +++ b/kexec/arch/x86_64/crashdump-x86_64.h > @@ -11,7 +11,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline, > #define MAXMEM 0x3fffffffffffUL > > /* Kernel text size */ > -#define KERNEL_TEXT_SIZE (40UL*1024*1024) > +#define KERNEL_TEXT_SIZE (512UL*1024*1024) > > #define CRASH_MAX_MEMMAP_NR (KEXEC_MAX_SEGMENTS + 1) > #define CRASH_MAX_MEMORY_RANGES (MAX_MEMORY_RANGES + 2)