Re: [PATCH v2 1/4] cpufreq: Introduce governor flags

From: Viresh Kumar
Date: Mon Nov 09 2020 - 21:41:32 EST


On 09-11-20, 17:51, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
>
> A new cpufreq governor flag will be added subsequently, so replace
> the bool dynamic_switching fleid in struct cpufreq_governor with a
> flags field and introduce CPUFREQ_GOV_FLAG_DYN_SWITCH to set for
> the "dynamic switching" governors instead of it.
>
> No intentional functional impact.
>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> ---
> drivers/cpufreq/cpufreq.c | 2 +-
> drivers/cpufreq/cpufreq_governor.h | 2 +-
> include/linux/cpufreq.h | 9 +++++++--
> kernel/sched/cpufreq_schedutil.c | 2 +-
> 4 files changed, 10 insertions(+), 5 deletions(-)
>
> Index: linux-pm/drivers/cpufreq/cpufreq.c
> ===================================================================
> --- linux-pm.orig/drivers/cpufreq/cpufreq.c
> +++ linux-pm/drivers/cpufreq/cpufreq.c
> @@ -2254,7 +2254,7 @@ static int cpufreq_init_governor(struct
> return -EINVAL;
>
> /* Platform doesn't want dynamic frequency switching ? */
> - if (policy->governor->dynamic_switching &&

I completely forgot that we had something like this :)

> + if (policy->governor->flags & CPUFREQ_GOV_FLAG_DYN_SWITCH &&
> cpufreq_driver->flags & CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING) {
> struct cpufreq_governor *gov = cpufreq_fallback_governor();
>
> Index: linux-pm/drivers/cpufreq/cpufreq_governor.h
> ===================================================================
> --- linux-pm.orig/drivers/cpufreq/cpufreq_governor.h
> +++ linux-pm/drivers/cpufreq/cpufreq_governor.h
> @@ -156,7 +156,7 @@ void cpufreq_dbs_governor_limits(struct
> #define CPUFREQ_DBS_GOVERNOR_INITIALIZER(_name_) \
> { \
> .name = _name_, \
> - .dynamic_switching = true, \
> + .flags = CPUFREQ_GOV_FLAG_DYN_SWITCH, \
> .owner = THIS_MODULE, \
> .init = cpufreq_dbs_governor_init, \
> .exit = cpufreq_dbs_governor_exit, \
> Index: linux-pm/include/linux/cpufreq.h
> ===================================================================
> --- linux-pm.orig/include/linux/cpufreq.h
> +++ linux-pm/include/linux/cpufreq.h
> @@ -565,12 +565,17 @@ struct cpufreq_governor {
> char *buf);
> int (*store_setspeed) (struct cpufreq_policy *policy,
> unsigned int freq);
> - /* For governors which change frequency dynamically by themselves */
> - bool dynamic_switching;
> struct list_head governor_list;
> struct module *owner;
> + u8 flags;
> };
>
> +/* Governor flags */
> +
> +/* For governors which change frequency dynamically by themselves */
> +#define CPUFREQ_GOV_FLAG_DYN_SWITCH BIT(0)

Maybe just drop the FLAG_ part as we don't use it for other cpufreq related
flags as well. That will also give us space to write DYN as DYNAMIC (it may be
better as we use the full name in CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING).

Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>

--
viresh