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
John Baldwin
jhb at freebsd.org
Thu Mar 2 05:53:56 PST 2006
On Thursday 02 March 2006 00:50, Jeff Roberson wrote:
> 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
Very nice!
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the cvs-src
mailing list