On Jun 12, 2009, at 7:02 AM, Paul Mackerras wrote:
32-bit powerpc processors have no 64-bit atomic instructions, but we
will
need atomic64_t in order to support the perf_counter subsystem on 32-
bit
processors.
This adds an implementation of 64-bit atomic operations using hashed
spinlocks to provide atomicity. For each atomic operation, the
address
of the atomic64_t variable is hashed to an index into an array of 16
spinlocks. That spinlock is taken (with interrupts disabled) around
the
operation, which can then be coded non-atomically within the lock.
On UP, all the spinlock manipulation goes away and we simply disable
interrupts around each operation. In fact gcc eliminates the whole
atomic64_lock variable as well.
Signed-off-by: Paul Mackerras <pau...@samba.org>
---
Compile-tested only at this stage, which is why it's [RFC].
any reason not to make this lib/asm generic? Seems like it isn't ppc
specific.
- k
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev