From owner-p4-projects@FreeBSD.ORG Thu Aug 11 15:35:57 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D91C816A424; Thu, 11 Aug 2005 15:35:56 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7FE1816A41F; Thu, 11 Aug 2005 15:35:56 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: from mv.twc.weather.com (mv.twc.weather.com [65.212.71.225]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1149E43D45; Thu, 11 Aug 2005 15:35:55 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: from [10.50.40.201] (Not Verified[65.202.103.25]) by mv.twc.weather.com with NetIQ MailMarshal (v6, 0, 3, 8) id ; Thu, 11 Aug 2005 11:50:46 -0400 From: John Baldwin To: Sam Leffler Date: Thu, 11 Aug 2005 10:59:24 -0400 User-Agent: KMail/1.8 References: <200508102238.j7AMc1rt070595@repoman.freebsd.org> In-Reply-To: <200508102238.j7AMc1rt070595@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-6" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200508111059.25135.jhb@FreeBSD.org> Cc: Perforce Change Reviews Subject: Re: PERFORCE change 81809 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Aug 2005 15:35:57 -0000 On Wednesday 10 August 2005 06:38 pm, Sam Leffler wrote: > http://perforce.freebsd.org/chv.cgi?CH=81809 > > Change 81809 by sam@sam_ebb on 2005/08/10 22:37:39 > > Bandaid deadlock: on tx timeout we're in the callout callback > when we clock the state machine, but this results in a call > to callout_drain which blocks because the callout is active. > Workaround for now is to use callout_stop which won't block > but this potentially leaves us open to a race. If you use callout_init_mtx() instead then I think it closes the race for you as softclock will block on your mutex before trying to run the callout and it will not run it if you cancel the callout before you drop your lock. -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org