[patch v3 3/8] kdump: Add size to elfcorehdr kernel parameter

Michael Holzheu holzheu at linux.vnet.ibm.com
Thu Aug 18 04:47:59 EDT 2011


Hello Vivek,

On Wed, 2011-08-17 at 17:05 -0400, Vivek Goyal wrote:
> On Fri, Aug 12, 2011 at 03:48:52PM +0200, Michael Holzheu wrote:
> > From: Michael Holzheu <holzheu at linux.vnet.ibm.com>
> > 
> > Currently only the address of the pre-allocated ELF header is passed with
> > the elfcorehdr= kernel parameter. In order to reserve memory for the header
> > in the 2nd kernel also the size is required. Current kdump architecture
> > backends use different methods to do that, e.g. x86 uses the memmap= kernel
> > parameter. On s390 there is no easy way to transfer this information.
> > Therefore the elfcorehdr kernel parameter is extended to also pass the size.
> > This now can also be used as standard mechanism by all future kdump
> > architecture backends.
> 
> Michael,
> 
> This version looks much better. A quick question. Who parses this
> elfcorehdr= parameter in s390 and how do we make sure these headers are not
> overwritten.

The parameter is parsed in common code (kernel/crash_dump.c) in
early_param("elfcorehdr", setup_elfcorehdr), as it is already currently
the case.

We use address and size of the ELF core header to reserve the header
memory in setup.c (see patch #8):

+#ifdef CONFIG_CRASH_DUMP
+       if (is_kdump_kernel())
+               reserve_bootmem(elfcorehdr_addr - OLDMEM_BASE,
+                               PAGE_ALIGN(elfcorehdr_size), BOOTMEM_DEFAULT);
+#endif

Does that answer your question?

Michael




More information about the kexec mailing list