On Thu, Sep 18, 2014 at 02:32:25PM -0400, Nicolas Pitre wrote:
On Thu, 18 Sep 2014, Paul E. McKenney wrote:
So what is it that you really need to do here?
In short, we don't want the cpufreq data to go away (see the 2 scenarios above) while the scheduler is looking at it. The scheduler uses the provided accessors (see patch 2/2) so we can put any protection mechanism we want in them. A simple spinlock could do just as well which should be good enough.
rq->lock disables interrupts so on that something like kick_all_cpus_sync() will guarantee what you need -- wake_up_all_idle_cpus() will not.