git: hammer2 - Allow chains to be cached

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Jun 9 16:53:38 PDT 2016


commit a7b81974b16971937249f5bdf7b3e48866ce7895
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Thu Jun 9 16:49:09 2016 -0700

    hammer2 - Allow chains to be cached
    
    * Cache chain structures on the refs 1->0 transition.  We still drop the
      underlying dio and backing data (future optimizations are possible here
      within the DIO subsystem but we have to be careful when it comes to
      leaving kernel buffer cache buffers locked).
    
      This allows hammer2 to retain a lot of the infrastructure that gets reused
      across multiple system calls without having to constantly reconstitute it,
      improving performance.
    
    * Fix a few recent chain->flags modifications that weren't atomic.  They
      have to be atomic.

Summary of changes:
 sys/vfs/hammer2/hammer2.h          |  13 ++++-
 sys/vfs/hammer2/hammer2_chain.c    | 105 +++++++++++++++++++++++++++++++++----
 sys/vfs/hammer2/hammer2_inode.c    |   8 ++-
 sys/vfs/hammer2/hammer2_strategy.c |  16 +++++-
 sys/vfs/hammer2/hammer2_thread.c   |  46 ++++++++++------
 sys/vfs/hammer2/hammer2_vfsops.c   |  18 ++++++-
 6 files changed, 174 insertions(+), 32 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/a7b81974b16971937249f5bdf7b3e48866ce7895


-- 
DragonFly BSD source repository



More information about the Commits mailing list