Re: [PATCH v4 14/16] locking/rwsem: Guard against making count negative

From: Peter Zijlstra
Date: Fri Apr 19 2019 - 15:31:16 EST


On Fri, Apr 19, 2019 at 03:03:04PM +0200, Peter Zijlstra wrote:
> On Fri, Apr 19, 2019 at 02:02:07PM +0200, Peter Zijlstra wrote:
> > On Fri, Apr 19, 2019 at 12:26:47PM +0200, Peter Zijlstra wrote:
> > > I thought of a horrible horrible alternative:
> >
> > Hurm, that's broken as heck. Let me try again.
>
> So I can't make that scheme work, it all ends up wanting to have
> cmpxchg().
>
> Do we have a performance comparison somewhere of xadd vs cmpxchg
> readers? I tried looking in the old threads, but I can't seem to locate
> it.
>
> We need new instructions :/ Or more clever than I can muster just now.

In particular, an (unsigned) saturation arithmetic variant of XADD would
be very nice to have at this point.