Re: [PATCH] WorkStruct: Implement generic UP cmpxchg() where an arch doesn't support it

Russell King
2006-12-08T17:18:31Z

On Fri, Dec 08, 2006 at 09:06:00AM -0800, Christoph Lameter wrote:
> On Fri, 8 Dec 2006, David Howells wrote:
>
> > > It is the most universal atomic instruction that I know of.
> >
> > I think TAS-type things and XCHG-type things are more common.
>
> Huh? The most popular architectures are i386 x86_64 sparc ia64 etc which
> all have one or the other form of cmpxchg (some issues with early sparc
> and i386).

According to the latest figures, 621 million ARM processors were
shipped in Q3, which equates to about 78 processors per second.
(taken from http://www.arm.com/news/15300.html).

I'd like to know the figures for these other so-called "popular
architectures".

But in any case that's an utterly irrelevant point to the argument
at hand.

> > In fact I think more things have LL/SC than have CMPXCHG.
>
> LL/SC can be easily used to come up with a cmpxchg equivalent.

As proven previously the reverse is also true. And as shown previously
the cheaper out of the two for all platforms is the LL/SC based
implementation, where the architecture specific implementation can
be _either_ LL/SC based or cmpxchg based depending on what is
supported in their hardware.

I'm going to keep saying this until people get it.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/