Re: [Xen-devel] [PATCH 00/10] [PATCH RFC V2] Paravirtualized ticketlocks

From: Jan Beulich
Date: Wed Sep 28 2011 - 11:55:32 EST


>>> On 28.09.11 at 17:38, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Tue, Sep 27, 2011 at 9:44 AM, Jeremy Fitzhardinge <jeremy@xxxxxxxx> wrote:
>>
>> I guess it comes down to throwing myself on the efficiency of some kind
>> of fence instruction. I guess an lfence would be sufficient; is that
>> any more efficient than a full mfence? At least I can make it so that
>> its only present when pv ticket locks are actually in use, so it won't
>> affect the native case.
>
> Please don't play with fences, just do the final "addb" as a locked
> instruction.
>
> In fact, don't even use an addb, this whole thing is disgusting:
>
> movzwl (%rdi),%esi (esi:=0x0400)
> addb $0x2,(%rdi) (LOCAL copy of lock is now: 0x0402)
> movzwl (%rdi),%eax (local forwarding from previous store: eax := 0x0402)
>
> just use "lock xaddw" there too.

I'm afraid that's not possible, as that might carry from the low 8 bits
into the upper 8 ones, which must be avoided.

Jan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/