Skip to contentSkip to conversation

kdump, ia64: always reserve elfcore header memory in crash kernel

PATCH Simon Horman 3 participants 5 messages Aug 5, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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;

#1 lore raw
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_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.

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/

#2 lore raw
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_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.

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.

#3 lore raw
In reply to Simon Horman
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_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

(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.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

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

#4 lore raw
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_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

(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.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

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,

Quoted 3 lines

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?

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.