Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Feb 2002 02:09:30 -0500 (EST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org, Seigo Tanimura <tanimura@FreeBSD.org>, Alfred Perlstein <bright@mu.org>
Subject:   Re: cvs commit: src/sys/coda coda_venus.c src/sys/compat/linproc
Message-ID:  <XFMail.020226020930.jhb@FreeBSD.org>
In-Reply-To: <200202232056.g1NKuKf41350@apollo.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On 23-Feb-02 Matthew Dillon wrote:
> 
>:Matt, any chance you can co-ordinate with jhb (or not) to add
>:functionality to witness such that it can detect when a mutex
>:is aquired while holding a pool mutex?
>:
>:-Alfred
> 
>     This would be very easy to do.  Since witness already uses curthread
>     we simply have a field in curthread indicating that we are holding a
>     pool mutex.  If witness_lock() sees this set then it complains.  The
>     pool mutexes could be init'd with another MTX flag indicating that
>     they are leaf mutexes (i.e. MTX_LEAF).
> 
>     It is so easy it might be useful to do this test for INVARIANTS in
>     general without requiring WITNESS to be turned on.
> 
>     What do you think John?

The problem is that you are using mutex pool locks for two different types of
locks: real leaf locks that need lock order checks, and locks used to implement
higher level primitives such as sx locks and lockmgr locks.  These first locks
need to be checked with witness, but the second do not.

>                                       -Matt
>                                       Matthew Dillon 
>                                       <dillon@backplane.com>

-- 

John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

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?XFMail.020226020930.jhb>