> > The commit
> >
> > commit c4f675cd40d955d539180506c09515c90169b15b
> > Author: Sergei Trofimovich <slyfox@xxxxxxxxxx>
> > Date: Fri May 20 20:20:30 2011 +0000
> >
> > btrfs: don't spin in shrink_delalloc if there is nothing to free
> >
> > gives me very early ENOSPC in my tests on a small volume (7GB).
>
> What king of test is that? I'd like to reproduce it.
> Does it do a lot of parallel I/O?
>
> May I ask you to try to reproduce the problem with this sole patch
> on top of linus master?
With Arne's params to fs_mark it triggers for 2.6.39+this patch.
I took 2GB loop device and the script [1].
$ ./make_it.sh
...
# /home/slyfox/dev/fs_mark/fs_mark -D 512 -t 16 -n 4096 -s 51200 -L7 -S0 -d /mnt/ut
# Version 3.3, 16 thread(s) starting at Wed May 25 23:35:06 2011
# Sync method: NO SYNC: Test does not issue sync() or fsync() calls.
# Directories: Time based hash between directories across 512 subdirectories with 180 seconds per subdirectory.
# File names: 40 bytes long, (16 initial bytes of time stamp with 24 random bytes at end of name)
# Files info: size 51200 bytes, written with an IO size of 16384 bytes per write
# App overhead is time in microseconds spent in the test not doing file writing related system calls.
FSUse% Count Size Files/sec App Overhead
fs_mark: write_file write failed: -1 No space left on device
fs_mark: write_file write failed: -1 No space left on device
fs_mark: write_file write failed: -1 No space left on device
...^C
$ .../btrfs fi df /mnt/ut/
Data: total=622.25MB, used=434.61MB
System: total=4.00MB, used=4.00KB
Metadata: total=417.50MB, used=6.69MB
$ sudo .../btrfs fi show /dev/loop0
Label: none uuid: ccb18c12-4cbe-458c-835a-30e767939121
Total devices 1 FS bytes used 441.31MB
devid 1 size 2.00GB used 1.02GB path /dev/loop0
[1] 'make_it.sh' script exposing bug:
export LANG=C
FS_MARK=$HOME/dev/fs_mark/fs_mark
MKFS_BTRFS=$HOME/dev/git/btrfs-progs-unstable/mkfs.btrfs
sz=2
the_file=${sz}G.img
mount_point=/mnt/ut
dd if=/dev/zero of="${the_file}" bs=1 count=1 seek=$((${sz}*1024*1024*1024-1))
$MKFS_BTRFS -d raid0 -m raid0 "${the_file}"
sudo mount -oloop "${the_file}" "${mount_point}"
sudo chown slyfox:users "${mount_point}"
chmod u+w "${mount_point}"
cd /tmp
$FS_MARK \
-D 512 -t 16 -n 4096 -s 51200 -L7 -S0 \
-d "${mount_point}"
sudo umount "${mount_point}"
--
Sergei
Attachment:
signature.asc
Description: PGP signature
