Re: Why Semaphore Hardware-Dependent?

Andi Kleen
2006-08-29T10:57:12Z

On Tuesday 29 August 2006 12:05, David Howells wrote:

>Because i386 (and x86_64) can do better by using XADDL/XADDQ.

x86-64 has always used the spinlock based version.

> On i386, CMPXCHG also ties you to what registers you may use for what to some
> extent.

We've completely given up these kinds of micro optimization for spinlocks,
which are 1000x as critical as rwsems. And nobody was able to benchmark
a difference.

It is very very likely nobody could benchmark a difference on rwsems either.

While I'm sure it's an interesting intellectual exercise to do these
advanced rwsems it would be better for everybody else to go for a single
maintainable C implementation.

-Andi