git: hammer2 - cleanup embedded data hacks

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Dec 11 23:32:35 PST 2013


commit 91caa51ca652ce2e640f528c7d9ab5c42cc8819b
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Dec 11 23:17:41 2013 -0800

    hammer2 - cleanup embedded data hacks
    
    * Chains of type BREF_TYPE_INODE and BREF_TYPE_FREEMAP_LEAF were embedding
      their data (using a kmalloc()'d copy instead of a buffer-cache mapping).
      This was done due to recursive locking issues with struct buf's.
    
    * With the new hammer2_dio.c module we no longer have to use this hack.
      Remove it and use device buffer mappings (via dio) for these two chain
      types.
    
    * All chains except the embedded volume and freemap headers now use buffer
      maps.
    
    * This should substantially reduce adhoc kernel memory use and improve
      performance as VOP calls no longer have to kmalloc/bcopy/kfree clean
      inode data on every call.

Summary of changes:
 sys/vfs/hammer2/hammer2_chain.c | 184 +++++++++-------------------------------
 sys/vfs/hammer2/hammer2_flush.c |  13 ++-
 2 files changed, 50 insertions(+), 147 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/91caa51ca652ce2e640f528c7d9ab5c42cc8819b


-- 
DragonFly BSD source repository



More information about the Commits mailing list