[patch 1/7] Extended crashkernel command line
Andrew Morton
akpm at linux-foundation.org
Wed Sep 19 18:32:22 EDT 2007
On Thu, 13 Sep 2007 18:14:29 +0200
Bernhard Walle <bwalle at suse.de> wrote:
> This is the generic part of the patch. It adds a parse_crashkernel() function
> in kernel/kexec.c that is called by the architecture specific code that
> actually reserves the memory. That function takes the whole command line and
> looks itself for "crashkernel=" in it.
>
> If there are multiple occurrences, then the last one is taken. The advantage
> is that if you have a bootloader like lilo or elilo which allows you to append
> a command line parameter but not to remove one (like in GRUB), then you can add
> another crashkernel value for testing at the boot command line and this one
> overwrites the command line in the configuration then.
>
>
> Signed-off-by: Bernhard Walle <bwalle at suse.de>
>
> ---
> include/linux/kexec.h | 2
> kernel/kexec.c | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 141 insertions(+)
>
> --- a/include/linux/kexec.h
> +++ b/include/linux/kexec.h
> @@ -179,6 +179,8 @@ extern note_buf_t *crash_notes;
> extern u32 vmcoreinfo_note[VMCOREINFO_NOTE_SIZE/4];
> extern unsigned int vmcoreinfo_size;
> extern unsigned int vmcoreinfo_max_size;
> +int parse_crashkernel(char *cmdline, unsigned long long system_ram,
> + unsigned long long *crash_size, unsigned long long *crash_base);
>
>
> #else /* !CONFIG_KEXEC */
> --- a/kernel/kexec.c
> +++ b/kernel/kexec.c
> @@ -1146,6 +1146,145 @@ static int __init crash_notes_memory_ini
> }
> module_init(crash_notes_memory_init)
>
> +
> +/*
> + * parsing the "crashkernel" commandline
> + *
> + * this code is intended to be called from architecture specific code
> + */
> +
> +
> +/*
> + * This function parses command lines in the format
> + *
> + * crashkernel=<ramsize-range>:<size>[,...][@<base>]
> + *
> + * The function returns 0 on success and -EINVAL on failure.
> + */
> +static int parse_crashkernel_mem(char *cmdline,
> + unsigned long long *crash_size,
> + unsigned long long *crash_base,
> + unsigned long system_ram)
> +{
The patchset seems to be putting a large amount of stuff into .text
which could have gone into .text.init?
More information about the kexec
mailing list