Messages in this thread | | | Subject | Re: [PATCH RFT 0/3] blk-mq: Optimise blk_mq_queue_tag_busy_iter() for shared tags | From | John Garry <> | Date | Mon, 15 Nov 2021 15:56:16 +0000 |
| |
On 02/11/2021 11:27, John Garry wrote:
Hi Kashyap,
Any chance you can try this series or give an update on the issue reported earlier?
thanks @ Ming for the reviews.
Cheers, John
> In [0], Kashyap reports high CPU usage for blk_mq_queue_tag_busy_iter() > and callees for shared tags. > > Indeed blk_mq_queue_tag_busy_iter() would be less optimum for moving to > shared tags, but it was not optimum previously. > > So I would like this series tested, and also to know what is triggering > blk_mq_queue_tag_busy_iter() from userspace to cause such high CPU > loading. > > As suggested by Ming, reading /proc/diskstats in a while true loop > can trigger blk_mq_queue_tag_busy_iter(); I do so in a test with 2x > separate consoles, and here are the results: > > v5.15 > blk_mq_queue_tag_busy_iter() 6.2% > part_stat_read_all() 6.7 > > pre-v5.16 (Linus' master branch @ commit bfc484fe6abb) > blk_mq_queue_tag_busy_iter() 4.5% > part_stat_read_all() 6.2 > > pre-v5.16+this series > blk_mq_queue_tag_busy_iter() not shown in top users > part_stat_read_all() 7.5% > > These results are from perf top, on a system with 7x > disks, with hisi_sas which has 16x HW queues. > > [0] https://lore.kernel.org/linux-block/e4e92abbe9d52bcba6b8cc6c91c442cc@mail.gmail.com/ > > John Garry (3): > blk-mq: Drop busy_iter_fn blk_mq_hw_ctx argument > blk-mq: Delete busy_iter_fn > blk-mq: Optimise blk_mq_queue_tag_busy_iter() for shared tags > > block/blk-mq-tag.c | 58 +++++++++++++++++++++++++++--------------- > block/blk-mq-tag.h | 2 +- > block/blk-mq.c | 17 ++++++------- > include/linux/blk-mq.h | 2 -- > 4 files changed, 47 insertions(+), 32 deletions(-) >
| |