[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Is MTX_CONTESTED evil?



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_(_dot_)_org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org