git: HAMMER VFS - Reduce stalls during bulk file operations

Matthew Dillon dillon at
Fri Feb 19 10:51:39 PST 2010

commit e98f1b96f17c57d1d59a4bba1d6a26b281767c07
Author: Matthew Dillon <dillon at>
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(-)

DragonFly BSD source repository

More information about the Commits mailing list