Skip site navigation (1)Skip section navigation (2)
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>