lkml.org 
[lkml]   [2014]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] Convert powerpc simple spinlocks into ticket locks
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
>


\
 
 \ /
  Last update: 2014-02-07 12:01    [W:1.218 / U:0.328 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site