RELENG_6: Which scheduler for SMP?

Mark Ovens marko at freebsd.org
Wed Dec 28 12:08:20 PST 2005


I've never had any success with the ULE scheduler on my dual Athlon box 
running RELENG_5; it was so unstable it made Windows 3.1 look stable. In 
fact my current build, cvsup'd a couple of days ago, won't even boot 
with ULE.

 From what I remember, ULE was intended to become the default scheduler 
during the life of 5.0 but that hasn't happened.

I've just cvsup'd the source for RELENG_6 and I'm surprised to find in 
the GENERIC config file:

#options    SCHED_ULE	# ULE scheduler
options     SCHED_4BSD	# 4BSD scheduler

so it seems 4BSD is still the default scheduler. Is ULE _still_ 
considered to be in development/experimental? Even the SMP config file 
doesn't use ULE.

Also in GENERIC:

options     PREEMPTION	# Enable kernel thread preemption

[....]

options     ADAPTIVE_GIANT  # Giant mutex is adaptive.

Yet in src/sys/conf/NOTES, ADAPTIVE_GIANT is listed under SMP Options 
and  PREEMPTION is listed under SMP Debugging Options which makes it 
surprising that they are in the GENERIC config file.

What I am trying to decide is whether there any point in making the jump 
from a very stable RELENG_5 system to RELENG_6. AIUI the ULE scheduler 
and it's associated options optimize the use of multiple CPUs and by 
staying with 4BSD I'm not getting the best performance from my system.

Can anyone offer any advice on this please?

The machine has dual Athlon MP2800s on a Asus A7M266-D mobo, 1Gbyte ECC 
RAM and all SCSI disks and optical drives.

TIA.

Regards,

Mark


More information about the freebsd-stable mailing list