Re: [patch] iosched: prevent aliased requests from starving otherI/O

From: Jens Axboe
Date: Thu Jun 02 2011 - 07:09:29 EST


On 2011-06-02 13:07, Jens Axboe wrote:
> On 2011-06-01 18:21, Jeff Moyer wrote:
>> Hi, Jens,
>>
>> If you recall, I posted an RFC patch for this back in July of last year:
>> http://lkml.org/lkml/2010/7/13/279
>>
>> The basic problem is that a process can issue a never-ending stream of
>> async direct I/Os to the same sector on a device, thus starving out
>> other I/O in the system (due to the way the alias handling works in both
>> cfq and deadline). The solution I proposed back then was to start
>> dispatching from the fifo after a certain number of aliases had been
>> dispatched. Vivek asked why we had to treat aliases differently at all,
>> and I never had a good answer. So, I put together a simple patch which
>> allows aliases to be added to the rb tree (it adds them to the right,
>> though that doesn't matter as the order isn't guaranteed anyway). I
>> think this is the preferred solution, as it doesn't break up time slices
>> in CFQ or batches in deadline. I've tested it, and it does solve the
>> starvation issue. Let me know what you think.
>
> That'll work, there's no inherent reason why we can't have aliases
> directly in the rbtree as long as the sort insert factors that into
> account.
>
> I will queue this one up for 3.1.

Jeff, care to resend a "proper" patch (signed-off and so forth)?

--
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/