git: HAMMER VFS - Implement async I/O for double-buffer strategy case

Matthew Dillon dillon at crater.dragonflybsd.org
Sun Apr 10 09:02:59 PDT 2011


commit 9a98f3cc99cb6d581eee77b15079c1fefd607e8f
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sun Apr 10 08:46:04 2011 -0700

    HAMMER VFS - Implement async I/O for double-buffer strategy case
    
    * When vfs.hammer.double_buffer is enabled the HAMMER strategy code
      was running synchronously.  This creates numerous problems including
      extra stalls when read-ahead is issued.
    
    * Use the new breadcb() function to allow nominal double_buffer strategy
      operations to run asynchronously.  Essentially the original buffer and
      CRC is recorded in the device bio and the copyback is made in the
      callback.
    
    * This improves performance vfs.hammer.double_buffer is enabled.

Summary of changes:
 sys/vfs/hammer/hammer.h        |    2 +
 sys/vfs/hammer/hammer_io.c     |  142 ++++++++++++++++++++++++++++++++++++++++
 sys/vfs/hammer/hammer_ondisk.c |    3 +
 sys/vfs/hammer/hammer_vnops.c  |   45 +++++++++++--
 4 files changed, 186 insertions(+), 6 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/9a98f3cc99cb6d581eee77b15079c1fefd607e8f


-- 
DragonFly BSD source repository





More information about the Commits mailing list