Searched hist:b8643d682669994b3f57c3440df3d4f9cb735f35 (Results 1 – 2 of 2) sorted by relevance
/linux/block/ |
H A D | blk-mq.h | diff b8643d682669994b3f57c3440df3d4f9cb735f35 Wed Sep 13 17:16:12 CEST 2023 Chengming Zhou <zhouchengming@bytedance.com> blk-mq: account active requests when get driver tag
There is a limit that batched queue_rqs() can't work on shared tags queue, since the account of active requests can't be done there.
Now we account the active requests only in blk_mq_get_driver_tag(), which is not the time we get driver tag actually (with none elevator).
To support batched queue_rqs() on shared tags queue, we move the account of active requests to where we get the driver tag:
1. none elevator: blk_mq_get_tags() and blk_mq_get_tag() 2. other elevator: __blk_mq_alloc_driver_tag()
This is clearer and match with the unaccount side, which just happen when we put the driver tag.
The other good point is that we don't need RQF_MQ_INFLIGHT trick anymore, which used to avoid double account of flush request. Now we only account when actually get the driver tag, so all is good. We will remove RQF_MQ_INFLIGHT in the next patch.
Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com> Reviewed-by: Ming Lei <ming.lei@redhat.com> Link: https://lore.kernel.org/r/20230913151616.3164338-2-chengming.zhou@linux.dev Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
H A D | blk-mq.c | diff b8643d682669994b3f57c3440df3d4f9cb735f35 Wed Sep 13 17:16:12 CEST 2023 Chengming Zhou <zhouchengming@bytedance.com> blk-mq: account active requests when get driver tag
There is a limit that batched queue_rqs() can't work on shared tags queue, since the account of active requests can't be done there.
Now we account the active requests only in blk_mq_get_driver_tag(), which is not the time we get driver tag actually (with none elevator).
To support batched queue_rqs() on shared tags queue, we move the account of active requests to where we get the driver tag:
1. none elevator: blk_mq_get_tags() and blk_mq_get_tag() 2. other elevator: __blk_mq_alloc_driver_tag()
This is clearer and match with the unaccount side, which just happen when we put the driver tag.
The other good point is that we don't need RQF_MQ_INFLIGHT trick anymore, which used to avoid double account of flush request. Now we only account when actually get the driver tag, so all is good. We will remove RQF_MQ_INFLIGHT in the next patch.
Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com> Reviewed-by: Ming Lei <ming.lei@redhat.com> Link: https://lore.kernel.org/r/20230913151616.3164338-2-chengming.zhou@linux.dev Signed-off-by: Jens Axboe <axboe@kernel.dk>
|