git: hammer2 - stabilization - blogbench, others
Matthew Dillon
dillon at crater.dragonflybsd.org
Tue Sep 1 17:57:01 PDT 2015
commit f9f4459efdc0a337763afd03f208ad8bbb06dc23
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Tue Sep 1 17:50:01 2015 -0700
hammer2 - stabilization - blogbench, others
* Fix some (but not all) issues with lost chains on unmount that show
up in a kmalloc pool warning.
* Fix a bug in hammer2_chain_create_indirect() which retained a stale
{ base, count } across possible parent chain modifications, resulting
in corruption and/or a panic.
* Track chain lock counts on a per-thread basis and add some helpful
assertions in the XOP processing loop. Also add
hammer2_chain_push_shared_lock() and hammer2_chain_pull_shared_lock()
to helpfully transfer ownership of (shared locks only) between threads.
* Add missing cpu_lfence() after fifo read index test. Ensures that
the memory load of the chain occurs after the write index change has
been detected.
* Change the XOP ABI a bit. hammer2_xop_feed() now replicates the
shared lock, giving one to the collector and allowing the caller
to retain its own. This way the locking state of the chain passed
to it does not change from the point of view of the caller.
This also fixes one or two lost chain locks in the XOPs.
Summary of changes:
sys/vfs/hammer2/hammer2.h | 3 +
sys/vfs/hammer2/hammer2_chain.c | 183 ++++++++++++++++++++++++++-----------
sys/vfs/hammer2/hammer2_flush.c | 2 +
sys/vfs/hammer2/hammer2_inode.c | 15 +--
sys/vfs/hammer2/hammer2_strategy.c | 4 +-
sys/vfs/hammer2/hammer2_thread.c | 26 ++++--
sys/vfs/hammer2/hammer2_vfsops.c | 5 +
sys/vfs/hammer2/hammer2_xops.c | 34 ++++---
8 files changed, 192 insertions(+), 80 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/f9f4459efdc0a337763afd03f208ad8bbb06dc23
--
DragonFly BSD source repository
More information about the Commits
mailing list