kdump, ia64: always reserve elfcore header memory in crash kernel
Subsystems (2)
elfcore header memory needs to be reserved in a crash kernel. This means that the relevant code should be protected by CONFIG_CRASH_DUMP rather than CONFIG_PROC_VMCORE.
---
Andrew, this patch fixes bug in the (unlikely) case where an ia64 crashdump kernel does not have CONFIG_PROC_FS set. I think it is worth including in 2.6.27. But breakage cases are likely to be minimal to non-existent, so I am comfortable with post 2.6.27 too.
This patch should be appended to the series,
"is_kdump_kernel() cleanup and related patches".
http://lists.infradead.org/pipermail/kexec/2008-July/002270.html
Index: linux-2.6/arch/ia64/kernel/efi.c
=================================--- linux-2.6.orig/arch/ia64/kernel/efi.c 2008-08-05 18:31:13.000000000 +1000
+++ linux-2.6/arch/ia64/kernel/efi.c 2008-08-05 18:31:21.000000000 +1000
@@ -1334,7 +1334,7 @@ kdump_find_rsvd_region (unsigned long si
}
#endif
-#ifdef CONFIG_PROC_VMCORE
+#ifdef CONFIG_CRASH_DUMP
/* locate the size find a the descriptor at a certain address */ unsigned long __init
vmcore_find_descriptor_size (unsigned long address)
Index: linux-2.6/arch/ia64/kernel/setup.c
=================================--- linux-2.6.orig/arch/ia64/kernel/setup.c 2008-08-05 18:31:20.000000000 +1000
+++ linux-2.6/arch/ia64/kernel/setup.c 2008-08-05 18:31:21.000000000 +1000
@@ -352,7 +352,7 @@ reserve_memory (void)
}
#endif
-#ifdef CONFIG_PROC_VMCORE
+#ifdef CONFIG_CRASH_KERNEL
if (reserve_elfcorehdr(&rsvd_region[n].start,
&rsvd_region[n].end) = 0)
n++;
@@ -496,9 +496,7 @@ static int __init parse_elfcorehdr(char
return 0;
}
early_param("elfcorehdr", parse_elfcorehdr);
-#endif
-#ifdef CONFIG_PROC_VMCORE
int __init reserve_elfcorehdr(unsigned long *start, unsigned long *end) {
unsigned long length;
Quoted 13 lines · On Tue, 5 Aug 2008 19:48:27 +1000 Simon Horman <[email protected]> wrote:
elfcore header memory needs to be reserved in a crash kernel. This means that the relevant code should be protected by
CONFIG_CRASH_DUMPrather thanCONFIG_PROC_VMCORE.Signed-off-by Simon Horman <[email protected]>---
Andrew, this patch fixes bug in the (unlikely) case where an ia64 crashdump kernel does not haveCONFIG_PROC_FSset. I think it is worth including in 2.6.27. But breakage cases are likely to be minimal to non-existent, so I am comfortable with post 2.6.27 too.
Quoted 2 lines
This patch should be appended to the series,
"is_kdump_kernel()cleanup and related patches".
hm, that means that we would need to apply a moderate-size seven patch series to fix one little bug.
I think that if we want to fix this in 2.6.27 then the basic single patch would be preferable. Or we leave it until 2.6.28/
Quoted 15 lines · Andrew Morton
Quoted 13 lines · On Tue, 5 Aug 2008 19:48:27 +1000 Simon Horman <[email protected]> wrote:
elfcore header memory needs to be reserved in a crash kernel. This means that the relevant code should be protected by
CONFIG_CRASH_DUMPrather thanCONFIG_PROC_VMCORE.Signed-off-by Simon Horman <[email protected]>---
Andrew, this patch fixes bug in the (unlikely) case where an ia64 crashdump kernel does not haveCONFIG_PROC_FSset. I think it is worth including in 2.6.27. But breakage cases are likely to be minimal to non-existent, so I am comfortable with post 2.6.27 too.
Quoted 8 lines
Quoted 2 lines
This patch should be appended to the series,
"is_kdump_kernel()cleanup and related patches".hm, that means that we would need to apply a moderate-size seven patch series to fix one little bug.
I think that if we want to fix this in 2.6.27 then the basic single patch would be preferable. Or we leave it until 2.6.28/
I think it would be better to wait until 2.6.28 than mess around with a minimal and then a proper fix. I doubt that anyone is hitting this.
Quoted 34 lines · Simon Horman
elfcore header memory needs to be reserved in a crash kernel. This means that the relevant code should be protected by
CONFIG_CRASH_DUMPrather thanCONFIG_PROC_VMCORE.Signed-off-by Simon Horman <[email protected]>---
Andrew, this patch fixes bug in the (unlikely) case where an ia64 crashdump kernel does not haveCONFIG_PROC_FSset. I think it is worth including in 2.6.27. But breakage cases are likely to be minimal to non-existent, so I am comfortable with post 2.6.27 too.This patch should be appended to the series,
"is_kdump_kernel()cleanup and related patches".http://lists.infradead.org/pipermail/kexec/2008-July/002270.html
Index:
linux-2.6/arch/ia64/kernel/efi.c
=================================> ---linux-2.6.orig/arch/ia64/kernel/efi.c2008-08-05 18:31:13.000000000 +1000
+++linux-2.6/arch/ia64/kernel/efi.c2008-08-05 18:31:21.000000000 +1000(quoted diff) +1
-1@@ -1334,7 +1334,7 @@ kdump_find_rsvd_region (unsigned long si } #endif -#ifdef CONFIG_PROC_VMCORE +#ifdef CONFIG_CRASH_DUMP /* locate the size find a the descriptor at a certain address */ unsigned long __init vmcore_find_descriptor_size (unsigned long address)Index:
linux-2.6/arch/ia64/kernel/setup.c
=================================> ---linux-2.6.orig/arch/ia64/kernel/setup.c2008-08-05 18:31:20.000000000 +1000
+++linux-2.6/arch/ia64/kernel/setup.c2008-08-05 18:31:21.000000000 +1000
Review reserve_memory (void) · line 358
Quoted 8 lines
(quoted diff) +1
-1@@ -352,7 +352,7 @@ reserve_memory (void) } #endif -#ifdef CONFIG_PROC_VMCORE +#ifdef CONFIG_CRASH_KERNEL if (reserve_elfcorehdr(&rsvd_region[n].start, &rsvd_region[n].end) = 0) n++;
Hi Simon,
Thanks for the patch. One minor nit. I think compilation will fail in the case of CONFIG_PROC_VMCORE=n. Because reserve_elfcorehdr will try to use vmcore_unusabe() which is not available now?
Thanks
Vivek
Quoted 46 lines · Vivek Goyal
Quoted 34 lines · Simon Horman
elfcore header memory needs to be reserved in a crash kernel. This means that the relevant code should be protected by
CONFIG_CRASH_DUMPrather thanCONFIG_PROC_VMCORE.Signed-off-by Simon Horman <[email protected]>---
Andrew, this patch fixes bug in the (unlikely) case where an ia64 crashdump kernel does not haveCONFIG_PROC_FSset. I think it is worth including in 2.6.27. But breakage cases are likely to be minimal to non-existent, so I am comfortable with post 2.6.27 too.This patch should be appended to the series,
"is_kdump_kernel()cleanup and related patches".http://lists.infradead.org/pipermail/kexec/2008-July/002270.html
Index:
linux-2.6/arch/ia64/kernel/efi.c
=================================> > ---linux-2.6.orig/arch/ia64/kernel/efi.c2008-08-05 18:31:13.000000000 +1000
+++linux-2.6/arch/ia64/kernel/efi.c2008-08-05 18:31:21.000000000 +1000(quoted diff) +1
-1@@ -1334,7 +1334,7 @@ kdump_find_rsvd_region (unsigned long si } #endif -#ifdef CONFIG_PROC_VMCORE +#ifdef CONFIG_CRASH_DUMP /* locate the size find a the descriptor at a certain address */ unsigned long __init vmcore_find_descriptor_size (unsigned long address)Index:
linux-2.6/arch/ia64/kernel/setup.c
=================================> > ---linux-2.6.orig/arch/ia64/kernel/setup.c2008-08-05 18:31:20.000000000 +1000
+++linux-2.6/arch/ia64/kernel/setup.c2008-08-05 18:31:21.000000000 +1000Review reserve_memory (void) · line 358
Quoted 8 lines
(quoted diff) +1
-1@@ -352,7 +352,7 @@ reserve_memory (void) } #endif -#ifdef CONFIG_PROC_VMCORE +#ifdef CONFIG_CRASH_KERNEL if (reserve_elfcorehdr(&rsvd_region[n].start, &rsvd_region[n].end) = 0) n++;Hi Simon,
Quoted 3 lines
Thanks for the patch. One minor nit. I think compilation will fail in the case of
CONFIG_PROC_VMCORE=n. Becausereserve_elfcorehdrwill try to usevmcore_unusabe()which is not available now?
Yes, sorry. I forgot to send a revised version of the patch that creates vmcore_unusabe() so that it is present if CONFIG_PROC_VMCORE=n. I will do so.