Messages in this thread | | | Date | Thu, 24 Aug 2023 10:02:30 -0700 | Subject | Re: [PATCH 0/6] blk-mq: optimize the queue_rqs() support | From | Bart Van Assche <> |
| |
On 8/24/23 07:43, chengming.zhou@linux.dev wrote: > From: Chengming Zhou <zhouchengming@bytedance.com> > > The current queue_rqs() support has limitation that it can't work on > shared tags queue, which is resolved by patch 1-3. We move the account > of active requests to where we really allocate the driver tag. > > This is clearer and matched with the unaccount side which now happen > when we put the driver tag. And we can remove RQF_MQ_INFLIGHT, which > was used to avoid double account problem of flush request. > > Another problem is that the driver that support queue_rqs() has to > set inflight request table by itself, which is resolved in patch 4. > > The patch 5 fixes a potential race problem which may cause false > timeout because of the reorder of rq->state and rq->deadline. > > The patch 6 add support queue_rqs() for null_blk, which showed a > 3.6% IOPS improvement in fio/t/io_uring benchmark on my test VM. > And we also use it for testing queue_rqs() on shared tags queue.
Hi Jens and Christoph,
This patch series would be simplified significantly if the code for fair tag allocation would be removed first (https://lore.kernel.org/linux-block/20230103195337.158625-1-bvanassche@acm.org/, January 2023). It has been proposed to improve fair tag sharing but the complexity of the proposed alternative is scary (https://lore.kernel.org/linux-block/20230618160738.54385-1-yukuai1@huaweicloud.com/, June 2023). Does everyone agree with removing the code for fair tag sharing - code that significantly hurts performance of UFS devices and code that did not exist in the legacy block layer?
Thanks,
Bart.
| |