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>