HAMMER performance and kernel memory issues.
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 28 Dec 2008 23:29:48 +0000 (15:29 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 28 Dec 2008 23:29:48 +0000 (15:29 -0800)
commit82010f9f8ef29e52bfa8e036450ccc75203803b6
tree9f43a57619bee1a06952d536ff9534bf485e3a93
parentcd7c1b866fd2effc111ced7b3bd1123258bd3554
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@les.ath.cx>
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_btree.c
sys/vfs/hammer/hammer_cursor.c
sys/vfs/hammer/hammer_flusher.c
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_transaction.c
sys/vfs/hammer/hammer_vfsops.c