Re: [PATCH 04/14] sched: cpufreq: Move sched_cpufreq_governor_change()

From: Pavan Kondeti
Date: Fri May 08 2020 - 01:35:43 EST


On Thu, May 07, 2020 at 07:10:02PM +0100, Quentin Perret wrote:
> CPUFreq calls into sched_cpufreq_governor_change() when switching
> governors, which triggers a sched domain rebuild when entering or
> exiting schedutil.
>
> Move the function to sched/cpufreq.c to prepare the ground for the
> modularization of schedutil.
>
> Signed-off-by: Quentin Perret <qperret@xxxxxxxxxx>
> ---
> kernel/sched/cpufreq.c | 33 ++++++++++++++++++++++++++++++++
> kernel/sched/cpufreq_schedutil.c | 33 --------------------------------
> 2 files changed, 33 insertions(+), 33 deletions(-)
>
> diff --git a/kernel/sched/cpufreq.c b/kernel/sched/cpufreq.c
> index 7c2fe50fd76d..82f2dda61a55 100644
> --- a/kernel/sched/cpufreq.c
> +++ b/kernel/sched/cpufreq.c
> @@ -75,3 +75,36 @@ bool cpufreq_this_cpu_can_update(struct cpufreq_policy *policy)
> (policy->dvfs_possible_from_any_cpu &&
> rcu_dereference_sched(*this_cpu_ptr(&cpufreq_update_util_data)));
> }
> +
> +#ifdef CONFIG_ENERGY_MODEL
> +extern bool sched_energy_update;
> +extern struct mutex sched_energy_mutex;
> +
> +static void rebuild_sd_workfn(struct work_struct *work)
> +{
> + mutex_lock(&sched_energy_mutex);
> + sched_energy_update = true;
> + rebuild_sched_domains();
> + sched_energy_update = false;
> + mutex_unlock(&sched_energy_mutex);
> +}
> +static DECLARE_WORK(rebuild_sd_work, rebuild_sd_workfn);
> +
> +/*
> + * EAS shouldn't be attempted without sugov, so rebuild the sched_domains
> + * on governor changes to make sure the scheduler knows about it.
> + */

In the previous patch, you removed reference to schedutil and replaced it with
" an EAS-compatible CPUfreq governor (schedutil)". May be you could do the
same here.

Thanks,
Pavan

--
Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.