Re: [PATCHSET v4] blk-mq-scheduling framework

From: Jens Axboe
Date: Mon Jan 23 2017 - 12:42:41 EST


On 01/23/2017 10:04 AM, Paolo Valente wrote:
>
>> Il giorno 18 gen 2017, alle ore 17:21, Jens Axboe <axboe@xxxxxx> ha scritto:
>>
>> On 01/18/2017 08:14 AM, Paolo Valente wrote:
>>> according to the function blk_mq_sched_put_request, the
>>> mq.completed_request hook seems to always be invoked (if set) for a
>>> request for which the mq.put_rq_priv is invoked (if set).
>>
>> Correct, any request that came out of blk_mq_sched_get_request()
>> will always have completed called on it, regardless of whether it
>> had IO started on it or not.
>>
>
> It seems that some request, after being dispatched, happens to have no
> mq.put_rq_priv invoked on it now or then. Is it expected? If it is,
> could you point me to the path through which the end of the life of
> such a request is handled?

I'm guessing that's a flush request. I added RQF_QUEUED to check for
that, if RQF_QUEUED is set, you know it has come from your get_request
handler.

I'm assuming that is it, let me know.

--
Jens Axboe