On 2022/06/02 21:12, Lianbo Jiang wrote:
> Currently, crash doesn't support to display disk I/O statistics
> for blk-mq devices. The patchset will implement it by parsing
> the bitmap, it includes two patches:
>
> [1] [PATCH 1/2] Support for "dev -d|-D" options by parsing bitmap in
> blk-mq layer
> [2] [PATCH 2/2] Fix for "dev -d|-D" options to correctly display disk I/O
> statistics on linux v5.18-rc1
>
> Related kernel commits:
> [1] commit 9a14d6ce4135 ("block: remove debugfs blk_mq_ctx
> dispatched/merged/completed attributes")
> [2] commit 4e5cc99e1e48 ("blk-mq: manage hctx map via xarray")
>
> The patchset is tested on v5.17.0-rc8 and the latest kernel 5.18.0-rc4.
>
> With the patchset:
> crash> dev -d
> MAJOR GENDISK NAME REQUEST_QUEUE TOTAL ASYNC SYNC
> 8 ffff93d2ca593400 sda ffff93d2c917b960 18 15 3
>
> Changes since v3:
> [1] rename the 'struct bt_iter_data' to 'struct mq_inflight'
> [2] rename the 'struct bt_tags_iter_data' to 'struct bt_iter_data'
> [3] rename the 'flags' to 'reserved'
> [4] rename the 'bt_tags_for_each' to 'bt_for_each'
> [5] rename the 'bt_tags_iter' to 'bt_iter'
> [6] removed the 'if (!hctx || !dio)' from the queue_for_each_hw_ctx()
> [7] removed the 'if (!IS_KVADDR(hctx[i]))' from the queue_for_each_hw_ctx()
> [8] removed the local variable 'struct diskio tmp'
The patchset tested OK with some vmcores on hand.
Thank you for helping with the test and review, Kazu.
I've edited the commit logs a bit and applied.
Thank you for the huge work!
No problem. This looks good.
Thanks.
Lianbo
Kazu