Source-Changes-D archive

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

Re: CVS commit: src/sys/kern

On Tue, Mar 12, 2013 at 01:31:21PM +1100, matthew green wrote:
> > > Modified Files:
> > >   src/sys/kern: subr_pool.c
> > > 
> > > Log Message:
> > > In pool_cache_put_slow(), pool_get() can block (it does mutex_enter()),
> > > so we need to retry if curlwp took a context switch during the call.
> > 
> > I didn't think mutex_enter() blocked - isn't it a spinlock.
> > Which means that if things are going wrong they can go wrong
> > even if the mutex is available immediately.
> netbsd kernel mutexes can be either, but this one is a spinlock yeah.

Hmmm.... I thought that internal test had gone with lockmgr :-)
My guess is that every call site knows whether sleeping is allowed,
so it could be a property of the mutex type.
Then there would be no confusion about whether the code might sleep.

I know the uncontended path is now common to both (and fast) - unlike
lockmgr which took a couple of 100 instructions to decide what to do.


David Laight:

Home | Main Index | Thread Index | Old Index