[fedora-arm] ARMv5 and atomic operations
Chris Tyler
chris at tylers.info
Mon Apr 23 02:34:07 UTC 2012
On Sun, 2012-04-22 at 18:16 -0700, Brendan Conoboy wrote:
> As we get closer to having 100% package coverage in F17-ARM we're
> running into harder build failures due to the limitations of the chips
> we're building for. The problem I've noticed on many of the recent
> failures is due to the lack of atomic operations (These didn't arrive
> until ARMv6).
What are some examples of these?
> How do we want to handle this? I see a few options:
>
> 1. Abandon armv5 and move to armv6 where some of the operations we need
> are available. This will still support the raspberry pi- what about
> kirkwood *plugs?
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.
> 2. Excludearch armv5tel from the affected packages since they'll never
> work atomically.
>
> 3. Accept that these packages simply won't be available to 32 bit Fedora
> systems (this is the result of inaction).
>
> 4. Pretend operations are atomic when they are not.
>
> 5. Create magic patch that implements atomic operations through software.
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?
-Chris
More information about the arm
mailing list