On Thu, Feb 25, 2016 at 5:40 AM, Paul E. McKenney <[email protected]> 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

