在 2020年09月16日 14:47, d.hatayama@xxxxxxxxxxx 写道: > Lianbo, > > Sorry for the delayed response. > No worry. > Thanks for your report and this patch. > > In addition to this patch, it's also necessary to modify ioperm_active() and ioperm_get() accordingly, > without which, note information of NT_IOPERM fails to be collected. > > I'll do the additional fix based on your patch and include it in the next version. > OK, good to know. Thanks. > Thanks. > HATAYAMA, Daisuke > > ________________________________________ > From: crash-utility-bounces@xxxxxxxxxx <crash-utility-bounces@xxxxxxxxxx> on behalf of Lianbo Jiang <lijiang@xxxxxxxxxx> > Sent: Friday, August 28, 2020 13:04 > To: crash-utility@xxxxxxxxxx > Subject: [PATCH] crash-extension/gcore: fix the failure of invalid structure member offset > > With kernel commit: <577d5cd7e585> ("x86/ioperm: Move iobitmap data into > a struct"), the io_bitmap_max and io_bitmap_ptr have been changed. And > move the iobitmap data into a struct io_bitmap. > > So, the crash-gcore-command needs to be updated accordingly, otherwise, > the gcore will fail as below: > > crash> bt -t|grep -i task > PID: 3968 TASK: ffff9e512e97af80 CPU: 86 COMMAND: "bash" > crash> gcore 3968 > > gcore: invalid structure member offset: thread_struct_io_bitmap_max > FILE: libgcore/gcore_x86.c LINE: 846 FUNCTION: ioperm_active() > > [./crash] error trace: 7f31fca56108 => 7f31fca593b7 => 53a4e1 => 53a463 > > 53a463: OFFSET_verify.part.27+51 > 53a4e1: OFFSET_verify+49 > > gcore: invalid structure member offset: thread_struct_io_bitmap_max > FILE: libgcore/gcore_x86.c LINE: 846 FUNCTION: ioperm_active() > > Failed. > > Signed-off-by: Lianbo Jiang <lijiang@xxxxxxxxxx> > --- > gcore.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/gcore.c b/gcore.c > index 27a11938026a..e3e41ecb435b 100644 > --- a/gcore.c > +++ b/gcore.c > @@ -487,6 +487,10 @@ static void gcore_offset_table_init(void) > GCORE_MEMBER_OFFSET_INIT(thread_struct_xstate, "thread_struct", "i387"); > GCORE_MEMBER_OFFSET_INIT(thread_struct_io_bitmap_max, "thread_struct", "io_bitmap_max"); > GCORE_MEMBER_OFFSET_INIT(thread_struct_io_bitmap_ptr, "thread_struct", "io_bitmap_ptr"); > + if (GCORE_INVALID_MEMBER(thread_struct_io_bitmap_max)) { > + GCORE_MEMBER_OFFSET_INIT(thread_struct_io_bitmap_max, "io_bitmap", "max"); > + GCORE_MEMBER_OFFSET_INIT(thread_struct_io_bitmap_ptr, "io_bitmap", "bitmap"); > + } > GCORE_MEMBER_OFFSET_INIT(user_regset_n, "user_regset", "n"); > GCORE_MEMBER_OFFSET_INIT(vm_area_struct_anon_vma, "vm_area_struct", "anon_vma"); > GCORE_MEMBER_OFFSET_INIT(vm_area_struct_vm_ops, "vm_area_struct", "vm_ops"); > -- > 2.17.1 > > -- > Crash-utility mailing list > Crash-utility@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/crash-utility > -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility