Re: [PATCH] blk-mq: kick requeue list in blk_mq_requeue_request()

From: Ming Lei
Date: Tue Jun 10 2014 - 07:45:53 EST


On Tue, Jun 10, 2014 at 7:28 PM, Christoph Hellwig <hch@xxxxxx> wrote:
> On Tue, Jun 10, 2014 at 12:52:05PM +0800, Ming Lei wrote:
>> blk_mq_requeue_request() should kick off the requeue list so
>> that the request can be scheduled to queue finally.
>>
>> In nvme conversion patch, blk_mq_requeue_request() is called
>> to requeue failed request from completion handler, this patch
>> fixes the issue and makes the block API working as expected.
>
> I've intentionally kepts the two separate so that we can batch operations
> and just do a single kick for multiple requeued commands.
>

OK, but the API name is a bit confusing, and that is easy to cause
misuse, like in nvme.

Also requeue one request in completion handler may be a
common case, so maybe it is better to let blk_mq_requeue_request()
handle both adding to request list and kicking off, and introduce
blk_mq_prep_requeue_req()(or better name) to batch operations.


Thanks,
--
Ming Lei
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/