Re: [PATCH V10 3/4] blk-mq: issue directly with bypass 'false' in blk_mq_sched_insert_requests

From: Jens Axboe
Date: Thu Dec 06 2018 - 20:19:01 EST


On 12/6/18 6:16 PM, jianchao.wang wrote:
>
>
> On 12/6/18 11:19 PM, Jens Axboe wrote:
>> On 12/5/18 8:32 PM, Jianchao Wang wrote:
>>> It is not necessary to issue request directly with bypass 'true'
>>> in blk_mq_sched_insert_requests and handle the non-issued requests
>>> itself. Just set bypass to 'false' and let blk_mq_try_issue_directly
>>> handle them totally. Remove the blk_rq_can_direct_dispatch check,
>>> because blk_mq_try_issue_directly can handle it well.
>>>
>>> With respect to commit_rqs hook, we only need to care about the last
>>> request's result. If it is inserted, invoke commit_rqs.
>>
>> I don't think there's anything wrong, functionally, with this patch,
>> but I question the logic of continuing to attempt direct dispatch
>> if we fail one. If we get busy on one, for instance, we should just
>> insert that one to the dispatch list, and insert the rest of the list
>> normally.
>>
>>
> It is OK for me to stop to attempt direct dispatch and insert all of the
> rest when meet the non-ok case.

Great, let's do that then, I think that makes more sense. The usual case
of not being able to dispatch is resource limited, and for that case
we'd just be wasting our time continuing to attempt direct dispatch.

--
Jens Axboe