cvs commit: src/sys/dev/disk/vn vn.c src/sys/kern vfs_bio.c vfs_cluster.c src/sys/sys buf.h vnode.h src/sys/vfs/nfs nfs_bio.c src/sys/vfs/ufs ufs_readwrite.c

Matthew Dillon dillon at
Tue Apr 22 11:49:41 PDT 2008

dillon      2008/04/22 11:46:54 PDT

DragonFly src repository

  Modified files:
    sys/dev/disk/vn      vn.c 
    sys/kern             vfs_bio.c vfs_cluster.c 
    sys/sys              buf.h vnode.h 
    sys/vfs/nfs          nfs_bio.c 
    sys/vfs/ufs          ufs_readwrite.c 
  Fix some IO sequencing performance issues and reformulate the strategy
  we use to deal with potential buffer cache deadlocks.  Generally speaking
  try to remove roadblocks in the vn_strategy() path.
  * Remove buf->b_tid (HAMMER no longer needs it)
  * Replace IO_NOWDRAIN with IO_NOBWILL, requesting that bwillwrite() not
    be called.  Used by VN to try to avoid deadlocking.  Remove B_NOWDRAIN.
  * No longer block in bwrite() or getblk() when we have a lot of dirty
    buffers.   getblk() in particular needs to be callable by filesystems
    to drain dirty buffers and we don't want to deadlock.
  * Improve bwillwrite() by having it wake up the buffer flusher at 1/2 the
    dirty buffer limit but not block, and then block if the limit is reached.
    This should smooth out flushes during heavy filesystem activity.
  Revision  Changes    Path
  1.37      +1 -1      src/sys/dev/disk/vn/vn.c
  1.99      +15 -28    src/sys/kern/vfs_bio.c
  1.33      +1 -1      src/sys/kern/vfs_cluster.c
  1.44      +2 -8      src/sys/sys/buf.h
  1.78      +5 -1      src/sys/sys/vnode.h
  1.43      +0 -6      src/sys/vfs/nfs/nfs_bio.c
  1.25      +0 -2      src/sys/vfs/ufs/ufs_readwrite.c

More information about the Commits mailing list