Re: direct-io regression [Was: How to track down abysmalperformance ata - raid1 - crypto - vg/lv - xfs]

From: Chris Mason
Date: Thu Aug 05 2010 - 07:33:38 EST


On Thu, Aug 05, 2010 at 11:31:00AM +0200, Dominik Brodowski wrote:
> Hey,
>
> when attempting to track down insufficient I/O performance, I found the
> following reression relating to direct-io on my notebook, where an
> ata device, which consists of several partitions, is combined to a lvm
> volume, and one logical volume is then encrypted using dm-crypt. Test case
> was the following command:
>
> $ dd if=/dev/mapper/vg0-root_crypt of=/dev/zero iflag=direct bs=8k count=131072
>
> 2.6.34 results in ~16 MB/s,
> 2.6.35 results in ~ 3.1 MB/s
>
> The regression was bisected down to the follwoing commit:
>
> commit c2c6ca417e2db7a519e6e92c82f4a933d940d076
> Author: Josef Bacik <josef@xxxxxxxxxx>
> Date: Sun May 23 11:00:55 2010 -0400
>
> direct-io: do not merge logically non-contiguous requests
>
> ...
>
> How to fix this? I do not use btrfs, but ext3 (and the access was down on
> the block level, not on the fs level, so this btrs-related commit should not
> cause such a regression).

Well, you've already bisected down to an offending if statement, that's
a huge help. I'll try to reproduce this and fix it up today.

But, I'm surprised your drive is doing 8K dio reads at 16MB/s, that
seems a little high.

-chris

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