Re: [PATCH 3/6] direct-io: do not merge logically non-contiguous requests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 21, 2010 at 11:21:11AM -0400, Christoph Hellwig wrote:
> On Wed, May 19, 2010 at 04:24:51PM -0400, Josef Bacik wrote:
> > Btrfs cannot handle having logically non-contiguous requests submitted.  For
> > example if you have
> > 
> > Logical:  [0-4095][HOLE][8192-12287]
> > Physical: [0-4095]      [4096-8191]
> > 
> > Normally the DIO code would put these into the same BIO's.  The problem is we
> > need to know exactly what offset is associated with what BIO so we can do our
> > checksumming and unlocking properly, so putting them in the same BIO doesn't
> > work.  So add another check where we submit the current BIO if the physical
> > blocks are not contigous OR the logical blocks are not contiguous.
> 
> This gets us slightly less optimal I/O patters for other filesystems in
> this case.  But it's probably corner case enough to not care and make it
> the default.
> 
> But please make the comment in the comment as verbose as the commit
> message so that people understand why we're doing this when reading the
> code in a few years.
> 

So after I sent this I thought that maybe I could make that test _only_ if we
provide submit_bio, that way it only affects btrfs and not everybody else, would
you prefer I do something like that?  I will make the commit log a bit more
verbose.  Thanks,

Josef
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux