Date: Mon, 9 Sep 2002 11:55:39 -0400 (EDT) From: Robert Watson <rwatson@FreeBSD.org> To: John Baldwin <jhb@FreeBSD.org> Cc: "Greg 'groggy' Lehey" <grog@FreeBSD.org>, cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org Subject: Re: cvs commit: src/sys/kern kern_mutex.c Message-ID: <Pine.NEB.3.96L.1020909115448.53220A-100000@fledge.watson.org> In-Reply-To: <XFMail.20020909111013.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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?
Robert N M Watson FreeBSD Core Team, TrustedBSD Projects
robert@fledge.watson.org Network Associates Laboratories
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1020909115448.53220A-100000>
