linux-stable-rt/fs
Mingming Cao 21fe3471c3 [PATCH] ext3: reduce allocate-with-reservation lock latencies
Currently in ext3 block reservation code, the global filesystem reservation
tree lock (rsv_block) is hold during the process of searching for a space
to make a new reservation window, including while scaning the block bitmap
to verify if the avalible window has a free block.  Holding the lock during
bitmap scan is unnecessary and could possibly cause scalability issue and
latency issues.

This patch tries to address this by dropping the lock before scan the
bitmap.  Before that we need to reserve the open window in case someone
else is targetting at the same window.  Question was should we reserve the
whole free reservable space or just the window size we need.  Reserve the
whole free reservable space will possibly force other threads which
intended to do block allocation nearby move to another block group(cause
bad layout).  In this patch, we just reserve the desired size before drop
the lock and scan the block bitmap.  This patch fixed a ext3 reservation
latency issue seen on a cvs check out test.  Patch is tested with many fsx,
tiobench, dbench and untar a kernel test.

Signed-Off-By: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-28 21:20:35 -07:00
..
adfs
affs
afs [PATCH] Cleanup patch for process freezing 2005-06-25 17:10:13 -07:00
autofs
autofs4
befs
bfs
cifs
coda
cramfs
debugfs
devfs
devpts
efs
exportfs
ext2
ext3 [PATCH] ext3: reduce allocate-with-reservation lock latencies 2005-06-28 21:20:35 -07:00
fat
freevxfs
hfs
hfsplus
hostfs
hpfs
hppfs
hugetlbfs
isofs
jbd [PATCH] Cleanup patch for process freezing 2005-06-25 17:10:13 -07:00
jffs
jffs2 [PATCH] jffs2 build fix 2005-06-26 08:43:19 -07:00
jfs [PATCH] Cleanup patch for process freezing 2005-06-25 17:10:13 -07:00
lockd [PATCH] Cleanup patch for process freezing 2005-06-25 17:10:13 -07:00
minix
msdos
ncpfs
nfs [PATCH] really remove xattr_acl.h 2005-06-28 21:20:31 -07:00
nfs_common
nfsd [PATCH] really remove xattr_acl.h 2005-06-28 21:20:31 -07:00
nls
ntfs
openpromfs
partitions
proc
qnx4
ramfs
reiserfs [PATCH] Update cfq io scheduler to time sliced design 2005-06-27 14:33:29 -07:00
romfs
smbfs
sysfs
sysv
udf [PATCH] coverity: fs/udf/namei.c null check 2005-06-28 21:20:33 -07:00
ufs
umsdos
vfat
xfs [PATCH] Cleanup patch for process freezing 2005-06-25 17:10:13 -07:00
Kconfig
Kconfig.binfmt
Makefile [PATCH] Update cfq io scheduler to time sliced design 2005-06-27 14:33:29 -07:00
aio.c [PATCH] aio-retry-fix: fix aio retry work queueing 2005-06-28 21:20:32 -07:00
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf.c
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio.c
block_dev.c
buffer.c [PATCH] rename wakeup_bdflush to wakeup_pdflush 2005-06-28 21:20:31 -07:00
char_dev.c [PATCH] fix semaphore handling in __unregister_chrdev_region 2005-06-28 21:20:29 -07:00
compat.c
compat_ioctl.c
dcache.c
dcookies.c
direct-io.c
dnotify.c
dquot.c [PATCH] list_for_each_entry: fs-dquot.c 2005-06-25 16:25:11 -07:00
eventpoll.c
exec.c
fcntl.c
fifo.c
file.c
file_table.c
filesystems.c
fs-writeback.c
inode.c
ioctl.c
ioprio.c [PATCH] Update cfq io scheduler to time sliced design 2005-06-27 14:33:29 -07:00
libfs.c
locks.c
mbcache.c
mpage.c
namei.c
namespace.c
nfsctl.c
open.c
pipe.c
posix_acl.c
quota.c
quota_v1.c
quota_v2.c
read_write.c
readdir.c
select.c
seq_file.c
stat.c
super.c
xattr.c
xattr_acl.c