HAMMER 61B/Many: Stabilization
authorMatthew Dillon <dillon@dragonflybsd.org>
Fri, 11 Jul 2008 01:22:29 +0000 (01:22 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Fri, 11 Jul 2008 01:22:29 +0000 (01:22 +0000)
commit98da6d8c1ec5dbc193e9870bbf0106f546a3aaff
tree9199b5d37b56c721aa8f37de99d3c053a3bfcd17
parent7664c561622d1c757592c72fb5f4c4b974b19a81
HAMMER 61B/Many: Stabilization

* Giving the sync_lock's exclusive locks priority over shared locks caused
  a 3-way deadlock, revert to using normal shared locks.

* Move the syncer_lock deeper, closer to the code that actually needs to
  hold but still paying attention to atomicy requirements.  This reduces
  lock contention and improves performance with parallel loads.

Reported-by: Michael Neumann (using his file-creator program)
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_mirror.c
sys/vfs/hammer/hammer_object.c
sys/vfs/hammer/hammer_prune.c
sys/vfs/hammer/hammer_reblock.c
sys/vfs/hammer/hammer_subs.c