Re: [PATCHSET/RFC v2] blk-mq scheduling framework

From: Jens Axboe
Date: Tue Dec 13 2016 - 12:13:13 EST


On 12/13/2016 09:15 AM, Paolo Valente wrote:
>
>> Il giorno 13 dic 2016, alle ore 16:17, Jens Axboe <axboe@xxxxxx> ha scritto:
>>
>> On Tue, Dec 13 2016, Paolo Valente wrote:
>>>
>>>> Il giorno 08 dic 2016, alle ore 21:13, Jens Axboe <axboe@xxxxxx> ha scritto:
>>>>
>>>> As a followup to this posting from yesterday:
>>>>
>>>> https://marc.info/?l=linux-block&m=148115232806065&w=2
>>>>
>>>> this is version 2. I wanted to post a new one fairly quickly, as there
>>>> ended up being a number of potential crashes in v1. This one should be
>>>> solid, I've run mq-deadline on both NVMe and regular rotating storage,
>>>> and we handle the various merging cases correctly.
>>>>
>>>> You can download it from git as well:
>>>>
>>>> git://git.kernel.dk/linux-block blk-mq-sched.2
>>>>
>>>> Note that this is based on for-4.10/block, which is in turn based on
>>>> v4.9-rc1. I suggest pulling it into my for-next branch, which would
>>>> then merge nicely with 'master' as well.
>>>>
>>>
>>> Hi Jens,
>>> this is just to tell you that I have finished running some extensive
>>> tests on this patch series (throughput, responsiveness, low latency
>>> for soft real time). No regression w.r.t. blk detected, and no
>>> crashes or other anomalies.
>>>
>>> Starting to work on BFQ port. Please be patient with my little
>>> expertise on mq environment, and with my next silly questions!
>>
>> No worries, ask away if you have questions. As you might have seen, it's
>> still a little bit of a moving target, but it's getting closer every
>> day. I'll post a v3 later today hopefully that will be a good fix point
>> for you. I'll need to add the io context setup etc, that's not there
>> yet, as only cfq/bfq uses that.
>>
>
> You anticipated the question that was worrying me more, how to handle
> iocontexts :) I'll go on studying your patches while waiting for this
> (last, right?) missing piece for bfq.

It's the last missing larger piece. We probably have a few hooks that
BFQ/CFQ currently uses that aren't wired up yet in the elevator_ops for
mq, so you'll probably have to do those as you go. I can take a look,
but I would prefer if they be done one a as-needed basis. Perhaps we can
get rid of some of them.

> Should you implement a modified version of cfq, to test your last
> extensions, I would of course appreciate very much to have a look at
> it (if you are willing to share it, of course).

I most likely won't do that, as it would be a waste of time on my end.
If you need help with the BFQ parts, I'll help you out.

--
Jens Axboe