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 jroberson at chesapeake.net
Wed Mar 1 23:37:34 PST 2006


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
> ru at FreeBSD.org
> FreeBSD committer
>


More information about the cvs-src mailing list