Last chance for threadlock review.

Jeff Roberson jroberson at chesapeake.net
Fri Jun 1 06:25:23 UTC 2007


Next week I intend to commit the final scheduler lock decomposition patch. 
Before that time I intend to:

1)  Continue to test more variations on schedulers, architectures, 
preemption, debugging features, and a buildworld or two.

2)  Post the patch to current@ to appeal for more testers.  Kris Kennaway 
and myself have been hammering on it pretty hard but there are always 
cases that are missed when it's only two individuals.

3)  Solicit for more thorough review here!  I haven't had much feedback on 
the difficult parts of the patch.  I really would like more eyes on it. 
Some things to focus on:
a)  Turnstile locking
b)  sleepqueue locking
c)  blocked lock
d)  thread_lock()
e)  New cpu_switch() argument.  I assume adding an argument to a function 
doesn't effect the assembly implementation if it is unused.

After this diff goes in I will provide a copy of ULE for download that 
actually implements per-cpu scheduler locks.   So far the system has been 
fully stable with my threadlock diff, however, there are still some 
problems with the per-cpu locks in ULE.  There are also some significant 
performance wins depending on the workload.

I also intend to produce some follow-on patches to improve rusage and add 
more architecture support for the new cpu_switch().  Architectures that do 
not implement the special cpu_switch() can not take advantage of the 
per-cpu ULE but otherwise work.

http://people.freebsd.org/~jeff/threadlock.diff

Thanks,
Jeff


More information about the freebsd-arch mailing list