Re: Why Semaphore Hardware-Dependent?

Christoph Lameter
2006-08-29T17:36:28Z

On Tue, 29 Aug 2006, Andi Kleen wrote:

> On Tuesday 29 August 2006 17:56, Christoph Lameter wrote:
> > On Tue, 29 Aug 2006, David Howells wrote:
> >
> > > Because i386 (and x86_64) can do better by using XADDL/XADDQ.
> >
> > And Ia64 would like to use fetchadd....
>
> This might be a dumb question, but I would expect even on altix
> with lots of parallel faulting threads rwsem performance be basically
> limited by aquiring the cache line and releasing it later to another CPU.

Correct. However, a cmpxchg may have to acquire that cacheline multiple
times in a highly contented situation. A fetchadd acquires the cacheline
only once.

> Do you really think it will make much difference what particular atomic
> operation is used? The basic cost of sending the cache line over the
> interconnect should be all the same, no? And once the cache line is local
> it should be reasonably fast either way.

We have long tuned that portion of the code and therefore we are
skeptical of changes. But if we cannot measure a difference to a
generic implemenentation then it would be okay.