From owner-cvs-all Mon Sep 9 17: 6:59 2002 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 BD79837B400; Mon, 9 Sep 2002 17:06:54 -0700 (PDT) Received: from wantadilla.lemis.com (wantadilla.lemis.com [192.109.197.80]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1967843E6A; Mon, 9 Sep 2002 17:06:53 -0700 (PDT) (envelope-from grog@lemis.com) Received: by wantadilla.lemis.com (Postfix, from userid 1004) id 9AFA8812E2; Tue, 10 Sep 2002 09:36:50 +0930 (CST) Date: Tue, 10 Sep 2002 09:36:50 +0930 From: Greg 'groggy' Lehey To: Robert Watson Cc: John Baldwin , cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org Subject: Re: cvs commit: src/sys/kern kern_mutex.c Message-ID: <20020910000650.GM92060@wantadilla.lemis.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i Organization: The FreeBSD Project Phone: +61-8-8388-8286 Fax: +61-8-8388-8725 Mobile: +61-418-838-708 WWW-Home-Page: http://www.FreeBSD.org/ X-PGP-Fingerprint: 9A1B 8202 BCCE B846 F92F 09AC 22E6 F290 507A 4223 Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Monday, 9 September 2002 at 11:55:39 -0400, Robert Watson wrote: > On Mon, 9 Sep 2002, John Baldwin wrote: > >> On 08-Sep-2002 Greg 'groggy' Lehey wrote: >>> On Tuesday, 3 September 2002 at 11:25:16 -0700, John Baldwin wrote: >>>> jhb 2002/09/03 11:25:16 PDT >>>> >>>> Modified files: >>>> sys/kern kern_mutex.c >>>> Log: >>>> Add some KASSERT()'s to ensure that we don't perform spin mutex ops on >>>> sleep mutexes and vice versa. WITNESS normally should catch this but >>>> not everyone uses WITNESS so this is a fallback to catch nasty but easy >>>> to do bugs. >>> >>> Is this a temporary thing which will go away, or is it dependent on >>> some other debugging option? It doesn't seem to be something that >>> should remain in production systems for ever. >> >> Hmm, well, for developer's it is very useful. WITNESS unfortunately >> doesn't seem to catch the cases when it happens (I think the damage is >> usually done too late by that point). ATM it is just a simple == >> comparison with perhaps two pointer dereferences, not really a very >> expensive check. > > #ifdef INVARIANTS /* The option is always available */ > #define KASSERT(exp,msg) do { if (!(exp)) panic msg; } while (0) > #else > #define KASSERT(exp,msg) > #endif > > All KASSERT's are compiled out of kernels without INVARIANTS turned on. > This won't affect production systems unless they have INVARIANTS > explicitly turned on; I think that should handle grog's concerns? Yes, indeed. Thanks. Greg -- See complete headers for address and phone numbers To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message