From: Dave Anderson <anderson@redhat.com>
To: Dave Young <dyoung@redhat.com>
Cc: kexec@lists.infradead.org
Subject: Re: makedumpfile saving vmcore fails with dynamically allocated mem_section (was: Re: [PATCH] handle renamed init_level4_pgt -> init_top_pgt)
Date: Fri, 5 Jan 2018 09:16:46 -0500 (EST) [thread overview]
Message-ID: <1123355622.3166541.1515161806514.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <20180105023828.GA11054@dhcp-128-65.nay.redhat.com>
----- Original Message -----
> On 01/03/18 at 03:21pm, Dave Anderson wrote:
> >
> >
> > ----- Original Message -----
> >
> > > On 01/02/18 at 05:08pm, Baoquan He wrote:
> > > > On 01/02/18 at 04:57pm, Dave Young wrote:
> > > > > The root cause is this commit makes mem_section as a pointer instead
> > > > > of
> > > > > the static array.
> > > > >
> > > > > VMCOREINFO_SYMBOL() expand it as &mem_section, this is not correct in
> > > > > the test case any more.
> > > > >
> > > > > This hack code works for me:
> > > > >
> > > > > diff --git a/kernel/crash_core.c b/kernel/crash_core.c
> > > > > index b3663896278e..f5fe6068ae39 100644
> > > > > --- a/kernel/crash_core.c
> > > > > +++ b/kernel/crash_core.c
> > > > > @@ -376,6 +376,8 @@ phys_addr_t __weak paddr_vmcoreinfo_note(void)
> > > > > {
> > > > > return __pa(vmcoreinfo_note);
> > > > > }
> > > > > +#define VMCOREINFO_SYMBOL_HACK(name) \
> > > > > + vmcoreinfo_append_str("SYMBOL(%s)=%lx\n", #name, (unsigned
> > > > > long)name)
> > > >
> > > > Oh, you made a new one. We may use vmcoreinfo_append_str directly since
> > > > there's an existing one in crash_save_vmcoreinfo():
> > >
> > > Yes, it should be something like this instead, this should ensure
> > > makedumpfile maybe crash tool works without any modifications,
> > > waiting for feedback from Atsushi, also ccing Dave for crash utility
> > > potential issue.
> >
> > Yeah, I ran into that issue when testing 4.15, and fixed it upstream:
> >
> > https://github.com/crash-utility/crash/commit/264f22dafe9f37780c4113fd08e8d5b2138edbce
> >
> > commit 264f22dafe9f37780c4113fd08e8d5b2138edbce
> > Author: Dave Anderson <anderson@redhat.com>
> > Date: Wed Nov 29 15:28:41 2017 -0500
> >
> > Fix for Linux 4.15 and later kernels that are configured with
> > CONFIG_SPARSEMEM_EXTREME, and that contain kernel commit
> > 83e3c48729d9ebb7af5a31a504f3fd6aff0348c4, titled "mm/sparsemem:
> > Allocate mem_section at runtime for CONFIG_SPARSEMEM_EXTREME=y".
> > Without the patch, kernels configured with SPARSEMEM_EXTREME
> > have changed the data type of "mem_section" from an array to
> > a pointer, leading to errors in commands such as "kmem -p",
> > "kmem -n", "kmem -s", and any other command that translates a
> > physical address to its page struct address.
> > (anderson@redhat.com)
> >
>
> Hi Dave,
>
> I tried latest crash tool, but segment fault happened, I put the
> vmlinux/vmcore in below url, could you have a look?:
> http://people.redhat.com/ruyang/rhbz1528542/127.0.0.1-2018-01-05-10:29:23/
I can't access them:
Forbidden
You don't have permission to access /ruyang/rhbz1528542/127.0.0.1-2018-01-05-10:29:23/vmcore on this server.
Although, in the meantime, what should first be clarified is why this message occurred:
WARNING: kernel version inconsistency between vmlinux and dumpfile
If you run with at least "crash -d1", it will display the version strings from
the vmlinux file and the dumpfile, and they should be identical.
Dave
>
> ---
> crash 7.2.0++
> Copyright (C) 2002-2017 Red Hat, Inc.
> Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation
> Copyright (C) 1999-2006 Hewlett-Packard Co
> Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited
> Copyright (C) 2006, 2007 VA Linux Systems Japan K.K.
> Copyright (C) 2005, 2011 NEC Corporation
> Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc.
> Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc.
> This program is free software, covered by the GNU General Public License,
> and you are welcome to change it and/or distribute copies of it under
> certain conditions. Enter "help copying" to see the conditions.
> This program has absolutely no warranty. Enter "help warranty" for details.
>
> GNU gdb (GDB) 7.6
> Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-unknown-linux-gnu"...
>
> WARNING: could not find MAGIC_START!
> WARNING: kernel version inconsistency between vmlinux and dumpfile
>
> please wait... (gathering task table data)
> WARNING: duplicate idle tasks?
>
> WARNING: duplicate idle tasks?
> please wait... (determining panic task)
> WARNING: active task ffffffff81e90536 on cpu 0 not found in PID hash
>
> [ 1156.567444] crash[2964]: segfault at 7175228 ip 00000000004bf39e sp
> 00007ffd5dce3f30 error 6 in crash[400000+6da000]
> Segmentation fault (core dumped)
>
> The tested kernel applied below patch (a tuned patch according to bhe's
> suggestion):
>
> ---
> kernel/crash_core.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> --- linux.orig/kernel/crash_core.c
> +++ linux/kernel/crash_core.c
> @@ -410,7 +410,8 @@ static int __init crash_save_vmcoreinfo_
> VMCOREINFO_SYMBOL(contig_page_data);
> #endif
> #ifdef CONFIG_SPARSEMEM
> - VMCOREINFO_SYMBOL(mem_section);
> + vmcoreinfo_append_str("SYMBOL(mem_section)=%lx\n",
> + (unsigned long)mem_section);
> VMCOREINFO_LENGTH(mem_section, NR_SECTION_ROOTS);
> VMCOREINFO_STRUCT_SIZE(mem_section);
> VMCOREINFO_OFFSET(mem_section, section_mem_map);
>
>
> Thanks
> Dave
>
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
next prev parent reply other threads:[~2018-01-05 14:17 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.7.1515009607.12089.kexec@lists.infradead.org>
2018-01-03 20:21 ` makedumpfile saving vmcore fails with dynamically allocated mem_section (was: Re: [PATCH] handle renamed init_level4_pgt -> init_top_pgt) Dave Anderson
2018-01-05 2:38 ` Dave Young
2018-01-05 3:19 ` Dave Young
2018-01-05 14:16 ` Dave Anderson [this message]
2018-01-06 6:13 ` Dave Young
2018-01-06 16:06 ` Dave Anderson
2018-01-08 8:40 ` Dave Young
2017-11-07 10:20 [PATCH] handle renamed init_level4_pgt -> init_top_pgt Atsushi Kumagai
2017-12-08 8:15 ` Atsushi Kumagai
2017-12-20 7:24 ` Dave Young
2017-12-21 8:48 ` Atsushi Kumagai
2017-12-22 4:54 ` Dave Young
2017-12-22 5:48 ` Dave Young
2017-12-26 8:21 ` Atsushi Kumagai
2018-01-02 8:57 ` Dave Young
2018-01-02 9:08 ` Baoquan He
2018-01-03 2:30 ` makedumpfile saving vmcore fails with dynamically allocated mem_section (was: Re: [PATCH] handle renamed init_level4_pgt -> init_top_pgt) Dave Young
2018-01-03 2:38 ` Baoquan He
2018-01-05 8:19 ` Atsushi Kumagai
2018-01-06 5:36 ` Dave Young
2018-01-09 5:17 ` Atsushi Kumagai
2018-01-09 5:33 ` Dave Young
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1123355622.3166541.1515161806514.JavaMail.zimbra@redhat.com \
--to=anderson@redhat.com \
--cc=dyoung@redhat.com \
--cc=kexec@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.