Questions on the scheduler

RW mlt01 at mlists.homeunix.com
Mon Sep 24 10:44:20 PDT 2007


On Mon, 24 Sep 2007 10:23:40 -0400
"Jim Stapleton" <stapleton.41 at gmail.com> wrote:

> I've heard a lot of winging about the FreeBSD scheduler from Linux
> people, and even saw that is the reason for one fork off of FreeBSD.
> 
> In my experience, I've gotten better performance out of FreeBSD on
> single or multi-CPU systems than I have out of Linux or Windows (or
> really any other system).
> 
> Are these complains I hear of outdated, 

Probably. I think you are talking about SMP performance. A few  years
ago FreeBSD had good performance on single CPUs, but didn't scale very
well onto machines with multiple CPUs, unlike Linux and Solaris. The
kernel wasn't really designed to work this way and a lot of the code was
protected by a single "Giant Lock". Companies like Yahoo and Hotmail
(pre-Microsoft) tended to use FreeBSD where the load could be shared
between many low-end machines.

The FreeBSD response was to make the kernel more SMP friendly with
finer-grained locking, and to bring-in the ULE scheduler. Dragonfly BSD
was a fork off 4.x by people who thought a more radical kernel rewrite
was needed. Their kernel avoids a lot of the locking problems by using
message queues.

As I understand it the locking problems were addressed in 5/6-current.
There are still problems with the ULE scheduler in 6.x, but they have
been fixed in 7-current, and things scale roughly as they should with
multiple cores/cpus.


More information about the freebsd-questions mailing list