Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Sep 2002 09:36:50 +0930
From:      Greg 'groggy' Lehey <grog@FreeBSD.org>
To:        Robert Watson <rwatson@FreeBSD.org>
Cc:        John Baldwin <jhb@FreeBSD.org>, 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>
In-Reply-To: <Pine.NEB.3.96L.1020909115448.53220A-100000@fledge.watson.org>
References:  <XFMail.20020909111013.jhb@FreeBSD.org> <Pine.NEB.3.96L.1020909115448.53220A-100000@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020910000650.GM92060>