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