Re: [PATCH RFC tip/core/rcu 12/15] lib/assoc_array: Remove smp_read_barrier_depends()

From: Paul E. McKenney
Date: Wed Oct 11 2017 - 13:34:34 EST


On Wed, Oct 11, 2017 at 07:11:37PM +0200, Peter Zijlstra wrote:
> On Wed, Oct 11, 2017 at 10:06:31AM -0700, Paul E. McKenney wrote:
>
> > This, you mean?
> >
> > data = rcu_dereference_sched(*this_cpu_ptr(&cpufreq_update_util_data));
>
> Yep, that one. Although in my tree it now appears to look like:
>
> data = rcu_dereference_sched(*per_cpu_ptr(&cpufreq_update_util_data,
> cpu_of(rq)));

So in the non-RCU case, we could simply replace rcu_dereference_sched()
with ACCESS_ONCE(), right? Thus no need to change the per-CPU
primitives. Especially given that most uses of per-CPU variables
don't even need protection from load/store tearing, let alone
protection from Alpha.

Or am I missing something subtle here?

Thanx, Paul