A bit late, but some more data points.
90MHz Pentium, FreeBSD 2.2.7
mode 0 60.80 ns/loop nproc=1 lcks=EMPTY
mode 1 91.13 ns/loop nproc=1 lcks=no
mode 2 91.11 ns/loop nproc=2 lcks=no
mode 3 242.59 ns/loop nproc=1 lcks=yes
mode 4 242.69 ns/loop nproc=2 lcks=yes
mode 5 586.27 ns/loop
According to Matthew Dillon:
Wow, now that *is* expensive! The K6 must be implementing it in
microcode for it to be that bad.
K6-200:
244 [21:57] roberto@keltia:src/C ./locktest 0
...
empty 26.84 ns/loop
1proc 22.62 ns/loop
2proc 22.64 ns/loop
empty w/locks 17.58 ns/loop
1proc
Matthew Dillon [EMAIL PROTECTED] wrote:
:mode 1 17.99 ns/loop nproc=1 lcks=no
:mode 3 166.33 ns/loop nproc=1 lcks=yes
...
:This is a K6-2 350. Locks are pretty expensive on them.
Wow, now that *is* expensive! The K6 must be implementing it in
microcode for it to be that bad.
I