From: Allison Henderson <achender@linux.vnet.ibm.com>
To: xfs-oss <xfs@oss.sgi.com>,
Ext4 Developers List <linux-ext4@vger.kernel.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>
Subject: xfstests 252 failure
Date: Tue, 14 Jun 2011 08:41:27 -0700 [thread overview]
Message-ID: <4DF78127.40505@linux.vnet.ibm.com> (raw)
Hi all,
I just wanted to get some ideas moving on this question before too much
time goes by. Ext4 is currently failing xfstest 252, test number 12.
Currently test 12 is:
$XFS_IO_PROG $xfs_io_opt -f -c "truncate 20k" \
-c "$alloc_cmd 0 20k" \
-c "pwrite 8k 4k" -c "fsync" \
-c "$zero_cmd 4k 12k" \
-c "$map_cmd -v" $testfile | $filter_cmd
[ $? -ne 0 ]&& die_now
and the output is:
12. unwritten -> data -> unwritten
0: [0..7]: unwritten
1: [8..31]: hole
2: [32..39]: unwritten
Ext4 gets data extents here instead of unwritten extents. I did some
investigating and it looks like the fsync command causes the extents to
be written out before the punch hole operation starts. It looks like
what happens is that when an unwritten extent gets written to, it doesnt
always split the extent. If the extent is small enough, then it just
zeros out the portions that are not written to, and the whole extent
becomes a written extent. Im not sure if that is incorrect or if we
need to change the test to not compare the extent types.
It looks to me that the code in ext4 that does this is supposed to be an
optimization to help reduce fragmentation. We could change the filters
to print just "extent" instead of "unwritten" or "data", but I realize
that probably makes the test a lot less effective for xfs. If anyone
can think of some more elegant fixes, please let me know. Thx!
Allison Henderson
next reply other threads:[~2011-06-14 15:41 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-14 15:41 Allison Henderson [this message]
2011-06-14 16:06 ` xfstests 252 failure Eric Sandeen
2011-06-14 18:41 ` Josef Bacik
2011-06-14 19:37 ` Allison Henderson
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=4DF78127.40505@linux.vnet.ibm.com \
--to=achender@linux.vnet.ibm.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--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).