Re: [PATCH 0/24] make atomic_read() behave consistently across all architectures
From: Segher Boessenkool <hidden>
Date: 2007-08-21 14:45:07
Also in:
linux-arch, lkml
From: Segher Boessenkool <hidden>
Date: 2007-08-21 14:45:07
Also in:
linux-arch, lkml
quoted
quoted
quoted
And no, RMW on MMIO isn't "problematic" at all, either. An RMW op is a read op, a modify op, and a write op, all rolled into one opcode. But three actual operations.Maybe for some CPUs, but not all. ARM for instance can't use the load exclusive and store exclusive instructions to MMIO space.Sure, your CPU doesn't have RMW instructions -- how to emulate those if you don't have them is a totally different thing.Let me say it more clearly: On ARM, it is impossible to perform atomic operations on MMIO space.
It's all completely beside the point, see the other subthread, but... Yeah, you can't do LL/SC to MMIO space; ARM isn't alone in that. You could still implement atomic operations on MMIO space by taking a lock elsewhere, in normal cacheable memory space. Why you would do this is a separate question, you probably don't want it :-) Segher