mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Jesper Juhl" <jesper.juhl@gmail.com>
To: "David Chinner" <dgc@sgi.com>
Cc: "Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	xfs@oss.sgi.com
Subject: Re: Wrong free space reported for XFS filesystem
Date: Thu, 7 Sep 2006 16:17:53 +0200	[thread overview]
Message-ID: <9a8748490609070717q6ed9111ckdc3de025dc44938b@mail.gmail.com> (raw)
In-Reply-To: <20060906230238.GJ5737019@melbourne.sgi.com>

On 07/09/06, David Chinner <dgc@sgi.com> wrote:
> On Wed, Sep 06, 2006 at 10:54:34AM +0200, Jesper Juhl wrote:
> > For your information;
> >
> > I've been running a bunch of benchmarks on a 250GB XFS filesystem.
> > After the benchmarks had run for a few hours and almost filled up the
> > fs, I removed all the files and did a "df -h" with interresting
> > results :
> >
> > /dev/mapper/Data1-test
> >                     250G  -64Z  251G 101% /mnt/test
> >
> > "df -k"  reported this :
> >
> > /dev/mapper/Data1-test
> >                     262144000 -73786976294838202960 262147504 101% /mnt/test
> ....
> > The filesystem is mounted like this :
> >
> > /dev/mapper/Data1-test on /mnt/test type xfs
> > (rw,noatime,ihashsize=64433,logdev=/dev/Log1/test_log,usrquota)
>
> So the in-core accounting has underflowed by a small amount but the
> on disk accounting is correct.
>
> We've had a few reports of this that I know of over the past couple of years,
> but we've never managed to find a reproducable test case for it.
>
> Can you describe what benchmark you were runnin, wht kernel you were
> using

The kernel is 2.6.18-rc6 SMP

> and whether any of the tests hit  an ENOSPC condition?
>
That I don't know.

The script I was running is this one :

###-----[ cut here ]-----
#!/bin/bash

DIR=/mnt/test
DIR1=random
DIR2=bigfiles
DIR3=smallfiles
BONNIEDIR=bonnie
RACERDIR=racer
WRIGGLERDIR=wriggler
IOZONEDIR=iozone

cd $DIR
rm -rf -- *

mkdir $DIR1
cd $DIR1
while true; do
        cd $DIR/$DIR1
        for i in `seq 1 100`; do
                touch -- "`head --bytes 15 /dev/urandom`";
        done >/dev/null 2>&1
        find . | while read i; do mv -f -- "$i" "`head --bytes 16
/dev/urandom`"; done >/dev/null 2>&1
        rm -f -- *
        sleep 1
done >/dev/null 2>&1 &

while true; do
        cd $DIR/$DIR1
        for i in `seq 1 100`; do
                touch -- "`head --bytes 25 /dev/urandom`";
        done >/dev/null 2>&1
        find . | while read i; do mv -f -- "$i" "`head --bytes 30
/dev/urandom`"; done >/dev/null 2>&1
        rm -f -- *
        sleep 2
done >/dev/null 2>&1 &

cd $DIR
mkdir $DIR/$BONNIEDIR
mkdir $DIR/$RACERDIR
mkdir $DIR/$WRIGGLERDIR
mkdir $DIR/$IOZONEDIR
mkdir $DIR/$DIR2
mkdir $DIR/$DIR3

while true; do
(cd /usr/local/racer ; sh ./racer-lustre.sh  >/dev/null 2>&1); done
>/dev/null 2>&1 &

while true; do
        (cd $DIR/$IOZONEDIR ; /usr/local/iozone/iozone -a >/dev/null 2>&1);
done >/dev/null 2>&1 &

while true; do
        (chown nobody $DIR/$BONNIEDIR ; cd $DIR/$BONNIEDIR ;
/usr/local/bonnie++/sbin/bonnie++ -u nobody >/dev/null 2>&1);
done >/dev/null 2>&1 &

while true; do
        (cd $DIR/$WRIGGLERDIR ; /usr/local/diskWriggler/diskWriggler
-n 500 -2K -o $DIR/$WRIGGLERDIR  >/dev/null 2>&1);
done >/dev/null 2>&1 &

while true; do
        (cd $DIR/$DIR2 ; dd if=/dev/zero of=$DIR/$DIR2/biggie bs=10M
count=15000  >/dev/null 2>&1; sync ; rm -f $DIR/$DIR2/biggie );
done >/dev/null 2>&1 &

while true; do
        (cd $DIR/$DIR3 ; export SIZE=$(($RANDOM*200000/32767)) ; dd
if=/dev/urandom of=$DIR/$DIR3/$SIZE bs=2048 count=$SIZE  >/dev/null
2>&1; rm -f -- $DIR/$D
IR3/* );
done >/dev/null 2>&1 &

while true; do
        for i in `seq 60 300`; do sleep $i; sync; done ;
done >/dev/null 2>&1 &

while true; do
        for i in `seq 7 21`; do sleep $i; find $DIR; done ;
done >/dev/null 2>&1 &

while true; do date ; echo "tests running"; sleep 300; done

###-----[ cut here ]-----


/usr/local/racer/ holds this test script :
ftp://ftp.lustre.org/pub/benchmarks/racer-lustre.tar.gz
The script is modified to use /mnt/test/racer for its tests.

/usr/local/iozone/ holds iozone version 3.263

/usr/local/bonnie++/ holds bonnie++ version 1.03

/usr/local/diskWriggler/ holds diskWriggler version 1.0.1


> Also, in future can you cc xfs@oss.sgi.com on XFS bug reports?
>
I keep forgetting, sorry. I'll try harder to remember :)


-- 
Jesper Juhl <jesper.juhl@gmail.com>
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please      http://www.expita.com/nomime.html

  reply	other threads:[~2006-09-07 14:17 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-06  8:54 Jesper Juhl
2006-09-06  9:59 ` Richard Mittendorfer
2006-09-06 23:02 ` David Chinner
2006-09-07 14:17   ` Jesper Juhl [this message]
2006-09-08  2:33     ` David Chinner

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=9a8748490609070717q6ed9111ckdc3de025dc44938b@mail.gmail.com \
    --to=jesper.juhl@gmail.com \
    --cc=dgc@sgi.com \
    --cc=linux-kernel@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

all inboxes | Powered by JetHome®