Re: [PATCH] block: eliminate ELEVATOR_INSERT_REQUEUE
From: Jens Axboe
Date: Wed Mar 30 2011 - 03:59:14 EST
On 2011-03-30 09:57, Tejun Heo wrote:
> On Wed, Mar 30, 2011 at 09:41:23AM +0200, Tejun Heo wrote:
>> IIRC, at least in the requeue path, some drivers depend on front
>> queueing for forward progress guarantee. Forward progress for
>> prepping is guaranteed by mempool (or something like that) and when
>> the request is retried, it should stay at the front of the queue;
>> otherwise, prepping can stall with prepped requests stuck behind
>> unprepped ones.
>
> After writing the above, I think the current flush implementation
> actually is violating the above. I think the problem is over-use of
> front insertion. Flush can just append to the dispatch queue. Front
> insertion should only be used by requeueing, really.
Pure front insert should be used for requeue and internal commands (like
spin up this drive, or get error information). Flush should append to
the dispatch list.
--
Jens Axboe
--
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/