Re: [PATCH tip/core/rcu 12/15] rcu: Remove redundant memory barrierfrom __call_rcu()

From: Josh Triplett
Date: Fri Aug 31 2012 - 14:40:58 EST


On Fri, Aug 31, 2012 at 11:30:35AM -0700, Josh Triplett wrote:
> On Thu, Aug 30, 2012 at 11:56:25AM -0700, Paul E. McKenney wrote:
> > From: "Paul E. McKenney" <paul.mckenney@xxxxxxxxxx>
> >
> > The first memory barrier in __call_rcu() is supposed to order any
> > updates done beforehand by the caller against the actual queuing
> > of the callback. However, the second memory barrier (which is intended
> > to order incrementing the queue lengths before queuing the callback)
> > is also between the caller's updates and the queuing of the callback.
> > The second memory barrier can therefore serve both purposes.
> >
> > This commit therefore removes the first memory barrier.
>
> I don't see any such second memory barrier in __call_rcu(), at least not
> in current master. Right after this smp_mb(), __call_rcu() enqueues the
> callback and increments the queue length.
>
> Did you add a second memory barrier in some other patch that hasn't made
> it upstream yet? If so, could you note that patch dependency explicitly
> in the commit message?

Argh, nevermind. Looked at the wrong branch, not master. Looking at
master, I do indeed see the second smp_mb().

Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
--
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/