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

Reply via email to