On Fri, Jul 19, 2002 at 02:38:29PM +0200, Johannes Stezenbach wrote:
On Fri, Jul 12, 2002 at 03:04:07PM +0200, Kevin D. Kissell wrote:
I'm benchmarking some code that does lots of
semaphores, and with the libc from the "standard"
MIPS/SGI RH 7.1 distribution, those are done using
sysmips, in the interest of universality.
I'm working on a platform without LL/SC, an embedded system/SOC
with a NEC VR4120A CPU core. To find out the effect of sysmips
vs. emulated LL/SC vs. the branch-likely trick posted by
Kevin D. Kissell <kevink@mips.com> on Tue, 22 Jan 2002 18:16:25 +0100
I created an experimental patch for glibc-2.2.5 which allows
run-time switching of the _test_and_set() and __compare_and_swap()
implementation based on the presence of two "switch files" in /etc/.
...
For lack of a better benchmark I used some of the examples from
glibc-2.2.5/linuxthreads/Examples. The numbers are from the third
of three successive runs of 'time exN >/dev/null'.
I did some more benchmarking with a test application based on
gtk+-directfb (http://directfb.org/). The benchmark does not
include GUI stuff, but rather reading of lots of external data
into internal data structures (which are GLib-2.0 GObjects).
The test application has three threads, but nearly all processing
is done in the main thread.
I think that the numbers are meaningful for our type of application.
sysmips:
real 1m19.358s
user 0m28.150s
sys 0m47.250s
LL/SC emulation:
real 0m41.246s
user 0m25.390s
sys 0m12.240s
branch-likely hack (hm, still without kernel patch...):
real 0m25.126s
user 0m17.240s
sys 0m2.310s