linux/fs/btrfs
Miao Xie 19fe0a8b78 Btrfs: Switch the extent buffer rbtree into a radix tree
This patch reduces the CPU time spent in the extent buffer search by using the
radix tree instead of the rbtree and using the rcu lock instead of the spin
lock.

I did a quick test by the benchmark tool[1] and found the patch improve the
file creation/deletion performance problem that I have reported[2].

Before applying this patch:
Create files:
	Total files: 50000
	Total time: 0.971531
	Average time: 0.000019
Delete files:
	Total files: 50000
	Total time: 1.366761
	Average time: 0.000027

After applying this patch:
Create files:
	Total files: 50000
	Total time: 0.927455
	Average time: 0.000019
Delete files:
	Total files: 50000
	Total time: 1.292280
	Average time: 0.000026

[1] http://marc.info/?l=linux-btrfs&m=128212635122920&q=p3
[2] http://marc.info/?l=linux-btrfs&m=128212635122920&w=2

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2010-10-29 11:25:45 -04:00
..
acl.c
async-thread.c
async-thread.h
btrfs_inode.h
compat.h
compression.c
compression.h
ctree.c Btrfs: don't loop forever on bad btree blocks 2010-10-29 09:31:30 -04:00
ctree.h Merge branch 'bug-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-work 2010-10-29 09:27:49 -04:00
delayed-ref.c
delayed-ref.h
dir-item.c
disk-io.c Btrfs: write out free space cache 2010-10-29 09:26:29 -04:00
disk-io.h
export.c
export.h
extent_io.c Btrfs: Switch the extent buffer rbtree into a radix tree 2010-10-29 11:25:45 -04:00
extent_io.h Btrfs: Switch the extent buffer rbtree into a radix tree 2010-10-29 11:25:45 -04:00
extent_map.c
extent_map.h
extent-tree.c Btrfs: use the flusher threads for delalloc throttling 2010-10-29 11:25:36 -04:00
file-item.c
file.c
free-space-cache.c Btrfs: Add a clear_cache mount option 2010-10-29 09:26:36 -04:00
free-space-cache.h Btrfs: load free space cache if it exists 2010-10-29 09:26:35 -04:00
hash.h
inode-item.c
inode-map.c
inode.c Merge branch 'bug-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-work 2010-10-29 09:27:49 -04:00
ioctl.c Btrfs: fix the df ioctl to report raid types 2010-10-22 15:54:53 -04:00
ioctl.h
Kconfig
locking.c
locking.h
Makefile
ordered-data.c
ordered-data.h
orphan.c
print-tree.c
print-tree.h
ref-cache.c
ref-cache.h
relocation.c Merge branch 'bug-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-work 2010-10-29 09:27:49 -04:00
root-tree.c
struct-funcs.c
super.c Merge branch 'bug-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-work 2010-10-29 09:27:49 -04:00
sysfs.c
transaction.c Merge branch 'bug-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-work 2010-10-29 09:27:49 -04:00
transaction.h Btrfs: create special free space cache inode 2010-10-28 15:59:09 -04:00
tree-defrag.c
tree-log.c
tree-log.h
version.h
version.sh
volumes.c block: unify flags for struct bio and struct request 2010-08-07 18:20:39 +02:00
volumes.h
xattr.c
xattr.h
zlib.c