Re: [PATCH -v3 7/8] locking: Move smp_cond_load_acquire() and friends into asm-generic/barrier.h

From: Peter Zijlstra
Date: Wed Jun 01 2016 - 13:13:51 EST


On Wed, Jun 01, 2016 at 03:07:14PM +0100, Will Deacon wrote:
> On Wed, Jun 01, 2016 at 02:45:41PM +0200, Peter Zijlstra wrote:
> > On Wed, Jun 01, 2016 at 01:13:33PM +0100, Will Deacon wrote:
> > > On Wed, Jun 01, 2016 at 02:06:54PM +0200, Peter Zijlstra wrote:
> >
> > > > Works for me; but that would loose using cmpwait() for
> > > > !smp_cond_load_acquire() spins, you fine with that?
> > > >
> > > > The two conversions in the patch were both !acquire spins.
> > >
> > > Maybe we could go the whole hog and add smp_cond_load_relaxed?
> >
> > What about say the cmpxchg loops in queued_write_lock_slowpath()
> > ? Would that be something you'd like to use wfe for?
>
> Without actually running the code on real hardware, it's hard to say
> for sure. I notice that those loops are using cpu_relax_lowlatency
> at present and we *know* that we're next in the queue (i.e. we're just
> waiting for existing readers to drain), so the benefit of wfe is somewhat
> questionable here and I don't think we'd want to add that initially.

OK, we can always change our minds anyway. OK I'll respin/fold/massage
the series to make it go away.