Re: [PATCH tip/core/rcu 02/14] documentation: Fix control dependency and identical stores

From: Jianyu Zhan
Date: Thu Feb 25 2016 - 01:41:51 EST


On Thu, Feb 25, 2016 at 5:40 AM, Paul E. McKenney
<paulmck@xxxxxxxxxxxxxxxxxx> wrote:
> So ordering between the read from "a" and the write to "b" is still
> preserved. The reason this works is that the smp_mb() does all the
> ordering, so the fact that the control dependency has been eliminated
> is irrelevant.


Thanks, Paul, nice clarification.

I thinks this example qualifies as an good example to demonstrate the subtle
scope of effect of these two level barriers.

A vivid example is always better for understanding instead of learning
"barrier() is compiler-level
barrier, and smp_*mb() is processor-level barrier" by rote ,
especially for the new comers to memory-barriers.txt. ;-)




Thanks,
Jianyu Zhan