aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched/cpufreq_schedutil.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
index 69571ee6a175..a07f17a5f38f 100644
--- a/kernel/sched/cpufreq_schedutil.c
+++ b/kernel/sched/cpufreq_schedutil.c
@@ -84,13 +84,18 @@ static bool sugov_should_update_freq(struct sugov_policy *sg_policy, u64 time)
84 * 84 *
85 * However, drivers cannot in general deal with cross-cpu 85 * However, drivers cannot in general deal with cross-cpu
86 * requests, so while get_next_freq() will work, our 86 * requests, so while get_next_freq() will work, our
87 * sugov_update_commit() call may not. 87 * sugov_update_commit() call may not for the fast switching platforms.
88 * 88 *
89 * Hence stop here for remote requests if they aren't supported 89 * Hence stop here for remote requests if they aren't supported
90 * by the hardware, as calculating the frequency is pointless if 90 * by the hardware, as calculating the frequency is pointless if
91 * we cannot in fact act on it. 91 * we cannot in fact act on it.
92 *
93 * For the slow switching platforms, the kthread is always scheduled on
94 * the right set of CPUs and any CPU can find the next frequency and
95 * schedule the kthread.
92 */ 96 */
93 if (!cpufreq_can_do_remote_dvfs(sg_policy->policy)) 97 if (sg_policy->policy->fast_switch_enabled &&
98 !cpufreq_can_do_remote_dvfs(sg_policy->policy))
94 return false; 99 return false;
95 100
96 if (sg_policy->work_in_progress) 101 if (sg_policy->work_in_progress)