Daniel Eischen wrote:
On Mon, 29 Oct 2007, Kris Kennaway wrote:

Daniel Eischen wrote:

The libkse implementation already spins for a bit.  The default
number of spins is 500.

OK, cool.

I'm not sure that another mutex type is warranted, the default
mutex implementation should be adaptive I think.

The point being that certain existing applications already know about this mutex name and will use it automatically when it exists.

I am a bit wary of making this the default type though. The algorithm is a pessimization when the conditions described above are not true.

I agree, and it applies a little to the KSE approach also.
Spinning is mostly a hack for not being able to tell in
userland if a thread is swapped in/out or is on another
CPU.  If you solve that problem, then you can make the
default mutex adaptive.

Yeah. It looks like Solaris does this. In principle you could do it cheaply with a shared page, I'm not sure what Solaris does.

One further optimization that can be done is for umtx to also spin when the mutex holder is running instead of sleeping immediately. Jeff and I hope to look at this.

Kris

_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to