From owner-cvs-all@FreeBSD.ORG Tue Oct 14 14:08:29 2003 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0006E16A4BF for ; Tue, 14 Oct 2003 14:08:28 -0700 (PDT) Received: from mail.speakeasy.net (mail7.speakeasy.net [216.254.0.207]) by mx1.FreeBSD.org (Postfix) with ESMTP id 95C5543FDF for ; Tue, 14 Oct 2003 14:08:25 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Received: (qmail 2442 invoked from network); 14 Oct 2003 21:08:25 -0000 Received: from unknown (HELO server.baldwin.cx) ([216.27.160.63]) (envelope-sender )encrypted SMTP for ; 14 Oct 2003 21:08:25 -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 h9EL8Lce049413; Tue, 14 Oct 2003 17:08:21 -0400 (EDT) (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: <20031014150419.Y56213-100000@mail.chesapeake.net> Date: Tue, 14 Oct 2003 17:08:30 -0400 (EDT) From: John Baldwin To: Jeff Roberson X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) cc: cvs-src@FreeBSD.org cc: Jeff Roberson cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: RE: cvs commit: src/sys/sys mutex.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Oct 2003 21:08:29 -0000 On 14-Oct-2003 Jeff Roberson wrote: > On Tue, 14 Oct 2003, John Baldwin wrote: > >> >> On 12-Oct-2003 Jeff Roberson wrote: >> > jeff 2003/10/12 14:02:55 PDT >> > >> > FreeBSD src repository >> > >> > Modified files: >> > sys/sys mutex.h >> > Log: >> > - Implement a mtx_ownedby() macro which can be used to determine if a >> > particular thread owns a mutex. This cannot be done without races >> > unless the thread is curthread. >> >> This is a very bad idea. What use do you have for this that is not >> already handled by mtx_owned() or a mutex assertion? > > I know it is racy in most contexts. I use it to check to see if a thread > on the runq owns giant. Since I have the sched lock it isn't racy but > even if it was it wouldn't matter in this case. sched lock doesn't keep it from being racy. Uncontested acquire and releases don't go anywhere near sched lock. Are you checking a non-curthread thread pointer? Maybe you could just do it for curthread and that would be enough for your heuristic, i.e. if (thread == curthread && mtx_owned(&Giant)) { ... } I'm just worried that if this is there someone is going to use it. :( -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/