[PATCH] Convert powerpc simple spinlocks into ticket locks
Peter Zijlstra
peterz at infradead.org
Fri Feb 7 21:45:30 EST 2014
On Fri, Feb 07, 2014 at 11:31:39AM +0100, Peter Zijlstra wrote:
> Anyway, what might work is something like (please forgive my ppc asm, I
> can barely read the thing, I've never before attempted writing it):
>
> lock:
> 1: lharx %0, 0, &head
> mov %1, %0
> addic %0, %0, 1
> stwcd %0, 0, &head
> bne- 1b
> 2: lhax %0, 0, &tail
That might need to be lhz too, I'm confused on all the load variants.
> lwsync
> cmp 0, %0, %0
cmp 0, %0, %1
So we compare the &tail load to the xadd return %1 above.
> bne- 2b
>
>
> unlock:
> lhz %0, 0, &tail
> addic %0, %0, 1
> lwsync
> sth %0, 0, &tail
>
More information about the Linuxppc-dev
mailing list