Re: [PATCH] dio: Fast-path for page-aligned IOs

From: Jeff Moyer
Date: Wed Jul 27 2011 - 18:16:35 EST


Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> writes:

> On Wed, 27 Jul 2011 17:08:28 -0400
> Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
>
>> On Mon, Jun 20, 2011 at 04:17:35PM -0700, Dan Ehrenberg wrote:
>> > The fast path does not apply for operations of the wrong size
>> > or alignmnent, or for operations on raw drives with 512-byte sectors.
>> > It might be possible to make this special case a little more general
>> > while maintaining its performance benefits, but I do not believe that
>> > the full performance benefits can be achieved without resorting to
>> > special handling of simple cases, as is done in this patch.
>>
>> Did you check how this compares to Andis small optimizations?
>>
>> Also operations on raw disks are something people with fast devices
>> care about a lot. We often hear about benchmark regressions due to
>> stupid little things in the direct I/O code.
>>
>> If we want to special case something that would be a very easy target,
>> with a 1:1 mapping of logical to physical blocks and thus no need
>> to call the allocator first, and no need for any kind of locking
>> or alignment handling.
>
> Ken did this back in 2006
> (http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e61c90188b9956edae1105eef361d8981a352fcd)
> but we reverted that shortly afterwards for some reason.

For this reason:

commit b2e895dbd80c420bfc0937c3729b4afe073b3848
Author: Andrew Morton <akpm@xxxxxxxx>
Date: Sat Feb 3 01:14:01 2007 -0800

[PATCH] revert blockdev direct io back to 2.6.19 version

Andrew Vasquez is reporting as-iosched oopses and a 65% throughput
slowdown due to the recent special-casing of direct-io against
blockdevs. We don't know why either of these things are occurring.

The patch minimally reverts us back to the 2.6.19 code for a 2.6.20
release.
--
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/