From: bugzilla-daemon@bugzilla.kernel.org
To: linux-ext4@vger.kernel.org
Subject: [Bug 15579] ext4 -o discard produces incorrect blocks of zeroes in newly created files under heavy read+truncate+append-new-file load
Date: Mon, 29 Mar 2010 08:37:09 GMT [thread overview]
Message-ID: <201003290837.o2T8b9px016191@demeter.kernel.org> (raw)
In-Reply-To: <bug-15579-13602@https.bugzilla.kernel.org/>
https://bugzilla.kernel.org/show_bug.cgi?id=15579
--- Comment #9 from Andreas Beckmann <kernel-bugs@abeckmann.de> 2010-03-29 08:36:38 ---
(In reply to comment #4)
> Just for what it's worth, I've had trouble reproducing this on another brand of
> SSD... something like this (don't let the xfs_io throw you; it's just a
> convenient way to generate the IO). I did this on a 512M filesystem.
With some small modifications I can reproduce this every time: I do two
iterations of truncating + writing the output. Seems to happen in the second
write only.
You can skip the reading, not neccessary.
N=236 ist the smallest N where the problem occurs, N=253 the maximum number of
files fitting on the file system.
./find-zeroes is my tool to check for "0x00 holes"
mkfs options: -m 0 -T largefile4
#!/bin/bash
SCRATCH_MNT=/mnt/scratch
N=253
#rm -f $SCRATCH_MNT/*
#touch $SCRATCH_MNT/outputfile
#xfs_io -F -c "pwrite 0 ${N}m" $SCRATCH_MNT/outputfile &>/dev/null
#xfs_io -F -c "pwrite ${N}M ${N}m" $SCRATCH_MNT/outputfile &>/dev/null
#./find-zeroes $SCRATCH_MNT/outputfile
rm -f $SCRATCH_MNT/*
touch $SCRATCH_MNT/outputfile
# Create several large-ish files
for I in `seq 1 $N`; do
xfs_io -F -f -c "pwrite 0 2m" $SCRATCH_MNT/file$I &>/dev/null
done
# reread the last bit of each, just for kicks, and truncate off 1m
for I in `seq 1 $N`; do
xfs_io -F -c "pread 1m 1m" $SCRATCH_MNT/file$I &>/dev/null
xfs_io -F -c "truncate 1m" $SCRATCH_MNT/file$I
done
# Append the outputfile
xfs_io -F -c "pwrite 0 ${N}m" $SCRATCH_MNT/outputfile &>/dev/null
# reread the last bit of each, just for kicks, and truncate off 1m
for I in `seq 1 $N`; do
xfs_io -F -c "pread 0m 1m" $SCRATCH_MNT/file$I &>/dev/null
xfs_io -F -c "truncate 0m" $SCRATCH_MNT/file$I
done
# Append the outputfile
xfs_io -F -c "pwrite ${N}M ${N}m" $SCRATCH_MNT/outputfile &>/dev/null
./find-zeroes $SCRATCH_MNT/outputfile
$ ./trash-ext4-discard
at 246800384 length 18489344
size 511950848 zeroes 18489344
$ ./trash-ext4-discard
at 246808576 length 18481152
size 511950848 zeroes 18481152
$ ./trash-ext4-discard
at 246857728 length 18432000
size 511848448 zeroes 18432000
$ ./trash-ext4-discard
at 246640640 length 18649088
size 512086016 zeroes 18649088
$ ./trash-ext4-discard
at 246800384 length 18489344
size 511959040 zeroes 18489344
actually this is enough:
# Create several large-ish files
for I in `seq 1 $N`; do
xfs_io -F -f -c "pwrite 0 1m" $SCRATCH_MNT/file$I &>/dev/null
done
# Append the outputfile
xfs_io -F -c "pwrite 0 ${N}m" $SCRATCH_MNT/outputfile &>/dev/null
# truncate all
for I in `seq 1 $N`; do
xfs_io -F -c "truncate 0m" $SCRATCH_MNT/file$I
done
# Append the outputfile
xfs_io -F -c "pwrite ${N}M ${N}m" $SCRATCH_MNT/outputfile &>/dev/null
$ ./trash-ext4-discard2
at 228061184 length 37228544
size 530579456 zeroes 37228544
--
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
next prev parent reply other threads:[~2010-03-29 8:37 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <bug-15579-13602@https.bugzilla.kernel.org/>
2010-03-21 9:46 ` [Bug 15579] ext4 -o discard produces incorrect blocks of zeroes in newly created files under heavy read+truncate+append-new-file load bugzilla-daemon
2010-03-22 21:41 ` bugzilla-daemon
2010-03-23 11:10 ` bugzilla-daemon
2010-03-23 14:29 ` bugzilla-daemon
2010-03-23 21:01 ` bugzilla-daemon
2010-03-29 8:17 ` bugzilla-daemon
2010-03-29 8:37 ` bugzilla-daemon [this message]
2010-03-29 8:43 ` bugzilla-daemon
2010-03-29 14:55 ` bugzilla-daemon
2010-05-19 10:50 ` bugzilla-daemon
2010-05-19 15:58 ` bugzilla-daemon
2010-03-19 10:51 [Bug 15579] New: " bugzilla-daemon
2010-03-19 12:41 ` [Bug 15579] " bugzilla-daemon
2010-03-19 18:13 ` bugzilla-daemon
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=201003290837.o2T8b9px016191@demeter.kernel.org \
--to=bugzilla-daemon@bugzilla.kernel.org \
--cc=linux-ext4@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.