Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Jan 2001 11:49:35 -0800
From:      Jason Evans <jasone@canonware.com>
To:        smp@freebsd.org
Subject:   State of the SMP project (12 January 2001)
Message-ID:  <20010112114935.G52004@canonware.com>

next in thread | raw e-mail | index | archive | help
The SMP project continues.  We're still making significant forward progress,
though we have yet to hit the point where the payoff of all this work becomes
evident.

The Giant lock is still protecting the vast majority of the kernel, and the
reason that it is taking so long to "push down" locking is that Giant is
essentially a code lock, whereas the locking work that we're doing now uses
data locks.  That means that large amounts of work are necessary to lock
all the data structures that are accessed in a particular code path before
Giant protection of the code can be removed.

John Baldwin (with some help from Jake Burkholder) has been locking
accesses to various fields of the proc structure.  If this sounds simple,
take a look at a recent revision of src/sys/proc.h to get an idea of the
complexity, then think about all the places that processes are
manipulated in the kernel. =)

Jake Burkholder has been working on making the kernel preemptive, and is
now doing some major cleanups of the scheduler as part of that and other
SMP works in progress.  Once he is done with that, we plan to get priority
propagation working shortly thereafter.  At that point, it will be possible
to remove the priority argument to tsleep()/msleep()/cv_*wait*(), since
artificial priority boosts won't be necessary anymore.  Of course, this
will cause a ripple effect through the kernel APIs as we remove the
obsolete priority arguments wherever they are passed.

The cv (condition variable) code is basically ready to commit, but needs
tested again after changes were made due to -arch feedback.

John Baldwin and I came up with a shared/exclusive lock API a couple of
days ago.  It's implemented now, and after I have tested and documented it,
I'll send a request for review to -arch.

Jake wrote a first cut at a cmpxchgl emulator for 386's so that we can make
the atomic.h API fully usable to userland.  One of these days I'll do some
testing of it and get it committed.

As always, the SMP project page is at:

http://people.freebsd.org/~jasone/smp/

Right now, we have precious few people doing the heavy lifting, so if you
think progress is too slow, think about how you can help to speed things
up.

Jason Evans
SMP Project Manager


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010112114935.G52004>