cvs commit: src/sys/conf options src/sys/kern kern_mutex.c
John Baldwin
jhb at FreeBSD.org
Wed Apr 7 12:55:51 PDT 2004
On Tuesday 06 April 2004 11:41 pm, Jeff Roberson wrote:
> On Tue, 6 Apr 2004, John Baldwin wrote:
> > jhb 2004/04/06 12:12:25 PDT
> >
> > FreeBSD src repository
> >
> > Modified files:
> > sys/conf options
> > sys/kern kern_mutex.c
> > Log:
> > Add a new kernel option MUTEX_WAKE_ALL that changes the mutex unlock
> > code to awaken all waiters when a contested mutex is released instead of
> > just the highest priority waiter. If the various threads are awakened in
> > sequence then each thread may acquire and release the lock in question
> > without contention resulting in fewer expensive unlock and lock
> > operations. This old behavior of waking just the highest priority is
> > still used if this option is specified. Making the algorithm conditional
> > on a kernel option will allows us to benchmark both cases later and
> > determine which one should be used by default.
>
> This seems like an optimization on UP and a pessimization on SMP. Perhaps
> you should make it conditional on mp_ncpus?
Sun found it to be an optimization in general, and they tend to have a lot of
very MP SMP boxes. :) It is a kernel option specifically so we can benchmark
it for various test cases. I wouldn't mind having different defaults based
on #ifdef SMP, but I'd rather avoid any run-time checks.
--
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 cvs-src
mailing list