[fedora-arm] ARMv5 and atomic operations

Michael Hope michael.hope at linaro.org
Mon Apr 23 03:03:06 UTC 2012


On 23 April 2012 14:41, Brendan Conoboy <blc at redhat.com> wrote:
> On 04/22/2012 07:34 PM, Chris Tyler wrote:
>>
>> What are some examples of these?
>
>
> First is jemalloc which now has a not-entirely satisfactory patch in place.
>  The one provoking this email is openmpi.  It's wanting, but missing, dmb,
> ldrex{,d}, strex{,d}.  There are others.  Basically when you see a package
> working on armv7hl but failing on armv5tel there's a good chance it's due to
> missing instructions.

Hi Brendan.  ARMv5 and earlier has SWB while ARMv6 and later has the
much better LDREX family.  You run into trouble when the package uses
inline assembler and assumes a particular architecture.

I recommend using the GCC sync builtins[1] as they'll generate the
right instructions for the architecture and fall back to the kernel
helpers when needed.  We've done similar in Linaro with the ARMv6 to
Thumb-2 transition.

-- Michael
[1] http://gcc.gnu.org/onlinedocs/gcc/_005f_005fsync-Builtins.html


More information about the arm mailing list