Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Sep 2002 13:24:04 -0700
From:      Terry Lambert <tlambert2@mindspring.com>
To:        Juli Mallett <jmallett@FreeBSD.org>
Cc:        Poul-Henning Kamp <phk@critter.freebsd.dk>, Marc Recht <marc@informatik.uni-bremen.de>, current@FreeBSD.ORG
Subject:   Re: GEOM panic in current kernel
Message-ID:  <3D960FE4.80E7CB24@mindspring.com>
References:  <33985.1033238233@critter.freebsd.dk> <3D960745.1224A651@mindspring.com> <20020928130558.A72197@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Juli Mallett wrote:
> * De: Terry Lambert <tlambert2@mindspring.com> [ 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.

-- Terry

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?3D960FE4.80E7CB24>