On Thu, 2 Mar 2006, Ruslan Ermilov wrote:
Hi Jeff,
Does this mean that when I "umount -f /mnt" where /mnt is NFS-mounted and
the exporting host is not responding (e.g., powered off), it will no longer
lock everything on "vfslock" or somesuch?
I thought this was fixed with some changes to lookup. Can you be more
specific about what code you're running and the wchan? Hopefully a stack
too? I doubt this code is related.
On Thu, Mar 02, 2006 at 05:50:23AM +0000, 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
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
--
Ruslan Ermilov
[EMAIL PROTECTED]
FreeBSD committer
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"