Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys



On Sat, May 16, 2009 at 08:29:54AM +0000, YAMAMOTO Takashi wrote:
> Module Name:  src
> Committed By: yamt
> Date:         Sat May 16 08:29:54 UTC 2009
> 
> Modified Files:
>       src/sys/kern: vfs_subr.c
>       src/sys/sys: vnode.h
> 
> Log Message:
> put a flag bit into v_usecount to prevent vtryget during getcleanvnode.
> this fixes the following deadlock.
> 
>       a thread doing getcleanvnode:
>       pick a vnode
>       acqure v_interlock
>       v_usecount++
>       call vclean
> 
>               now, another thread doing cache_lookup:
>               picks the vnode
>               vtryget succeed
>               vn_lock succeed
> 
>       now in vclean:
>       set VI_XLOCK (too late to be noticed by the competing thread)
>       wait on the vnode lock (this might violate locking order)
> 
> the use of a flag bit was suggested by Andrew Doran.  PR/41374.

Hi,
do you think it could also help with kern/41417 ?
cache_lookup seems also to be involved in this deadlock ...

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index