Subject: MP safe syscall changes
To: None <tech-smp@netbsd.org>
From: Andrew Doran <ad@netbsd.org>
List: tech-smp
Date: 02/05/2007 16:14:18
Hi,

I just made a bunch more syscalls MP safe on the newlock2 branch, and ran a
quick test on this machine: 4 x 700MHz P-III Xeon, 1MB L2 cache per CPU, 2GB
RAM. Cleaning out a clean source tree with make -j16 cleandir:

                real            user            system

MP, newlock2    103.55s         174.51s         246.26s
MP, HEAD        114.21s         175.46s         287.01s
UP, newlock2    198.34s         152.67s         61.30s
UP, HEAD        199.18s         150.60s         59.20s

The results aren't astounding and are not particularly accurate (system and
user time are subject to sampling error), but the indicated difference
relative to HEAD is:

                real            system

MP              -9%             -14%
UP              -0.5%           +3.5%

At a guess, part of the additional two seconds system time in the UP case is
a result of all the jumping through hoops that needs to be done to support
both locking against interrupt handlers and LWPs. With interrupts as threads
that cost can be eliminated..

Cheers,
Andrew