On 19-02-21, 19:45, Yue Hu wrote:
> We will set next_f to next_freq(previous freq) if next_f is
> reduced for busy CPU. Then the next sugov_update_next_freq() will check
> if next_freq matches next_f if need_freq_update is not set.
> Obviously, we will do nothing for the case. And The related check to
> fast_switch_enabled and raw_spin_{lock,unlock} operations are
> unnecessary.

Right, but we will still need sugov_update_next_freq() to have the
same implementation regardless and so I am not sure if we should add
this change:

diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
index 41e498b0008a..7289e1adab73 100644
--- a/kernel/sched/cpufreq_schedutil.c
+++ b/kernel/sched/cpufreq_schedutil.c
@@ -362,6 +362,9 @@ static void sugov_update_single_freq(struct 
update_util_data *hook, u64 time,
         * recently, as the reduction is likely to be premature then.
         */
        if (sugov_cpu_is_busy(sg_cpu) && next_f < sg_policy->next_freq) {
+               if (!sg_policy->need_freq_update)
+                       return;
+
                next_f = sg_policy->next_freq;
 
                /* Restore cached freq as next_freq has changed */


-- 
viresh

Reply via email to