From owner-cvs-src@FreeBSD.ORG Thu Nov 13 08:22:15 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EB52916A4D0 for ; Thu, 13 Nov 2003 08:22:14 -0800 (PST) Received: from mail.speakeasy.net (mail7.speakeasy.net [216.254.0.207]) by mx1.FreeBSD.org (Postfix) with ESMTP id 54AA743FE0 for ; Thu, 13 Nov 2003 08:22:11 -0800 (PST) (envelope-from jhb@FreeBSD.org) Received: (qmail 20565 invoked from network); 13 Nov 2003 16:22:10 -0000 Received: from unknown (HELO server.baldwin.cx) ([216.27.160.63]) (envelope-sender )encrypted SMTP for ; 13 Nov 2003 16:22:10 -0000 Received: from laptop.baldwin.cx (gw1.twc.weather.com [216.133.140.1]) by server.baldwin.cx (8.12.9/8.12.9) with ESMTP id hADGM7EW000718; Thu, 13 Nov 2003 11:22:08 -0500 (EST) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.5.4 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: Date: Thu, 13 Nov 2003 11:22:05 -0500 (EST) From: John Baldwin To: John Baldwin X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: RE: cvs commit: src/sys/kern subr_turnstile.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 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: Thu, 13 Nov 2003 16:22:15 -0000 On 12-Nov-2003 John Baldwin wrote: > > On 12-Nov-2003 John Baldwin wrote: >> jhb 2003/11/12 15:48:42 PST >> >> FreeBSD src repository >> >> Modified files: >> sys/kern subr_turnstile.c >> Log: >> - Close a race where a thread on another CPU could release a contested lock >> and empty its turnstile while the blocking threads still pointed to the >> turnstile. If the thread on the first CPU blocked on a lock owned by >> one of the threads blocked on the turnstile just woken up, then the >> first CPU could try to manipulate a bogus thread queue in the turnstile >> during priority propagation. >> - Update locking notes for ts_owner and always clear ts_owner, not just >> under INVARIANTS. >> >> Tested by: sam (1) > > This might fix the SMP problems on current. Please let me know if > there are any other turnstile/mutex/priority_propagation related > panics. Also, as a side note, I believe that this race is the cause of the recently reported panics in propagate_priority() with td_blocked == NULL in the pre-turnstile mutex code. The race is only just now being triggered because we have enough code out from under Giant to trigger it. This is why debug.mpsafenet seemed to "fix" that panic. This is also why I did not see this race when I tested turnstiles earlier on my SMP machines. -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/