2013/2/26 Vincent Guittot <vincent.guit...@linaro.org>: > On 26 February 2013 14:16, Frederic Weisbecker <fweis...@gmail.com> wrote: >> 2013/2/22 Vincent Guittot <vincent.guit...@linaro.org>: >>> I wanted to avoid having to use the sd pointer for testing NOHZ_IDLE >>> flag because it occurs each time we go into idle but it seems to be >>> not easily feasible. >>> Another solution could be to add a synchronization step between >>> rcu_assign_pointer(dom 1, NULL) and create new domain to ensure that >>> all pending access to old sd values, has finished but this will imply >>> a potential delay in the rebuild of sched_domain and i'm not sure >>> that it's acceptable
Ah I see what you meant there. Making a synchronize_rcu() after setting the dom to NULL, on top of which we could work on preventing from any concurrent nohz_flag modification. But cpu hotplug seem to become a bit of a performance sensitive path this day. Ok I don't like having a per cpu state in struct sched domain but for now I can't find anything better. So my suggestion is that we do this and describe well the race, define the issue in the changelog and code comments and explain how we are solving it. This way at least the issue is identified and known. Then later, on review or after the patch is upstream, if somebody with some good taste comes with a better idea, we consider it. What do you think? _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev