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