• Viresh Kumar's avatar
    cpufreq: schedutil: Always process remote callback with slow switching · c49cbc19
    Viresh Kumar authored
    The frequency update from the utilization update handlers can be divided
    into two parts:
    
    (A) Finding the next frequency
    (B) Updating the frequency
    
    While any CPU can do (A), (B) can be restricted to a group of CPUs only,
    depending on the current platform.
    
    For platforms where fast cpufreq switching is possible, both (A) and (B)
    are always done from the same CPU and that CPU should be capable of
    changing the frequency of the target CPU.
    
    But for platforms where fast cpufreq switching isn't possible, after
    doing (A) we wake up a kthread which will eventually do (B). This
    kthread is already bound to the right set of CPUs, i.e. only those which
    can change the frequency of CPUs of a cpufreq policy. And so any CPU
    can actually do (A) in this case, as the frequency is updated from the
    right set of CPUs only.
    
    Check cpufreq_can_do_remote_dvfs() only for the fast switching case.
    Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    c49cbc19
cpufreq_schedutil.c 18.8 KB