git: hammer2 - flush sequencing part 1

Matthew Dillon dillon at crater.dragonflybsd.org
Fri May 3 21:36:38 PDT 2013


commit d001f460bbf1795b8f37fce7ccc3243202a5d5f6
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri May 3 21:31:31 2013 -0700

    hammer2 - flush sequencing part 1
    
    * Rip out the jerry-rigged flush sequencer and start work on a real
      one.
    
    * Sync and fsync calls create synchronization points and will be serialized
      against each other.
    
    * Modifying operations occurring before a synchronization point will stall
      modifying operations occurring after the synchronization point until
      they complete.  This will need to be optimized.
    
    * However, the synchronization points are coded such that modifying operations
      occurring after a synchronization point will be able to run concurrently
      with the disk flush related to that synchronization point.
    
      So if there is only one synchronization point (sync or fsync or background
      sync) active, modifying operations will generally not stall.  At least not
      for very long.

Summary of changes:
 sys/vfs/hammer2/hammer2.h        |  58 +++++++++++++++----
 sys/vfs/hammer2/hammer2_chain.c  |  50 +++++++---------
 sys/vfs/hammer2/hammer2_flush.c  | 121 ++++++++++++++++++++++++++-------------
 sys/vfs/hammer2/hammer2_ioctl.c  |   4 +-
 sys/vfs/hammer2/hammer2_vfsops.c |  23 +++++++-
 sys/vfs/hammer2/hammer2_vnops.c  |  42 ++++++++------
 6 files changed, 197 insertions(+), 101 deletions(-)

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


-- 
DragonFly BSD source repository



More information about the Commits mailing list