This function compiles to 201 bytes of machine code. 2 callsites.
This function has a spinlocked code section,
which is significantly more expensive than call/return overhead.
Signed-off-by: Denys Vlasenko
CC: Konrad Rzeszutek Wilk
CC: Roger Pau Monné
CC: xen-de...@lists.xenproject.org
CC
This function compiles to 170 bytes of machine code. 7 callsites.
This function has a spinlocked code section,
which is significantly more expensive than call/return overhead.
Signed-off-by: Denys Vlasenko
CC: Konrad Rzeszutek Wilk
CC: Roger Pau Monné
CC: xen-de...@lists.xenproject.org
CC
On Tue, Feb 10, 2015 at 2:18 PM, Denys Vlasenko
wrote:
> while (1) {
> if (READ_ONCE(lock->tickets.head) != TICKET_TAIL(val))
> cpu_relax();
> }
Doh should be
while (READ_ONCE(lock->tickets.head) != TICKET_TAIL(val)
On Tue, Feb 10, 2015 at 10:30 AM, Raghavendra K T
wrote:
> On 02/10/2015 06:23 AM, Linus Torvalds wrote:
>> add_smp(&lock->tickets.head, TICKET_LOCK_INC);
>> if (READ_ONCE(lock->tickets.tail) & TICKET_SLOWPATH_FLAG) ..
>>
>> into something like
>>
>> val = xadd((&lock->t