From: Dave Chinner <david@fromorbit.com>
To: Eric Sandeen <sandeen@redhat.com>
Cc: ext4 development <linux-ext4@vger.kernel.org>, xfs-oss <xfs@oss.sgi.com>
Subject: Re: [PATCH] xfstests 240: test non-aligned AIO hole-filling
Date: Fri, 23 Jul 2010 20:12:22 +1000 [thread overview]
Message-ID: <20100723101222.GH32635@dastard> (raw)
In-Reply-To: <20100723024938.GD32635@dastard>
On Fri, Jul 23, 2010 at 12:49:38PM +1000, Dave Chinner wrote:
> On Thu, Jul 22, 2010 at 02:05:26PM -0500, Eric Sandeen wrote:
> > This replicates file corruption we've seen with qemu-kvm when
> > we use if=virtio,cache=none,aio=native for IO to a sparse
> > ext4- or xfs-hosted file, and the partitions/filesystems
> > within that file image are not block-aligned. (think sector
> > 63 here...) This results in AIO IOs not aligned to the
> > filesystem blocks.
> >
> > This test modifies aiodio_sparse2.c to add an option to start
> > the file IO at an offset.
> >
> > When we do 4k writes to a 16k file in 2 threads, starting
> > at offset 512, we get 0s interspersed in the file where they
> > should not be:
> >
> > 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
> > *
> > 00000200 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................|
> > *
> > 00001000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
> > *
> > 00001200 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................|
> > ....
> >
> > Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
>
> looks good - it needs to remove the $TEST_DIR/aiodio_sparse file
> before the test starts, though, so that repeated tests fail
> correctly. Otherwise:
>
> Reviewed-by: Dave Chinner <dchinner@redhat.com>
>
> Also, Eric, can you run this proof-of-concept test branch (on top of
> the current XFS for-2.6.36 branch) and see if QEMU is happy with it?
> It passes this test on my machine....
>
> The following changes since commit d2ec2c790b3994bf0c4381cacc489b514705887c:
>
> xfs: clean up xfs_bmap_get_bp (2010-07-22 12:52:08 +1000)
>
> are available in the git repository at:
> git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev aio-unaligned
I just pushed another patch onto this series that will makes test
240 pass reliably here rather than hanging. It's all a bit messy,
but it does serve to illustrate the problem and a potential avenue
to prevent it....
Dave Chinner (5):
Merge branch 'master' into working
Merge branch 'for-2.6.36' into working
fs: get_blocks needs an unaligned mapping flag
xfs: serialise unaligned direct IO into unwritten extents
xfs: wait on IO completion inside an IO context
fs/buffer.c | 17 ++++----
fs/direct-io.c | 25 ++++++++++-
fs/ioctl.c | 2 +-
fs/mpage.c | 6 ++-
fs/xfs/linux-2.6/xfs_aops.c | 95 ++++++++++++++++++++++++++++++++++++++-----
fs/xfs/xfs_inode.h | 13 +++---
include/linux/fs.h | 10 ++++-
7 files changed, 136 insertions(+), 32 deletions(-)
--
Dave Chinner
david@fromorbit.com
prev parent reply other threads:[~2010-07-23 10:12 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-22 19:05 [PATCH] xfstests 240: test non-aligned AIO hole-filling Eric Sandeen
2010-07-23 2:49 ` Dave Chinner
2010-07-23 3:32 ` Eric Sandeen
2010-07-23 3:37 ` Eric Sandeen
2010-07-23 3:58 ` Dave Chinner
2010-07-23 10:12 ` Dave Chinner [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100723101222.GH32635@dastard \
--to=david@fromorbit.com \
--cc=linux-ext4@vger.kernel.org \
--cc=sandeen@redhat.com \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).