From owner-cvs-src@FreeBSD.ORG Wed Mar 19 09:08:16 2008 Return-Path: Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 591661065672; Wed, 19 Mar 2008 09:08:16 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from webaccess-cl.virtdom.com (webaccess-cl.virtdom.com [216.240.101.25]) by mx1.freebsd.org (Postfix) with ESMTP id 0C7FE8FC13; Wed, 19 Mar 2008 09:08:15 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from [192.168.1.107] (cpe-24-94-75-93.hawaii.res.rr.com [24.94.75.93]) (authenticated bits=0) by webaccess-cl.virtdom.com (8.13.6/8.13.6) with ESMTP id m2J98D0e084424; Wed, 19 Mar 2008 05:08:14 -0400 (EDT) (envelope-from jroberson@chesapeake.net) Date: Tue, 18 Mar 2008 23:09:05 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: Doug Rabson In-Reply-To: <485E42A7-7955-4E95-9887-DCAE664CD9AE@rabson.org> Message-ID: <20080318230824.Y910@desktop> References: <200803190713.m2J7DOPp083103@repoman.freebsd.org> <485E42A7-7955-4E95-9887-DCAE664CD9AE@rabson.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: cvs-src@FreeBSD.org, Jeff Roberson , src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/kern kern_lockf.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Mar 2008 09:08:16 -0000 On Wed, 19 Mar 2008, Doug Rabson wrote: > > 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. > Thanks very much Doug. I'm looking forward to it! Jeff