[Crash-utility] [PATCH v2 1/1] Support member offset uts_namespace.name
HAGIO KAZUHITO(萩尾 一仁)
k-hagio-ab at nec.com
Thu Oct 15 02:41:40 UTC 2020
-----Original Message-----
> 在 2020年10月02日 00:00, crash-utility-request at redhat.com 写道:
> > Message: 2
> > Date: Thu, 1 Oct 2020 15:19:59 +0200
> > From: Alexander Egorenkov <egorenar at linux.ibm.com>
> > To: crash-utility at redhat.com, k-hagio-ab at nec.com
> > Subject: [Crash-utility] [PATCH v2 1/1] Support member offset
> > uts_namespace.name
> > Message-ID: <20201001131959.456735-1-egorenar at linux.ibm.com>
> > Content-Type: text/plain; charset="US-ASCII"
> >
> > The offset of the field 'init_uts_ns.name' has changed
> > since commit 9a56493f6942 ("uts: Use generic ns_common::count").
> >
> > Link: https://lore.kernel.org/r/159644978167.604812.1773586504374412107.stgit@localhost.localdomain
> >
> > Read the offset from VMCOREINFO if present. This requires a linux version
> > which exports the requisite offset in VMCOREINFO.
> >
> > Signed-off-by: Alexander Egorenkov <egorenar at linux.ibm.com>
> > ---
> >
> > v1 -> v2:
> > * Use offset from VMCOREINFO
> > * Initialize corresponding entry in offset_table
> > For the v2:
> Acked-by: Lianbo Jiang <lijiang at redhat.com>
Thanks, applied.
https://github.com/crash-utility/crash/commit/a5e1aeb864b47c4cdb33e290c3efa02803a07671
Kazu
>
> Thanks.
>
> > defs.h | 1 +
> > kernel.c | 15 ++++++++++-----
> > symbols.c | 3 +++
> > 3 files changed, 14 insertions(+), 5 deletions(-)
> >
> > diff --git a/defs.h b/defs.h
> > index c899fe2..9a8030a 100644
> > --- a/defs.h
> > +++ b/defs.h
> > @@ -2104,6 +2104,7 @@ struct offset_table { /* stash of commonly-used offsets */
> > long inode_i_sb_list;
> > long irq_common_data_affinity;
> > long irq_desc_irq_common_data;
> > + long uts_namespace_name;
> > };
> >
> > struct size_table { /* stash of commonly-used sizes */
> > diff --git a/kernel.c b/kernel.c
> > index 5ae8cf1..9871637 100644
> > --- a/kernel.c
> > +++ b/kernel.c
> > @@ -230,16 +230,21 @@ kernel_init()
> > fprintf(fp, "%s\n\n", ctime_tz(&kt->date.tv_sec));
> > clean_exit(0);
> > }
> > -
> > +
> > + MEMBER_OFFSET_INIT(uts_namespace_name, "uts_namespace", "name");
> > if (symbol_exists("system_utsname"))
> > readmem(symbol_value("system_utsname"), KVADDR, &kt->utsname,
> > sizeof(struct new_utsname), "system_utsname",
> > RETURN_ON_ERROR);
> > - else if (symbol_exists("init_uts_ns"))
> > - readmem(symbol_value("init_uts_ns") + sizeof(int),
> > - KVADDR, &kt->utsname, sizeof(struct new_utsname),
> > + else if (symbol_exists("init_uts_ns")) {
> > + long offset = sizeof(int);
> > + if (VALID_MEMBER(uts_namespace_name))
> > + offset = OFFSET(uts_namespace_name);
> > +
> > + readmem(symbol_value("init_uts_ns") + offset,
> > + KVADDR, &kt->utsname, sizeof(struct new_utsname),
> > "init_uts_ns", RETURN_ON_ERROR);
> > - else
> > + } else
> > error(INFO, "cannot access utsname information\n\n");
> >
> > if (CRASHDEBUG(1)) {
> > diff --git a/symbols.c b/symbols.c
> > index d22fb1d..3dd5fa1 100644
> > --- a/symbols.c
> > +++ b/symbols.c
> > @@ -10585,6 +10585,9 @@ dump_offset_table(char *spec, ulong makestruct)
> > fprintf(fp, " xa_node_shift: %ld\n",
> > OFFSET(xa_node_shift));
> >
> > + fprintf(fp, " uts_namespace_name: %ld\n",
> > + OFFSET(uts_namespace_name));
> > +
> > fprintf(fp, "\n size_table:\n");
> > fprintf(fp, " page: %ld\n", SIZE(page));
> > fprintf(fp, " page_flags: %ld\n", SIZE(page_flags));
> > -- 2.26.2
More information about the Crash-utility
mailing list