All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Add the symbol "phys_base" to vmcoreinfo
@ 2008-03-31 11:00 Ken'ichi Ohmichi
  2008-04-02 17:39 ` Vivek Goyal
  0 siblings, 1 reply; 3+ messages in thread
From: Ken'ichi Ohmichi @ 2008-03-31 11:00 UTC (permalink / raw)
  To: Andrew Morton; +Cc: kexec-ml, Vivek Goyal, Dave Anderson, IKEDA, Munehiro

[-- Attachment #1: Type: text/plain, Size: 1809 bytes --]


Hi Andrew,

This patch fixes the problem that makedumpfile sometimes fails
on x86_64 machine. I hope that this patch will be merged to both
linux-2.6.25 and linux-2.6.24.5.

This patch adds the symbol "phys_base" to a vmcoreinfo data.
The vmcoreinfo data has the minimum debugging information only
for dump filtering. makedumpfile (dump filtering command) gets
it to distinguish unnecessary pages, and makedumpfile creates
a small dumpfile.

On x86_64 kernel which compiled with CONFIG_PHYSICAL_START=0x0
and CONFIG_RELOCATABLE=y, makedumpfile fails like the following:

 # makedumpfile -d31 /proc/vmcore dumpfile
 The kernel version is not supported.
 The created dumpfile may be incomplete.
 _exclude_free_page: Can't get next online node.

 makedumpfile Failed.
 #

The cause is the lack of the symbol "phys_base" in a vmcoreinfo
data. If the symbol "phys_base" does not exist, makedumpfile
considers an x86_64 kernel as non relocatable. As the result,
makedumpfile misunderstands the physical address where the kernel
is loaded, and it cannot translate a kernel virtual address to
physical address correctly. To fix this proble, the attached
patch which adds the symbol "phys_base" to a vmcoreinfo data.


Thanks
Ken'ichi Ohmichi


Signed-off-by: Ken'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp>
---
diff -rpuN linux-2.6.25-rc7.orig/arch/x86/kernel/machine_kexec_64.c linux-2.6.25-rc7/arch/x86/kernel/machine_kexec_64.c
--- linux-2.6.25-rc7.orig/arch/x86/kernel/machine_kexec_64.c	2008-03-26 14:55:29.000000000 +0900
+++ linux-2.6.25-rc7/arch/x86/kernel/machine_kexec_64.c	2008-03-26 14:52:52.000000000 +0900
@@ -233,6 +233,7 @@ NORET_TYPE void machine_kexec(struct kim
 
 void arch_crash_save_vmcoreinfo(void)
 {
+	VMCOREINFO_SYMBOL(phys_base);
 	VMCOREINFO_SYMBOL(init_level4_pgt);
 
 #ifdef CONFIG_NUMA



[-- Attachment #2: Type: text/plain, Size: 143 bytes --]

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-04-03  0:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-31 11:00 [PATCH] Add the symbol "phys_base" to vmcoreinfo Ken'ichi Ohmichi
2008-04-02 17:39 ` Vivek Goyal
2008-04-03  0:00   ` Ken'ichi Ohmichi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.