[PATCH v5 3/8] qspinlock, x86: Add x86 specific optimization for 2 contending tasks

Peter Zijlstra
2014-02-28T17:37:12Z

On Fri, Feb 28, 2014 at 08:25:24AM -0800, Linus Torvalds
wrote:
> On Feb 28, 2014 1:30 AM, "Peter Zijlstra" <peterz at
infradead.org> wrote:
> >
> > At low contention the cmpxchg won't have to be retried (much) so
using
> > it won't be a problem and you get to have arbitrary atomic ops.
>
> Peter, the difference between an atomic op and *no* atomic op is huge.

I know, I'm just asking what the difference is between the xchg() - and
atomic op, and an cmpxchg(), also an atomic op.

The xchg() makes the entire thing somewhat difficult. Needing to fixup
all kinds of states if we guessed wrong about what was in the variables.

> And Waiman posted numbers for the optimization. Why do you argue with
> handwaving and against numbers?

I've asked for his benchmark..