Is MTX_CONTESTED evil?

John Baldwin jhb at FreeBSD.org
Tue Mar 23 10:40:43 PST 2004


On Monday 22 March 2004 11:40 pm, Maxim Konovalov wrote:
> On Mon, 22 Mar 2004, 19:06-0500, John Baldwin wrote:
>
> [...]
>
> > > By the way, one thing to keep in mind is that Solaris has working
> > > adaptive mutexes.  For adaptive mutexes, the waiting case is
> > > almost never supposed to happen, so it's more reasonable for them
> > > to wake all waiters.  However, AFAIK, FreeBSD's adaptive mutex
> > > support is incomplete or broken at this point, so you may run into
> > > a thundering herd problem if you wake all waiters.
> >
> > Adaptive mutexes work just fine, but they aren't on by default.  In
> > FreeBSD, adaptive mutexes spin so long as the owner is still executing on
> > another CPU.
>
> With 'options ADATIVE_MUTEXES' our SMP testbox crashes very reliable.
> If you are interested in a traceback and/or crashdump let me know.

I can look at it.  The bug is likely in some other code that is not really MP 
safe but is out from under Giant anyways as adaptive mutexes allow more 
concurrent execution and thus expose a lot more races.

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


More information about the freebsd-arch mailing list