cvs commit: src/sys/kern kern_mutex.c

Bruce Evans brde at optusnet.com.au
Wed Jun 6 06:28:13 UTC 2007


On Tue, 5 Jun 2007, Jeff Roberson wrote:

> On Wed, 6 Jun 2007, Bruce Evans wrote:
>
>> On Tue, 5 Jun 2007, John Baldwin wrote:

>>> If this is the old #ifndef PREEMPTION manual preemption stuff, then just
>>> remove it.  I've been wanting to axe it for a while, rwlocks don't do the
>>> manual preemption either, and if it is getting in the way it's best to 
>>> just
>>> purge it.
>> 
>> Interesting, I've been wanting to do the opposite -- axe the #ifdef
>> PREEMPTION in a different place, in pagezero, since non-manual preemption
>> doesn't actually work for SCHED_4BSD (it works for SCHED_ULE, but last
>> time I checked, SCHED_ULE was 7% slower for my makeworld benchmark
>> since it lets CPUs go idle when there is a runnable process in the
>> hope of a better CPU to run on becoming available).  My SMP kernel
>> that crashes has this ifdef removed.  However, the crash doesn't
>> seem to be caused by pgzero.
>
> You should try with kern.sched.pick_pri = 0.  I have changed this to be the 
> default recently.  This weakens the preemption and speeds up some workloads.

I haven't tried a new SCHED_ULE kernel yet.

> Are you still experiencing a crash with -current sources?

It works now.  Performance for compiling in parallel is down a little.
A bit over 2% relative to my best ever makeworld time which was with
a June 4 kernel.  This seems to have something to do with the preemption
without PREEMPTION being too weak now.

Bruce


More information about the cvs-all mailing list