Re: [PATCH RFC v2 4/4] sched: cpufreq_cfs: pelt-based cpu frequency scaling

From: Paul Bolle
Date: Wed May 13 2015 - 05:19:47 EST


One nit and one question follow.

>--- a/drivers/cpufreq/Kconfig
> +++ b/drivers/cpufreq/Kconfig

> +config CPU_FREQ_DEFAULT_GOV_CFS
> + bool "cfs"
> + select CPU_FREQ_GOV_CFS
> + select CPU_FREQ_GOV_PERFORMANCE
> + help
> + Use the CPUfreq governor 'cfs' as default. This scales
> + cpu frequency from the scheduler as per-entity load tracking
> + statistics are updated.

> +config CPU_FREQ_GOV_CFS
> + tristate "'cfs' cpufreq governor"
> + depends on CPU_FREQ
> + select CPU_FREQ_GOV_COMMON
> + help
> + 'cfs' - this governor scales cpu frequency from the
> + scheduler as a function of cpu capacity utilization. It does
> + not evaluate utilization on a periodic basis (as ondemand
> + does) but instead is invoked from the completely fair
> + scheduler when updating per-entity load tracking statistics.
> + Latency to respond to changes in load is improved over polling
> + governors due to its event-driven design.
> +
> + If in doubt, say N.

> --- a/include/linux/cpufreq.h
> +++ b/include/linux/cpufreq.h
> @@ -485,6 +485,9 @@ extern struct cpufreq_governor cpufreq_gov_ondemand;
> #elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE)
> extern struct cpufreq_governor cpufreq_gov_conservative;
> #define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_conservative)
> +#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_CAP_GOV)
> +extern struct cpufreq_governor cpufreq_gov_cap_gov;
> +#define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_cap_gov)
> #endif

Question: grepping for CPU_FREQ_DEFAULT_GOV_CAP_GOV and
cpufreq_gov_cap_gov didn't gave me hits in next-20150513. And this
series doesn't add them, does it? So where do they com from?

(Since you add CPU_FREQ_DEFAULT_GOV_CFS and cpufreq_cfs in this patch it
seems you intended to add those. I briefly looked into the way
CPUFREQ_DEFAULT_GOVERNOR is set in cpufreq.h when v1 came along, found
it to complicated for me, and promptly forgot the details, so please
double check.)

> --- a/kernel/sched/Makefile
> +++ b/kernel/sched/Makefile

> +obj-$(CONFIG_CPU_FREQ_GOV_CFS) += cpufreq_cfs.o

> --- /dev/null
> +++ b/kernel/sched/cpufreq_cfs.c

> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.

This states the license is GPL v2.

> +MODULE_LICENSE("GPL");

And, according to include/linux/module.h, this states the license is GPL
v2 or later. So I think that either the comment at the top of this file
or the ident used in the MODULE_LICENSE() macro needs to be changed.

Thanks,


Paul Bolle

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/