Re: [PATCH V3 0/2] block: kyber: make kyber more friendly with merging
From: Jens Axboe
Date: Wed May 30 2018 - 12:49:02 EST
On 5/30/18 1:26 AM, Jianchao Wang wrote:
> Hi Jens
>
> This is the 3rd version patchset to make the kyber io scheduler more firendly
> with merging.
>
> Most of time, kyber io scheduler will not leave any requests in ctx rq_list,
> this is because even if tokens of one domain is used up, kyber will try to
> dispatch requests from other domain and flush the rq_list there. So there is not
> any change to do merge.
>
> To improve this, setup kyber_ctx_queue (kcq) which is similar with blk_mq_ctx but has
> rq_list for every domain, and build mapping between kcq and khd as ctx and hctx.
> Then we could merge, insert and dispatch on rq_list of different domains separately.
> At the same time, only flush the rq_list of kcq after get domain token
> successfully, then the requests could be left in the rq_list of that domain and
> maybe merged with following io. In my local test on NVMe card, the sequential io
> performance could be improved a lot, especially on high workload. More details
> please refer to the second patch.
Great work, thanks Jianchao - applied for 4.18.
--
Jens Axboe