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