* [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* Re: [PATCH] Add the symbol "phys_base" to vmcoreinfo
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
0 siblings, 1 reply; 3+ messages in thread
From: Vivek Goyal @ 2008-04-02 17:39 UTC (permalink / raw)
To: Ken'ichi Ohmichi
Cc: Dave Anderson, Andrew Morton, Vivek Goyal, kexec-ml,
IKEDA, Munehiro
On Mon, Mar 31, 2008 at 08:00:25PM +0900, Ken'ichi Ohmichi wrote:
>
> 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);
CCing to LKML.
Looks good to me. Given a vmcore file, one needs to know about
the shift between compile address and run time address of kernel
to be able to do filtering. This shift (phys_base) will vary
based on kernel config options and based on where boot loader
has loaded a kernel.
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Thanks
Vivek
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] Add the symbol "phys_base" to vmcoreinfo
2008-04-02 17:39 ` Vivek Goyal
@ 2008-04-03 0:00 ` Ken'ichi Ohmichi
0 siblings, 0 replies; 3+ messages in thread
From: Ken'ichi Ohmichi @ 2008-04-03 0:00 UTC (permalink / raw)
To: Vivek Goyal
Cc: Dave Anderson, Andrew Morton, Vivek Goyal, kexec-ml,
IKEDA, Munehiro
[-- Attachment #1: Type: text/plain, Size: 2447 bytes --]
Hi Vivek,
Vivek Goyal wrote:
> On Mon, Mar 31, 2008 at 08:00:25PM +0900, Ken'ichi Ohmichi wrote:
>> 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);
>
> CCing to LKML.
>
> Looks good to me. Given a vmcore file, one needs to know about
> the shift between compile address and run time address of kernel
> to be able to do filtering. This shift (phys_base) will vary
> based on kernel config options and based on where boot loader
> has loaded a kernel.
>
> Acked-by: Vivek Goyal <vgoyal@redhat.com>
Thank you so much for your review and "Acked-by" :-)
Thanks
Ken'ichi Ohmichi
[-- 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.