DragonFly BSD
DragonFly commits List (threaded) for 2010-02
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: HAMMER VFS - Reduce stalls during bulk file operations


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 19 Feb 2010 10:50:22 -0800 (PST)

commit e98f1b96f17c57d1d59a4bba1d6a26b281767c07
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Fri Feb 19 10:41:22 2010 -0800

    HAMMER VFS - Reduce stalls during bulk file operations
    
    * Track modifying inode operations on a per-PID basis (loosely) and
      call hammer_inode_wait_reclaims() earlier for those pids.
    
      The algorithm selects a wait point based on the process's perceived
      contribution to the inode load.  The greater the contribution, the
      more readily we stall the process in order to wait for related reclaims
      to process.
    
      Processes with lower loads have higher reclaim points and do not stall
      as readily as they did before.
    
    * Remove waitreclaims calls based on B-Tree scans.  I'm not sure why I had
      this in there but it was creating an excessive number of unnecessary
      stalls, so if any problems crop up I'll have to find another way to deal
      with them.
    
    * These changes (particularly the first) should reduce unnecessary stalls
      for the programs not doing heavy inode operations.  Hopefully that means
      rm -rf and tar extractions will not have as quite the detrimental effect
      on other processes as they did before.

Summary of changes:
 sys/vfs/hammer/hammer.h             |   20 +++++++-
 sys/vfs/hammer/hammer_inode.c       |   86 ++++++++++++++++++++++++++++++++---
 sys/vfs/hammer/hammer_object.c      |   10 ++--
 sys/vfs/hammer/hammer_prune.c       |    2 +-
 sys/vfs/hammer/hammer_transaction.c |    7 ++-
 sys/vfs/hammer/hammer_vnops.c       |   12 +++---
 6 files changed, 113 insertions(+), 24 deletions(-)

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


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]