[fedora-arm] ARMv5 and atomic operations

Brendan Conoboy blc at redhat.com
Mon Apr 23 02:41:37 UTC 2012


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.

> That would kill the older plugs -- anything below a d2plug.
>
> However: do we care? Much? Going to v6 would let us optimize better for
> the Raspi, which will have greater market penetration than the plugs
> when existing orders are filled. Otoh, it's a whole 'nuther rebuild.

Yeah, it's the "do we care?" question I'd like to hear back on.  This 
may be a case of famous last words but... I don't think an armv6tel 
rebuild would bad terribly hard to do, assuming rpm is setup to handle 
it.  It's the same ABI, we just get some additional opcodes.  Old 
packages will continue to work.

> 6. There is the kernel's "user space atomic helper" (kuser_cmpxchg64) at
> 0xffff0f60, see Documentation/arm/kernel_user_helpers.txt. The kernel
> puts an instruction sequence here tuned for the current arch that can be
> called by userland to provide an atomic compare/exchange -- if it can be
> done natively, the instruction sequence does that, otherwise it does a
> syscall (with IRQ protection etc). Would this solve the problems you've
> identified?

Perhaps somebody with more ARM experience can comment on this.

-- 
Brendan Conoboy / Red Hat, Inc. / blc at redhat.com


More information about the arm mailing list