DragonFly-2.1.1.182.g82010 master sys/vfs/hammer hammer.h hammer_btree.c hammer_cursor.c hammer_flusher.c hammer_inode.c hammer_ondisk.c hammer_transaction.c hammer_vfsops.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Sun Dec 28 15:37:20 PST 2008
commit 82010f9f8ef29e52bfa8e036450ccc75203803b6
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sun Dec 28 15:29:48 2008 -0800
HAMMER performance and kernel memory issues.
* The flusher could stall-out due to deadlocks under certain heavy load
situations (blogbench -i1000 -o), causing the number of hammer inodes
to increase slowly until the kernel runs out of memory.
Fix this by detecting the condition and stalling the threads
causing the deadlocks instead for a short while. Any user thread
which blocked performing B-Tree node I/O is a candidate.
* Improve the stability of the inode reclaim heuristic which slows
down the creation of new inodes when too many disconnected hammer
inodes are present.
* Remove vfs.hammer.limit_iqueued - this sysctl is no longer used.
Reported-by: YONETANI Tomokazu <qhwt+dfly at les.ath.cx>
Summary of changes:
sys/vfs/hammer/hammer.h | 17 ++++--
sys/vfs/hammer/hammer_btree.c | 12 ++--
sys/vfs/hammer/hammer_cursor.c | 8 ++--
sys/vfs/hammer/hammer_flusher.c | 9 +++
sys/vfs/hammer/hammer_inode.c | 96 ++++++++++++++++++++++++++---------
sys/vfs/hammer/hammer_ondisk.c | 11 +++--
sys/vfs/hammer/hammer_transaction.c | 9 +++-
sys/vfs/hammer/hammer_vfsops.c | 5 --
8 files changed, 116 insertions(+), 51 deletions(-)
http://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commitdiff;h=82010f9f8ef29e52bfa8e036450ccc75203803b6
--
DragonFly BSD source repository
More information about the Commits
mailing list