Hi Lianbo,

-----Original Message-----
> Kernel commit <9a14d6ce4135> ("block: remove debugfs blk_mq_ctx
> dispatched/merged/completed attributes") removed the member
> rq_dispatched and rq_completed from struct blk_mq_ctx. Without
> this patch, crash will fail with the following error:
> 
> crash> dev -d
> MAJOR GENDISK            NAME       REQUEST_QUEUE      TOTAL ASYNC  SYNC
> 
> dev: invalid structure member offset: blk_mq_ctx_rq_dispatched
>      FILE: dev.c  LINE: 4229  FUNCTION: get_one_mctx_diskio()

Thank you for working on this.
IIUC, crash will need sbitmap functionality to support this fully.

Meanwhile, I think it's OK to skip the count, but it should say "actually zero"
or "not supported" so that users can know it, for example:

crash> dev -d
MAJOR GENDISK            NAME       REQUEST_QUEUE      TOTAL ASYNC  SYNC 
    8 ffff92bbd102e400   sdb        ffff92bbf04e3678       0     0     0
dev: sdb: Disk I/O statistics is not supported in this kernel
    8 ffff92bbd1014400   sdc        ffff92bbf04e26e8       0     0     0
dev: sdc: Disk I/O statistics is not supported in this kernel
   11 ffff92c347da5e00   sr0        ffff92bbd9c3e528       0     0     0
  253 ffff92bbca726e00   dm-0       ffff92bbcad7dd60       0     0     0

What do you think?

Thanks,
Kazu


> 
> Signed-off-by: Lianbo Jiang <[email protected]>
> ---
>  dev.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/dev.c b/dev.c
> index effe789f38d8..dd21511e5dfc 100644
> --- a/dev.c
> +++ b/dev.c
> @@ -4246,6 +4246,10 @@ get_mq_diskio(unsigned long q, unsigned long *mq_count)
>       unsigned long mctx_addr;
>       struct diskio tmp;
> 
> +     if (!MEMBER_EXISTS("blk_mq_ctx", "rq_dispatched") &&
> +             !MEMBER_EXISTS("blk_mq_ctx", "rq_completed"))
> +             return;
> +
>       memset(&tmp, 0x00, sizeof(struct diskio));
> 
>       readmem(q + OFFSET(request_queue_queue_ctx), KVADDR, &queue_ctx,
> --
> 2.20.1


--
Crash-utility mailing list
[email protected]
https://listman.redhat.com/mailman/listinfo/crash-utility

Reply via email to