On 06/07/17 12:15, Viresh Kumar wrote: > On 06-07-17, 11:59, Juri Lelli wrote: >> On 06/07/17 15:52, Viresh Kumar wrote:
[...] >> >> If that's the case I'm wondering however if we need explicit >> synchronization though. Otherwise both threads can read the mask as >> full, clear only their bits and not schedule the workfn? > > Maybe not as the policies are created one by one only, not concurrently. > >> But, can the policies be concurrently initialized? Or is the >> initialization process serialized or the different domains? > > There can be complex cases here. For example consider this. > > Only the little CPUs are brought online at boot. Their policy is set and they > are cleared from the cpus_to_visit mask. Now we try to bring any big CPU > online > and at the same time try changing min/max from sysfs for the LITTLE CPU > policy. > > The notifier may get called concurrently here I believe and cause the problem > I > mentioned earlier. > I chatted with Juri and your proposed fix to do the unregister before the free makes sense to us. Thanks for spotting this! I will change in the next version.

