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.
I've edited the commit logs a bit and applied.
Thank you for the huge work!
Kazu