* Integration branch pushed out to btrfs-unstable
@ 2011-05-23 19:54 Chris Mason
2011-05-24 9:01 ` Arne Jansen
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Chris Mason @ 2011-05-23 19:54 UTC (permalink / raw)
To: linux-btrfs; +Cc: Li Zefan, Miao Xie, Arne Jansen
Hi everyone,
I've pushed out my current kernel git tree to a new branch called
integration-test. This is meant for integration testing only and should
not be run by anyone who doesn't love crashes.
I've pulled together a lot of important work from a lot of different
people. It includes:
The new inode number allocator
Delayed inode and directory item updates
Scrub, chunk allocator fixes
Races in device addition and removal
Josef's performance fixes
A large series of cleanups and fixes
Most of the integration work was just pushing the cleanups into the new
code bits. I still want to integrate Hugo Mills' balance progress
ioctls (really nice). But it was a lot of work to get this all working
together and I wanted to let everyone retest the result.
Miao, I didn't include your patch to delay inode item insertion because
I was worried about interactions with the caching thread of the new
inode number allocator. I did have to make a small change to make sure
the inode-map cache didn't go through the delayed item routines.
Li, one thing I haven't done yet is a lot of benchmarking on the
performance hit from waiting for the cache to fill on large existing
filesystems. Was there any particular reason you didn't setup the
caching to pre-cache the from root->highest_objectid to
BTRFS_LAST_FREE_OBJECTID?
diffstat for my current tree:
-chris
]# git diff --stat v2.6.39...HEAD
fs/btrfs/Makefile | 2 +-
fs/btrfs/acl.c | 2 +-
fs/btrfs/btrfs_inode.h | 14 +
fs/btrfs/compression.c | 47 +-
fs/btrfs/compression.h | 2 +-
fs/btrfs/ctree.c | 51 +-
fs/btrfs/ctree.h | 199 ++---
fs/btrfs/delayed-inode.c | 1695 ++++++++++++++++++++++++++++++++++++
fs/btrfs/delayed-inode.h | 141 +++
fs/btrfs/delayed-ref.c | 114 ---
fs/btrfs/delayed-ref.h | 6 -
fs/btrfs/dir-item.c | 39 +-
fs/btrfs/disk-io.c | 202 +++---
fs/btrfs/disk-io.h | 19 +-
fs/btrfs/export.c | 25 +-
fs/btrfs/extent-tree.c | 2014 ++++---------------------------------------
fs/btrfs/extent_io.c | 327 ++------
fs/btrfs/extent_io.h | 40 +-
fs/btrfs/extent_map.c | 8 +-
fs/btrfs/extent_map.h | 4 +-
fs/btrfs/file-item.c | 38 +-
fs/btrfs/file.c | 45 +-
fs/btrfs/free-space-cache.c | 993 +++++++++++++---------
fs/btrfs/free-space-cache.h | 48 +-
fs/btrfs/inode-item.c | 2 -
fs/btrfs/inode-map.c | 428 +++++++++-
fs/btrfs/inode-map.h | 13 +
fs/btrfs/inode.c | 688 ++++++---------
fs/btrfs/ioctl.c | 176 ++++-
fs/btrfs/ioctl.h | 76 ++
fs/btrfs/locking.c | 25 -
fs/btrfs/locking.h | 2 -
fs/btrfs/ref-cache.c | 164 ----
fs/btrfs/ref-cache.h | 24 -
fs/btrfs/relocation.c | 67 +-
fs/btrfs/root-tree.c | 61 +--
fs/btrfs/scrub.c | 1368 +++++++++++++++++++++++++++++
fs/btrfs/super.c | 44 +-
fs/btrfs/sysfs.c | 77 --
fs/btrfs/transaction.c | 196 ++---
fs/btrfs/transaction.h | 5 +-
fs/btrfs/tree-defrag.c | 2 +-
fs/btrfs/tree-log.c | 208 +++--
fs/btrfs/tree-log.h | 1 -
fs/btrfs/version.sh | 43 -
fs/btrfs/volumes.c | 657 ++++++---------
fs/btrfs/volumes.h | 27 +-
fs/btrfs/xattr.c | 12 +-
48 files changed, 5902 insertions(+), 4539 deletions(-)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Integration branch pushed out to btrfs-unstable
2011-05-23 19:54 Integration branch pushed out to btrfs-unstable Chris Mason
@ 2011-05-24 9:01 ` Arne Jansen
2011-05-24 9:50 ` Li Zefan
2011-05-25 12:35 ` Arne Jansen
2 siblings, 0 replies; 6+ messages in thread
From: Arne Jansen @ 2011-05-24 9:01 UTC (permalink / raw)
To: Chris Mason; +Cc: linux-btrfs, Li Zefan, Miao Xie
On 23.05.2011 21:54, Chris Mason wrote:
> I've pushed out my current kernel git tree to a new branch called
> integration-test. This is meant for integration testing only and should
> not be run by anyone who doesn't love crashes.
>
> Scrub, chunk allocator fixes
please note that in order to test scrub functionality you need an
updated btrfs utility. You can pull it from:
git://git.kernel.org/pub/scm/linux/kernel/git/arne/btrfs-progs-unstable-arne.git
scrub
Thanks,
Arne
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Integration branch pushed out to btrfs-unstable
2011-05-23 19:54 Integration branch pushed out to btrfs-unstable Chris Mason
2011-05-24 9:01 ` Arne Jansen
@ 2011-05-24 9:50 ` Li Zefan
2011-05-25 12:35 ` Arne Jansen
2 siblings, 0 replies; 6+ messages in thread
From: Li Zefan @ 2011-05-24 9:50 UTC (permalink / raw)
To: Chris Mason; +Cc: linux-btrfs, Miao Xie, Arne Jansen
Chris Mason wrote:
> Hi everyone,
>
> I've pushed out my current kernel git tree to a new branch called
> integration-test. This is meant for integration testing only and should
> not be run by anyone who doesn't love crashes.
>
> I've pulled together a lot of important work from a lot of different
> people. It includes:
>
> The new inode number allocator
> Delayed inode and directory item updates
> Scrub, chunk allocator fixes
> Races in device addition and removal
> Josef's performance fixes
> A large series of cleanups and fixes
>
> Most of the integration work was just pushing the cleanups into the new
> code bits. I still want to integrate Hugo Mills' balance progress
> ioctls (really nice). But it was a lot of work to get this all working
> together and I wanted to let everyone retest the result.
>
> Miao, I didn't include your patch to delay inode item insertion because
> I was worried about interactions with the caching thread of the new
> inode number allocator. I did have to make a small change to make sure
> the inode-map cache didn't go through the delayed item routines.
>
> Li, one thing I haven't done yet is a lot of benchmarking on the
> performance hit from waiting for the cache to fill on large existing
> filesystems. Was there any particular reason you didn't setup the
> caching to pre-cache the from root->highest_objectid to
> BTRFS_LAST_FREE_OBJECTID?
>
I'll cook up a patch for this kind of pre-cache.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Integration branch pushed out to btrfs-unstable
2011-05-23 19:54 Integration branch pushed out to btrfs-unstable Chris Mason
2011-05-24 9:01 ` Arne Jansen
2011-05-24 9:50 ` Li Zefan
@ 2011-05-25 12:35 ` Arne Jansen
2011-05-25 18:44 ` Sergei Trofimovich
2 siblings, 1 reply; 6+ messages in thread
From: Arne Jansen @ 2011-05-25 12:35 UTC (permalink / raw)
To: Chris Mason; +Cc: linux-btrfs, Li Zefan, Miao Xie, slyfox
On 23.05.2011 21:54, Chris Mason wrote:
> Hi everyone,
>
> I've pushed out my current kernel git tree to a new branch called
> integration-test. This is meant for integration testing only and should
> not be run by anyone who doesn't love crashes.
>
> I've pulled together a lot of important work from a lot of different
> people. It includes:
>
> The new inode number allocator
> Delayed inode and directory item updates
> Scrub, chunk allocator fixes
> Races in device addition and removal
> Josef's performance fixes
> A large series of cleanups and fixes
>
> Most of the integration work was just pushing the cleanups into the new
> code bits. I still want to integrate Hugo Mills' balance progress
> ioctls (really nice). But it was a lot of work to get this all working
> together and I wanted to let everyone retest the result.
>
The commit
commit c4f675cd40d955d539180506c09515c90169b15b
Author: Sergei Trofimovich <slyfox@gentoo.org>
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).
-Arne
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Integration branch pushed out to btrfs-unstable
2011-05-25 12:35 ` Arne Jansen
@ 2011-05-25 18:44 ` Sergei Trofimovich
2011-05-25 20:41 ` Sergei Trofimovich
0 siblings, 1 reply; 6+ messages in thread
From: Sergei Trofimovich @ 2011-05-25 18:44 UTC (permalink / raw)
To: Arne Jansen; +Cc: Chris Mason, linux-btrfs, Li Zefan, Miao Xie
[-- Attachment #1: Type: text/plain, Size: 513 bytes --]
> The commit
>
> commit c4f675cd40d955d539180506c09515c90169b15b
> Author: Sergei Trofimovich <slyfox@gentoo.org>
> 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?
--
Sergei
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Integration branch pushed out to btrfs-unstable
2011-05-25 18:44 ` Sergei Trofimovich
@ 2011-05-25 20:41 ` Sergei Trofimovich
0 siblings, 0 replies; 6+ messages in thread
From: Sergei Trofimovich @ 2011-05-25 20:41 UTC (permalink / raw)
To: Arne Jansen; +Cc: Chris Mason, linux-btrfs, Li Zefan, Miao Xie
[-- Attachment #1: Type: text/plain, Size: 2593 bytes --]
> > The commit
> >
> > commit c4f675cd40d955d539180506c09515c90169b15b
> > Author: Sergei Trofimovich <slyfox@gentoo.org>
> > 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 #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-05-25 20:41 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-23 19:54 Integration branch pushed out to btrfs-unstable Chris Mason
2011-05-24 9:01 ` Arne Jansen
2011-05-24 9:50 ` Li Zefan
2011-05-25 12:35 ` Arne Jansen
2011-05-25 18:44 ` Sergei Trofimovich
2011-05-25 20:41 ` Sergei Trofimovich
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.