Re: [PATCH 7/8] mq-deadline: add blk-mq adaptation of the deadline IO scheduler

From: Paolo Valente
Date: Fri Jan 20 2017 - 06:07:14 EST



> Il giorno 17 gen 2017, alle ore 03:47, Jens Axboe <axboe@xxxxxx> ha scritto:
>
> On 12/22/2016 09:49 AM, Paolo Valente wrote:
>>
>>> Il giorno 17 dic 2016, alle ore 01:12, Jens Axboe <axboe@xxxxxx> ha scritto:
>>>
>>> This is basically identical to deadline-iosched, except it registers
>>> as a MQ capable scheduler. This is still a single queue design.
>>>
>>
>> One last question (for today ...):in mq-deadline there are no
>> "schedule dispatch" or "unplug work" functions. In blk, CFQ and BFQ
>> do these schedules/unplugs in a lot of cases. What's the right
>> replacement? Just doing nothing?
>
> You just use blk_mq_run_hw_queue() or variants thereof to kick off queue
> runs.
>

Hi Jens,
I'm working on this right now. I have a pair of quick questions about
performance.

In the blk version of bfq, if the in-service bfq_queue happen to have
no more budget when the bfq dispatch function is invoked, then bfq:
returns no request (NULL), immediately expires the in-service
bfq_queue, and schedules a new dispatch. The third step is taken so
that, if other bfq_queues have requests, then a new in-service
bfq_queue will be selected on the upcoming new dispatch, and a new
request will be provided right away.

My questions are: is this dispatch-schedule step still needed with
blk-mq, to avoid a stall? If it is not needed to avoid a stall, would
it still be needed to boost throughput, because it would force an
immediate, next dispatch?

BTW, bfq-mq survived its first request completion. I will provide you
with a link to a github branch as soon as bfq-mq seems able to stand
up with a minimal workload.

Thanks,
Paolo

> --
> Jens Axboe
>