Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Mar 2008 08:59:02 +0000
From:      Doug Rabson <dfr@rabson.org>
To:        Jeff Roberson <jeff@FreeBSD.org>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/kern kern_lockf.c
Message-ID:  <485E42A7-7955-4E95-9887-DCAE664CD9AE@rabson.org>
In-Reply-To: <200803190713.m2J7DOPp083103@repoman.freebsd.org>
References:  <200803190713.m2J7DOPp083103@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail-59--23324358
Content-Type: text/plain;
	charset=US-ASCII;
	format=flowed;
	delsp=yes
Content-Transfer-Encoding: 7bit


On 19 Mar 2008, at 07:13, Jeff Roberson wrote:

> jeff        2008-03-19 07:13:24 UTC
>
>  FreeBSD src repository
>
>  Modified files:
>    sys/kern             kern_lockf.c
>  Log:
>   - Fix the last of the threading bugs that were introduced as far  
> back as
>     1.38 in 2001.  Break out of the FOREACH_THREAD_IN_PROC loop when  
> we've
>     discovered a new proc in the chain.
>   - Increment i and check for maxlockdepth once per matching process  
> not
>     once per thread.  This didn't properly terminate the loop before.
>   - Fix a bug which has existed potentially since rev 1.1.   
> waitblock->lf_next
>     can be NULL when a thread has been woken-up but not yet  
> scheduled.  Check
>     for this condition rather than blindly dereferencing.
>
>  Found by:       libMicro
>
>  Revision  Changes    Path
>  1.59      +12 -6     src/sys/kern/kern_lockf.c

I have completely removed all this proc tomfoolery in my perforce  
branch and have replaced it with a real deadlock detection system  
instead of this horrible code. Apart from anything else, the existing  
code has serious locking problems - if the deadlock loop spans two or  
more vnodes, it doesn't lock any but the first one.

I should have a patch ready for review (along with the new kernel NFS  
lock manager) towards the end of this week and I hope to get the thing  
into -current some time next week.


--Apple-Mail-59--23324358--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?485E42A7-7955-4E95-9887-DCAE664CD9AE>