> On my machine the various implemtations have the following runtimes:
> (with a modified s_lock test that does not sleep, and
> SPINS_PER_DELAY 100000)
>
> with LinuxPPC asm: 1m5.16s (Which may not work relyably on SMP)
> with cs: 1m12.25s
> with fetch_and_or: 1m26.71s
Aah, there we have it. Same test on a slower 4Way SMP:
with LinuxPPC asm: 2m9.340s
with cs: 10m11.15s
with fetch_and_or: 3m55.19s
These numbers look more alarming.
Unfortunately the man page for fetch_and_or does not mention anything
about using it as a locking primitive. It is documented atomic though,
so I guess that is enough.
Andreas