Re: [RFCv5 PATCH 01/46] arm: Frequency invariant scheduler load-tracking support

Peter Zijlstra
2015-08-11T09:28:14Z

On Tue, Jul 07, 2015 at 07:23:44PM +0100, Morten Rasmussen wrote:
> +static DEFINE_PER_CPU(atomic_long_t, cpu_max_freq);
> +DEFINE_PER_CPU(atomic_long_t, cpu_freq_capacity);

> + atomic_long_set(&per_cpu(cpu_freq_capacity, cpu), capacity);
> + unsigned long max = atomic_long_read(&per_cpu(cpu_max_freq, cpu));
> + atomic_long_set(&per_cpu(cpu_max_freq, i), policy->max);
> + unsigned long curr = atomic_long_read(&per_cpu(cpu_freq_capacity, cpu));

The use of atomic_long_t here is entirely pointless.

In fact (and someone needs to go fix this), its worse than
WRITE_ONCE()/READ_ONCE().