cvs commit: src/sys/sys mount.h vnode.h src/sys/kern vfs_subr.c src/sys/ufs/ffs ffs_alloc.c ffs_extern.h ffs_snapshot.c ffs_softdep.c softdep.h src/sys/ufs/ufs ufsmount.h

Jeff Roberson jeff at FreeBSD.org
Wed Mar 1 21:50:25 PST 2006


jeff        2006-03-02 05:50:23 UTC

  FreeBSD src repository

  Modified files:
    sys/sys              mount.h vnode.h 
    sys/kern             vfs_subr.c 
    sys/ufs/ffs          ffs_alloc.c ffs_extern.h ffs_snapshot.c 
                         ffs_softdep.c softdep.h 
    sys/ufs/ufs          ufsmount.h 
  Log:
   - Move softdep from using a global worklist to per-mount worklists.  This
     has many positive effects including improved smp locking, reducing
     interdependencies between mounts that can lead to deadlocks, etc.
   - Add the softdep worklist and various counters to the ufsmnt structure.
   - Add a mount pointer to the workitem and remove mount pointers from the
     various structures derived from the workitem as they are now redundant.
   - Remove the poor-man's semaphore protecting softdep_process_worklist and
     softdep_flushworklist.  Several threads may now process the list
     simultaneously.
   - Add softdep_waitidle() to block the thread until all pending
     dependencies being operated on by other threads have been flushed.
   - Use softdep_waitidle() in unmount and snapshots to block either
     operation until the fs is stable.
   - Remove softdep worklist processing from the syncer and move it into the
     softdep_flush() thread.  This thread processes all softdep mounts
     once each second and when it is called via the new softdep_speedup()
     when there is a resource shortage.  This removes the softdep hook
     from the kernel and various hacks in header files to support it.
  
  Reviewed by/Discussed with:     tegge, truckman, mckusick
  Tested by:      kris
  
  Revision  Changes    Path
  1.661     +0 -10     src/sys/kern/vfs_subr.c
  1.206     +0 -4      src/sys/sys/mount.h
  1.314     +0 -1      src/sys/sys/vnode.h
  1.139     +3 -3      src/sys/ufs/ffs/ffs_alloc.c
  1.70      +4 -5      src/sys/ufs/ffs/ffs_extern.h
  1.113     +7 -0      src/sys/ufs/ffs/ffs_snapshot.c
  1.189     +313 -254  src/sys/ufs/ffs/ffs_softdep.c
  1.19      +1 -6      src/sys/ufs/ffs/softdep.h
  1.35      +8 -0      src/sys/ufs/ufs/ufsmount.h


More information about the cvs-all mailing list