Could you post up some of your ideas to achieve these speedups? I'm
fascinated by this area, because it is such a crucial one if freebsd
is to perform well after all the work in unwinding giant.
Mostly boring stuff like making sure that important mutexes live in
their own cache line to avoid false sharing and tweaking some code to
avoid unnecessary invalidation of cache lines.
There are also some architecture specific assembly tweaks that I like to
try. Maybe a few hacks for dynamic run time patching to allow processor
specific and SMP/UP optimizations on a GENERIC kernel.
Replacing cli/sti with a spl() style interrupt enabler/disabler for i386
is also something I would like to test to speed up spin locks.
Restoring single thread wakeup for sleep mutexes is also on the list.
Once I start digging I will probably find more things to try.
On Tue, 23 Nov 2004 11:25:04 -0500, Stephan Uphoff <up...@tree.com> wrote:
I have a bunch of ideas to speed up spin and mutex locks somewhat.
For this I need benchmarks to test different modifications.
While the micro-benchmark from rwatson@ is a good way to quickly test
modifications to weed out unlikely candidates - jhb@ tests have shown
that micro and macro-benchmarks do not always show the same result.
Running benchmarks and booting takes a lot of time.
Since this is NOT one my favorite tasks I want to run generally accepted
benchmarks so I can test (boot) each modification exactly once for each
If you think I should run certain benchmarks with certain parameters
please tell me BEFORE I start testing!