Subject: 4.0BETA_2 vs -current
To: None <tech-kern@netbsd.org>
From: Andrew Doran <ad@netbsd.org>
List: tech-kern
Date: 03/02/2007 15:40:39
Hi,

Someone asked me to post benchmarks. I don't have a lot of free time
at the moment so they are fairly basic. The first is of single runs
of make cleandir on an empty source tree, and shows nothing unexpected:

    http://www.netbsd.org/~ad/misc/cleandir.png

The second is the MySQL supersmack benchmark, but only the select test.
The select/update test locks my machine up solidly when running 4.0BETA_2
with PTHREAD_CONCURRENCY > 1.

    http://www.netbsd.org/~ad/misc/mysql.png

The spikes with 4.0BETA_2 are fully reproducible for me. I pushed it a bit
further, and at about 32 client processes -current starts to fall off in
the uniprocessor case. I have a few ideas as to why that is happening and
will look into it when I have the time.

Two things that would be of real use in the 1:1 case are a port of the
kernel's mutexes / RW locks to the pthread library for machines that can
do CAS, and user level preemption control.

I tried doing a few more tests, one on Tomcat and on Apache with the
worker MPM. The TomCat app I had disables keepalive so it's not really
useful to test with, and the Apache test didn't get too far. There is an
undiscovered race somewhere in the kernel, in the pthread library, or
in Apache itself that prevented me from getting numbers from it.

Andrew