* De: Terry Lambert <[EMAIL PROTECTED]> [ Data: 2002-09-28 ]
        [ Subjecte: Re: GEOM panic in current kernel ]
> Juli Mallett wrote:
> > * De: Terry Lambert <[EMAIL PROTECTED]> [ Data: 2002-09-28 ]
> > > Poul-Henning Kamp wrote:
> > > > +       bzero(&mymutex, sizeof mymutex);
> > > >         mtx_init(&mymutex, "g_up", MTX_DEF, 0);
> > >
> > >
> > > Too bad mtx_init() doesn't really initialize the mutex, or
> > > this would not be necessary.  8-(.
> > 
> > That would break some witness checks, Terry, which check for something very
> > bad, which shouldn't happen: a mutex actually being initialised twice.
> 
> The ones in this case are on the stack, which means that they
> are not going to persist long enough for that to be a problem.
> 
> For persistent mutexes, this implies that bzero()'ing is a bad
> thing to do (from a witness perspective), but a good thing to
> do otherwise.
> 
> What this all implies to me is that there needs to be a mutex
> allocation/deallocation mechanism for keeping witness happy,
> by verifying that the mutex is no longer used at the point
> that it is freed, so that it's OK to bzero() it on initial
> allocation (to differentiate initial allocation from reuse).
> 
> The point comes down to "where do little mutexes come from?".
> 
> Actually, it seems to me that it should be OK to initialize a
> mutex multiple times, and only not OK to initialize it if it's
> in use.  In other words, I don't think that the protection you
> are talking about is protecting against what it;s pretending to.

A mutex zone or pool, and actual allocation would be interesting.
-- 
Juli Mallett <[EMAIL PROTECTED]>       | FreeBSD: The Power To Serve
Will break world for fulltime employment. | finger [EMAIL PROTECTED]
http://people.FreeBSD.org/~jmallett/      | Support my FreeBSD hacking!

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to