git: hammer2 - Work on concurrent bulkfree stability
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Aug 24 18:46:33 PDT 2017
commit 0b8efeb7d8bb32a0e5c57bd87eef12569e81b294
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Aug 24 15:52:45 2017 -0700
hammer2 - Work on concurrent bulkfree stability
* The dedup bits in the DIO structure must be set atomically with
the setting of the bitmap bits in the freemap to avoid racing
bulkfree.
* dedup bits are normally deleted on the 11->10 transition in bulkfree,
and asserted to be deleted on the 10->00 transition. Also delete
dedup bits when a modified chain with no parent is destroyed, and
for a chain's prior data reference when it is being replaced by a
new data reference.
* Clean up the DIO dedup management code.
* Clean up the DIO allocation code.
* Cap the size of the DIO cache to 100000 elements for now, if nbuf * 2
is greater.
Summary of changes:
sys/vfs/hammer2/hammer2.h | 35 +++++++--
sys/vfs/hammer2/hammer2_bulkfree.c | 9 +--
sys/vfs/hammer2/hammer2_chain.c | 22 ++++++
sys/vfs/hammer2/hammer2_flush.c | 7 +-
sys/vfs/hammer2/hammer2_freemap.c | 12 ++++
sys/vfs/hammer2/hammer2_io.c | 142 +++++++++++++++++++++++++++++--------
sys/vfs/hammer2/hammer2_strategy.c | 79 +++------------------
sys/vfs/hammer2/hammer2_vfsops.c | 13 ++++
8 files changed, 209 insertions(+), 110 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/0b8efeb7d8bb32a0e5c57bd87eef12569e81b294
--
DragonFly BSD source repository
More information about the Commits
mailing list