[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