git: kernel - Add vsyncscan() infrastructure

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Oct 10 19:05:19 PDT 2013


commit bf9f24c1485cebd2c430cfbc1d23fee8df6f69e6
Author: Matthew Dillon <dillon at backplane.com>
Date:   Thu Oct 10 18:56:45 2013 -0700

    kernel - Add vsyncscan() infrastructure
    
    * For VFS's which support it, allows vnodes with dirty inodes to be placed
      on the syncer list rather than just vnodes with dirty buffers.  The VFS
      can then implement its VFS_SYNC ops by calling vsyncscan() instead of
      vmntvnodescan().
    
    * On large systems with potentially hundreds of thousands to millions of
      cached vnodes, this reduces sync scan overhead by several orders of
      magnitude.
    
    * Add the VISDIRTY flag to vnode->v_flag to indicate a dirty inode, adjust
      syncer add/delete code to use the flag.
    
    * Cleanup vfs_sync.c.  Always initialize mp->mnt_syncer_ctx to something.
      Change the kern.syncdelay sysctl to use SYSCTL_PROC which properly
      range-checks syncdelay.
    
    * Implement vsyncscan() which only scans the syncer lists for a mount point.

Summary of changes:
 sys/kern/vfs_mount.c  |   6 +-
 sys/kern/vfs_subr.c   |  17 ++++-
 sys/kern/vfs_sync.c   | 181 ++++++++++++++++++++++++++++++++++++++------------
 sys/kern/vfs_vfsops.c |  11 +--
 sys/sys/vnode.h       |  10 ++-
 5 files changed, 168 insertions(+), 57 deletions(-)

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


-- 
DragonFly BSD source repository



More information about the Commits mailing list