Date: Wed, 26 Sep 2001 02:04:40 +0100 From: Ian Dowse <iedowse@maths.tcd.ie> To: John Baldwin <jhb@FreeBSD.org> Cc: Bill Fenner <fenner@research.att.com>, freebsd-current@FreeBSD.org, evms@cs.bu.edu, mark@grondar.za, peter@wemm.org Subject: Re: panic on mount Message-ID: <200109260204.aa91624@salmon.maths.tcd.ie> In-Reply-To: Your message of "Tue, 25 Sep 2001 14:47:13 PDT." <XFMail.010925135203.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <XFMail.010925135203.jhb@FreeBSD.org>, John Baldwin writes: > >It looks like the mutex is really held since the mtx_assert before >witness_unlock didn't trigger. You can try turning witness off for the time >being as a workaround. I'm not sure why witness would be broken, however. Revision 1.41 of sys/mutex.h seems to be the culprit. Before 1.41, the defined(LOCK_DEBUG) and !defined(LOCK_DEBUG) cases were identical except that with LOCK_DEBUG defined, the function versions of _mtx_*lock_* were used. After 1.41, the !defined(LOCK_DEBUG) case misses all the MPASS/KASSERT/LOCK_LOG/WITNESS bits. A simple workaround that seems to stop the panics is below. Ian Index: mutex.h =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/sys/mutex.h,v retrieving revision 1.41 diff -u -r1.41 mutex.h --- mutex.h 2001/09/22 21:19:55 1.41 +++ mutex.h 2001/09/26 00:46:09 @@ -238,7 +238,7 @@ #define mtx_unlock(m) mtx_unlock_flags((m), 0) #define mtx_unlock_spin(m) mtx_unlock_spin_flags((m), 0) -#ifdef LOCK_DEBUG +#if 1 #define mtx_lock_flags(m, opts) \ _mtx_lock_flags((m), (opts), LOCK_FILE, LOCK_LINE) #define mtx_unlock_flags(m, opts) \ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200109260204.aa91624>