Re: [discuss] [patch 3/5] Use extended crashkernel command line on x86_64

Yinghai Lu
2007-09-09T17:28:17Z

On 9/9/07, Bernhard Walle <bwalle@suse.de> wrote:
> This patch removes the crashkernel parsing from
> arch/x86_64/kernel/machine_kexec.c and calls the generic function, introduced in
> the last patch, in setup_bootmem_allocator().
>
> This is necessary because the amount of System RAM must be known in this
> function now because of the new syntax.
>
>
> Signed-off-by: Bernhard Walle <bwalle@suse.de>
>
>
> ---
> arch/x86_64/kernel/e820.c | 3 ++-
> arch/x86_64/kernel/machine_kexec.c | 27 ---------------------------
> arch/x86_64/kernel/setup.c | 35 ++++++++++++++++++++++++++++-------
> 3 files changed, 30 insertions(+), 35 deletions(-)
>
> --- a/arch/x86_64/kernel/e820.c
> +++ b/arch/x86_64/kernel/e820.c
> @@ -226,7 +226,8 @@ void __init e820_reserve_resources(void)
> request_resource(res, &code_resource);
> request_resource(res, &data_resource);
> #ifdef CONFIG_KEXEC
...
> --- a/arch/x86_64/kernel/machine_kexec.c
> +++ b/arch/x86_64/kernel/machine_kexec.c
> @@ -231,33 +231,6 @@ NORET_TYPE void machine_kexec(struct kim
> image->start);
> }
>
> -/* crashkernel=size@addr specifies the location to reserve for
> - * a crash kernel. By reserving this memory we guarantee
> - * that linux never set's it up as a DMA target.
> - * Useful for holding code to do something appropriate
> - * after a kernel panic.
> - */
> -static int __init setup_crashkernel(char *arg)
> -{
> - unsigned long size, base;
> - char *p;
> - if (!arg)
> - return -EINVAL;
> - size = memparse(arg, &p);
> - if (arg == p)
> - return -EINVAL;
> - if (*p == '@') {
> - base = memparse(p+1, &p);
> - /* FIXME: Do I want a sanity check to validate the
> - * memory range? Yes you do, but it's too early for
> - * e820 -AK */
> - crashk_res.start = base;
> - crashk_res.end = base + size - 1;
> - }
> - return 0;
> -}
> -early_param("crashkernel", setup_crashkernel);
> -
> void arch_crash_save_vmcoreinfo(void)
> {
> #ifdef CONFIG_ARCH_DISCONTIGMEM_ENABLE
> --- a/arch/x86_64/kernel/setup.c
> +++ b/arch/x86_64/kernel/setup.c
> @@ -196,6 +196,33 @@ static inline void copy_edd(void)
> }
> #endif
>
> +#ifdef CONFIG_KEXEC
...

CONFIG_KEXEC or CONFIG_CRASH_DUMP?

YH