-----Original Message----- > 在 2020年10月02日 00:00, crash-utility-request@xxxxxxxxxx 写道: > > Message: 2 > > Date: Thu, 1 Oct 2020 15:19:59 +0200 > > From: Alexander Egorenkov <egorenar@xxxxxxxxxxxxx> > > To: crash-utility@xxxxxxxxxx, k-hagio-ab@xxxxxxx > > Subject: [PATCH v2 1/1] Support member offset > > uts_namespace.name > > Message-ID: <20201001131959.456735-1-egorenar@xxxxxxxxxxxxx> > > 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@xxxxxxxxxxxxx> > > --- > > > > v1 -> v2: > > * Use offset from VMCOREINFO > > * Initialize corresponding entry in offset_table > > For the v2: > Acked-by: Lianbo Jiang <lijiang@xxxxxxxxxx> 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 -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility