----- Original Message ----- > Hello Dave, > > The following kernel commit changes the member "rq" to member > "root_rl" in the request_queue structure: > > commit a051661ca6d134c18599498b185b667859d4339b > Author: Tejun Heo <tj@xxxxxxxxxx> > Date: Tue Jun 26 15:05:44 2012 -0700 > blkcg: implement per-blkg request allocation > - struct request_list rq; > + struct request_list root_rl; > > This breaks the "dev -d" crash command: > > crash> dev -d > MAJOR GENDISK NAME REQUEST QUEUE TOTAL ASYNC > SYNC DRV > dev: invalid structure member offset: request_queue_rq > FILE: dev.c LINE: 3807 FUNCTION: get_diskio_1() > 80116438: OFFSET_verify+96 > 800f55da: get_diskio_1+62 > 800f5c52: display_all_diskio+1318 > 8006ff1c: exec_command+972 > dev: invalid structure member offset: request_queue_rq > FILE: dev.c LINE: 3807 FUNCTION: get_diskio_1() > > The following fix just uses "root_rl" instead of "rq". Not completely sure, if > this is sufficient. > > With the fix on my s390 system I get: > > crash> dev -d > MAJOR GENDISK NAME REQUEST QUEUE TOTAL ASYNC SYNC DRV > 94 0x1ea144a8 dasda 0x1ebcc2b8 0 0 0 0 > 9 0x1e93d9c8 md0 0x1ebcb560 0 0 0 0 > --- The patch works OK for me, and I suppose that there are simply no I/O's in progress. I wish that the authors of crash utility options would keep an eye on their own patches, and that that this would have been caught earlier. I'll also remove those prepended "0x"'s from the addresses -- I'm surprised I let that slip in when the patch was originally proposed. (I'd actually forgotten that the option even existed...) Thanks, Dave > dev.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > --- a/dev.c > +++ b/dev.c > @@ -4050,7 +4050,11 @@ void diskio_init(void) > MEMBER_OFFSET_INIT(request_list_count, "request_list", "count"); > MEMBER_OFFSET_INIT(request_queue_in_flight, "request_queue", > "in_flight"); > - MEMBER_OFFSET_INIT(request_queue_rq, "request_queue", "rq"); > + if (MEMBER_EXISTS("request_queue", "rq")) > + MEMBER_OFFSET_INIT(request_queue_rq, "request_queue", "rq"); > + else > + MEMBER_OFFSET_INIT(request_queue_rq, > + "request_queue", "root_rl"); > MEMBER_OFFSET_INIT(subsys_private_klist_devices, "subsys_private", > "klist_devices"); > MEMBER_OFFSET_INIT(subsystem_kset, "subsystem", "kset"); > -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility