* [PATCH V3] Fix problem with cpufreq_ondemand or cpufreq_conservative
@ 2012-12-29 1:55 Larry Finger
2012-12-29 13:27 ` Rafael J. Wysocki
0 siblings, 1 reply; 6+ messages in thread
From: Larry Finger @ 2012-12-29 1:55 UTC (permalink / raw)
To: rjw; +Cc: fabio.baltieri, viresh.kumar, linux-kernel, linux-pm
Since commit 2aacdff entitled "cpufreq: Move common part from governors
to separate file", whenever the drivers that depend on this new file
(cpufreq_ondemand or cpufreq_conservative) are built as modules, a new
module named cpufreq_governor is created because the Makefile includes
cpufreq_governor.o twice. As drivers/cpufreq/cpufreq_governor.c contains no
MODULE directives, the resulting module has no license specified, which
results in logging of a "module license 'unspecified' taints kernel". In
addition, a number of globals are exported GPL only, and are therefore
not available. This fix establishes a new boolean configuration variable
that forces cpufreq_governor.o to be linked into the kernel whenever
either cpufreq_ondemand or cpufreq_conservative is selected.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
V3 changes only Kconfig and Makefile and avoids creating a new module.
Larry
Kconfig | 5 +++++
Makefile | 5 +++--
2 files changed, 8 insertions(+), 2 deletions(-)
Index: wireless-testing-new/drivers/cpufreq/Kconfig
===================================================================
--- wireless-testing-new.orig/drivers/cpufreq/Kconfig
+++ wireless-testing-new/drivers/cpufreq/Kconfig
@@ -20,6 +20,9 @@ if CPU_FREQ
config CPU_FREQ_TABLE
tristate
+config CPU_FREQ_GOVERNOR
+ bool
+
config CPU_FREQ_STAT
tristate "CPU frequency translation statistics"
select CPU_FREQ_TABLE
@@ -141,6 +144,7 @@ config CPU_FREQ_GOV_USERSPACE
config CPU_FREQ_GOV_ONDEMAND
tristate "'ondemand' cpufreq policy governor"
select CPU_FREQ_TABLE
+ select CPU_FREQ_GOVERNOR
help
'ondemand' - This driver adds a dynamic cpufreq policy governor.
The governor does a periodic polling and
@@ -159,6 +163,7 @@ config CPU_FREQ_GOV_ONDEMAND
config CPU_FREQ_GOV_CONSERVATIVE
tristate "'conservative' cpufreq governor"
depends on CPU_FREQ
+ select CPU_FREQ_GOVERNOR
help
'conservative' - this driver is rather similar to the 'ondemand'
governor both in its source code and its purpose, the difference is
Index: wireless-testing-new/drivers/cpufreq/Makefile
===================================================================
--- wireless-testing-new.orig/drivers/cpufreq/Makefile
+++ wireless-testing-new/drivers/cpufreq/Makefile
@@ -7,8 +7,9 @@ obj-$(CONFIG_CPU_FREQ_STAT)
obj-$(CONFIG_CPU_FREQ_GOV_PERFORMANCE) += cpufreq_performance.o
obj-$(CONFIG_CPU_FREQ_GOV_POWERSAVE) += cpufreq_powersave.o
obj-$(CONFIG_CPU_FREQ_GOV_USERSPACE) += cpufreq_userspace.o
-obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND) += cpufreq_ondemand.o cpufreq_governor.o
-obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE) += cpufreq_conservative.o cpufreq_governor.o
+obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND) += cpufreq_ondemand.o
+obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE) += cpufreq_conservative.o
+obj-$(CONFIG_CPU_FREQ_GOVERNOR) += cpufreq_governor.o
# CPUfreq cross-arch helpers
obj-$(CONFIG_CPU_FREQ_TABLE) += freq_table.o
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V3] Fix problem with cpufreq_ondemand or cpufreq_conservative
2012-12-29 1:55 [PATCH V3] Fix problem with cpufreq_ondemand or cpufreq_conservative Larry Finger
@ 2012-12-29 13:27 ` Rafael J. Wysocki
2012-12-29 15:39 ` Larry Finger
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Rafael J. Wysocki @ 2012-12-29 13:27 UTC (permalink / raw)
To: Larry Finger; +Cc: fabio.baltieri, viresh.kumar, linux-kernel, linux-pm
On Friday, December 28, 2012 07:55:20 PM Larry Finger wrote:
> Since commit 2aacdff entitled "cpufreq: Move common part from governors
> to separate file", whenever the drivers that depend on this new file
> (cpufreq_ondemand or cpufreq_conservative) are built as modules, a new
> module named cpufreq_governor is created because the Makefile includes
> cpufreq_governor.o twice. As drivers/cpufreq/cpufreq_governor.c contains no
> MODULE directives, the resulting module has no license specified, which
> results in logging of a "module license 'unspecified' taints kernel". In
> addition, a number of globals are exported GPL only, and are therefore
> not available. This fix establishes a new boolean configuration variable
> that forces cpufreq_governor.o to be linked into the kernel whenever
> either cpufreq_ondemand or cpufreq_conservative is selected.
>
> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
> ---
> V3 changes only Kconfig and Makefile and avoids creating a new module.
OK, thanks for the patch!
If you don't mind, I'll rename CONFIG_CPU_FREQ_GOVERNOR to
CONFIG_CPU_FREQ_GOV_COMMON when applying it, though.
Thanks,
Rafael
> Kconfig | 5 +++++
> Makefile | 5 +++--
> 2 files changed, 8 insertions(+), 2 deletions(-)
>
> Index: wireless-testing-new/drivers/cpufreq/Kconfig
> ===================================================================
> --- wireless-testing-new.orig/drivers/cpufreq/Kconfig
> +++ wireless-testing-new/drivers/cpufreq/Kconfig
> @@ -20,6 +20,9 @@ if CPU_FREQ
> config CPU_FREQ_TABLE
> tristate
>
> +config CPU_FREQ_GOVERNOR
> + bool
> +
> config CPU_FREQ_STAT
> tristate "CPU frequency translation statistics"
> select CPU_FREQ_TABLE
> @@ -141,6 +144,7 @@ config CPU_FREQ_GOV_USERSPACE
> config CPU_FREQ_GOV_ONDEMAND
> tristate "'ondemand' cpufreq policy governor"
> select CPU_FREQ_TABLE
> + select CPU_FREQ_GOVERNOR
> help
> 'ondemand' - This driver adds a dynamic cpufreq policy governor.
> The governor does a periodic polling and
> @@ -159,6 +163,7 @@ config CPU_FREQ_GOV_ONDEMAND
> config CPU_FREQ_GOV_CONSERVATIVE
> tristate "'conservative' cpufreq governor"
> depends on CPU_FREQ
> + select CPU_FREQ_GOVERNOR
> help
> 'conservative' - this driver is rather similar to the 'ondemand'
> governor both in its source code and its purpose, the difference is
> Index: wireless-testing-new/drivers/cpufreq/Makefile
> ===================================================================
> --- wireless-testing-new.orig/drivers/cpufreq/Makefile
> +++ wireless-testing-new/drivers/cpufreq/Makefile
> @@ -7,8 +7,9 @@ obj-$(CONFIG_CPU_FREQ_STAT)
> obj-$(CONFIG_CPU_FREQ_GOV_PERFORMANCE) += cpufreq_performance.o
> obj-$(CONFIG_CPU_FREQ_GOV_POWERSAVE) += cpufreq_powersave.o
> obj-$(CONFIG_CPU_FREQ_GOV_USERSPACE) += cpufreq_userspace.o
> -obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND) += cpufreq_ondemand.o cpufreq_governor.o
> -obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE) += cpufreq_conservative.o cpufreq_governor.o
> +obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND) += cpufreq_ondemand.o
> +obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE) += cpufreq_conservative.o
> +obj-$(CONFIG_CPU_FREQ_GOVERNOR) += cpufreq_governor.o
>
> # CPUfreq cross-arch helpers
> obj-$(CONFIG_CPU_FREQ_TABLE) += freq_table.o
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V3] Fix problem with cpufreq_ondemand or cpufreq_conservative
2012-12-29 13:27 ` Rafael J. Wysocki
@ 2012-12-29 15:39 ` Larry Finger
2012-12-29 17:24 ` Larry Finger
2013-01-02 3:57 ` Viresh Kumar
2 siblings, 0 replies; 6+ messages in thread
From: Larry Finger @ 2012-12-29 15:39 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: fabio.baltieri, viresh.kumar, linux-kernel, linux-pm
On 12/29/2012 07:27 AM, Rafael J. Wysocki wrote:
> On Friday, December 28, 2012 07:55:20 PM Larry Finger wrote:
>> Since commit 2aacdff entitled "cpufreq: Move common part from governors
>> to separate file", whenever the drivers that depend on this new file
>> (cpufreq_ondemand or cpufreq_conservative) are built as modules, a new
>> module named cpufreq_governor is created because the Makefile includes
>> cpufreq_governor.o twice. As drivers/cpufreq/cpufreq_governor.c contains no
>> MODULE directives, the resulting module has no license specified, which
>> results in logging of a "module license 'unspecified' taints kernel". In
>> addition, a number of globals are exported GPL only, and are therefore
>> not available. This fix establishes a new boolean configuration variable
>> that forces cpufreq_governor.o to be linked into the kernel whenever
>> either cpufreq_ondemand or cpufreq_conservative is selected.
>>
>> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
>> ---
>> V3 changes only Kconfig and Makefile and avoids creating a new module.
>
> OK, thanks for the patch!
>
> If you don't mind, I'll rename CONFIG_CPU_FREQ_GOVERNOR to
> CONFIG_CPU_FREQ_GOV_COMMON when applying it, though.
No problem. It occurred to me that if one can do logic in a Makefile, then the
extra configuration variable can be eliminated. I still need to check if that is
possible.
Larry
>
> Thanks,
> Rafael
>
>
>> Kconfig | 5 +++++
>> Makefile | 5 +++--
>> 2 files changed, 8 insertions(+), 2 deletions(-)
>>
>> Index: wireless-testing-new/drivers/cpufreq/Kconfig
>> ===================================================================
>> --- wireless-testing-new.orig/drivers/cpufreq/Kconfig
>> +++ wireless-testing-new/drivers/cpufreq/Kconfig
>> @@ -20,6 +20,9 @@ if CPU_FREQ
>> config CPU_FREQ_TABLE
>> tristate
>>
>> +config CPU_FREQ_GOVERNOR
>> + bool
>> +
>> config CPU_FREQ_STAT
>> tristate "CPU frequency translation statistics"
>> select CPU_FREQ_TABLE
>> @@ -141,6 +144,7 @@ config CPU_FREQ_GOV_USERSPACE
>> config CPU_FREQ_GOV_ONDEMAND
>> tristate "'ondemand' cpufreq policy governor"
>> select CPU_FREQ_TABLE
>> + select CPU_FREQ_GOVERNOR
>> help
>> 'ondemand' - This driver adds a dynamic cpufreq policy governor.
>> The governor does a periodic polling and
>> @@ -159,6 +163,7 @@ config CPU_FREQ_GOV_ONDEMAND
>> config CPU_FREQ_GOV_CONSERVATIVE
>> tristate "'conservative' cpufreq governor"
>> depends on CPU_FREQ
>> + select CPU_FREQ_GOVERNOR
>> help
>> 'conservative' - this driver is rather similar to the 'ondemand'
>> governor both in its source code and its purpose, the difference is
>> Index: wireless-testing-new/drivers/cpufreq/Makefile
>> ===================================================================
>> --- wireless-testing-new.orig/drivers/cpufreq/Makefile
>> +++ wireless-testing-new/drivers/cpufreq/Makefile
>> @@ -7,8 +7,9 @@ obj-$(CONFIG_CPU_FREQ_STAT)
>> obj-$(CONFIG_CPU_FREQ_GOV_PERFORMANCE) += cpufreq_performance.o
>> obj-$(CONFIG_CPU_FREQ_GOV_POWERSAVE) += cpufreq_powersave.o
>> obj-$(CONFIG_CPU_FREQ_GOV_USERSPACE) += cpufreq_userspace.o
>> -obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND) += cpufreq_ondemand.o cpufreq_governor.o
>> -obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE) += cpufreq_conservative.o cpufreq_governor.o
>> +obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND) += cpufreq_ondemand.o
>> +obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE) += cpufreq_conservative.o
>> +obj-$(CONFIG_CPU_FREQ_GOVERNOR) += cpufreq_governor.o
>>
>> # CPUfreq cross-arch helpers
>> obj-$(CONFIG_CPU_FREQ_TABLE) += freq_table.o
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V3] Fix problem with cpufreq_ondemand or cpufreq_conservative
2012-12-29 13:27 ` Rafael J. Wysocki
2012-12-29 15:39 ` Larry Finger
@ 2012-12-29 17:24 ` Larry Finger
2012-12-29 21:54 ` Rafael J. Wysocki
2013-01-02 3:57 ` Viresh Kumar
2 siblings, 1 reply; 6+ messages in thread
From: Larry Finger @ 2012-12-29 17:24 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: fabio.baltieri, viresh.kumar, linux-kernel, linux-pm
On 12/29/2012 07:27 AM, Rafael J. Wysocki wrote:
> On Friday, December 28, 2012 07:55:20 PM Larry Finger wrote:
>> Since commit 2aacdff entitled "cpufreq: Move common part from governors
>> to separate file", whenever the drivers that depend on this new file
>> (cpufreq_ondemand or cpufreq_conservative) are built as modules, a new
>> module named cpufreq_governor is created because the Makefile includes
>> cpufreq_governor.o twice. As drivers/cpufreq/cpufreq_governor.c contains no
>> MODULE directives, the resulting module has no license specified, which
>> results in logging of a "module license 'unspecified' taints kernel". In
>> addition, a number of globals are exported GPL only, and are therefore
>> not available. This fix establishes a new boolean configuration variable
>> that forces cpufreq_governor.o to be linked into the kernel whenever
>> either cpufreq_ondemand or cpufreq_conservative is selected.
>>
>> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
>> ---
>> V3 changes only Kconfig and Makefile and avoids creating a new module.
>
> OK, thanks for the patch!
>
> If you don't mind, I'll rename CONFIG_CPU_FREQ_GOVERNOR to
> CONFIG_CPU_FREQ_GOV_COMMON when applying it, though.
The following does the job and is somewhat cleaner. If you want, I can remove
the line wrap and submit it as V4. The downside of this approach is that the
nested ifs will get cumbersome is more governors need cpufreq_governor.o.
Larry
Index: wireless-testing-new/drivers/cpufreq/Makefile
===================================================================
--- wireless-testing-new.orig/drivers/cpufreq/Makefile
+++ wireless-testing-new/drivers/cpufreq/Makefile
@@ -7,8 +7,15 @@ obj-$(CONFIG_CPU_FREQ_STAT)
obj-$(CONFIG_CPU_FREQ_GOV_PERFORMANCE) += cpufreq_performance.o
obj-$(CONFIG_CPU_FREQ_GOV_POWERSAVE) += cpufreq_powersave.o
obj-$(CONFIG_CPU_FREQ_GOV_USERSPACE) += cpufreq_userspace.o
-obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND) += cpufreq_ondemand.o cpufreq_governor.o
-obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE) += cpufreq_conservative.o
cpufreq_governor.o
+obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND) += cpufreq_ondemand.o
+obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE) += cpufreq_conservative.o
+ifdef CONFIG_CPU_FREQ_GOV_ONDEMAND
+ obj-y += cpufreq_governor.o
+else
+ ifdef CONFIG_CPU_FREQ_GOV_CONSERVATIVE
+ obj-y += cpufreq_governor.o
+ endif
+endif
# CPUfreq cross-arch helpers
obj-$(CONFIG_CPU_FREQ_TABLE) += freq_table.o
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V3] Fix problem with cpufreq_ondemand or cpufreq_conservative
2012-12-29 17:24 ` Larry Finger
@ 2012-12-29 21:54 ` Rafael J. Wysocki
0 siblings, 0 replies; 6+ messages in thread
From: Rafael J. Wysocki @ 2012-12-29 21:54 UTC (permalink / raw)
To: Larry Finger; +Cc: fabio.baltieri, viresh.kumar, linux-kernel, linux-pm
On Saturday, December 29, 2012 11:24:45 AM Larry Finger wrote:
> On 12/29/2012 07:27 AM, Rafael J. Wysocki wrote:
> > On Friday, December 28, 2012 07:55:20 PM Larry Finger wrote:
> >> Since commit 2aacdff entitled "cpufreq: Move common part from governors
> >> to separate file", whenever the drivers that depend on this new file
> >> (cpufreq_ondemand or cpufreq_conservative) are built as modules, a new
> >> module named cpufreq_governor is created because the Makefile includes
> >> cpufreq_governor.o twice. As drivers/cpufreq/cpufreq_governor.c contains no
> >> MODULE directives, the resulting module has no license specified, which
> >> results in logging of a "module license 'unspecified' taints kernel". In
> >> addition, a number of globals are exported GPL only, and are therefore
> >> not available. This fix establishes a new boolean configuration variable
> >> that forces cpufreq_governor.o to be linked into the kernel whenever
> >> either cpufreq_ondemand or cpufreq_conservative is selected.
> >>
> >> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
> >> ---
> >> V3 changes only Kconfig and Makefile and avoids creating a new module.
> >
> > OK, thanks for the patch!
> >
> > If you don't mind, I'll rename CONFIG_CPU_FREQ_GOVERNOR to
> > CONFIG_CPU_FREQ_GOV_COMMON when applying it, though.
>
> The following does the job and is somewhat cleaner. If you want, I can remove
> the line wrap and submit it as V4. The downside of this approach is that the
> nested ifs will get cumbersome is more governors need cpufreq_governor.o.
I actually prefer the Kconfig-based one. The extra config option is not
a problem to me.
Thanks,
Rafael
> Index: wireless-testing-new/drivers/cpufreq/Makefile
> ===================================================================
> --- wireless-testing-new.orig/drivers/cpufreq/Makefile
> +++ wireless-testing-new/drivers/cpufreq/Makefile
> @@ -7,8 +7,15 @@ obj-$(CONFIG_CPU_FREQ_STAT)
> obj-$(CONFIG_CPU_FREQ_GOV_PERFORMANCE) += cpufreq_performance.o
> obj-$(CONFIG_CPU_FREQ_GOV_POWERSAVE) += cpufreq_powersave.o
> obj-$(CONFIG_CPU_FREQ_GOV_USERSPACE) += cpufreq_userspace.o
> -obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND) += cpufreq_ondemand.o cpufreq_governor.o
> -obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE) += cpufreq_conservative.o
> cpufreq_governor.o
> +obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND) += cpufreq_ondemand.o
> +obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE) += cpufreq_conservative.o
> +ifdef CONFIG_CPU_FREQ_GOV_ONDEMAND
> + obj-y += cpufreq_governor.o
> +else
> + ifdef CONFIG_CPU_FREQ_GOV_CONSERVATIVE
> + obj-y += cpufreq_governor.o
> + endif
> +endif
>
> # CPUfreq cross-arch helpers
> obj-$(CONFIG_CPU_FREQ_TABLE) += freq_table.o
>
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V3] Fix problem with cpufreq_ondemand or cpufreq_conservative
2012-12-29 13:27 ` Rafael J. Wysocki
2012-12-29 15:39 ` Larry Finger
2012-12-29 17:24 ` Larry Finger
@ 2013-01-02 3:57 ` Viresh Kumar
2 siblings, 0 replies; 6+ messages in thread
From: Viresh Kumar @ 2013-01-02 3:57 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: Larry Finger, fabio.baltieri, linux-kernel, linux-pm
On Sat, Dec 29, 2012 at 6:57 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> On Friday, December 28, 2012 07:55:20 PM Larry Finger wrote:
>> V3 changes only Kconfig and Makefile and avoids creating a new module.
>
> OK, thanks for the patch!
>
> If you don't mind, I'll rename CONFIG_CPU_FREQ_GOVERNOR to
> CONFIG_CPU_FREQ_GOV_COMMON when applying it, though.
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-01-02 3:57 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-29 1:55 [PATCH V3] Fix problem with cpufreq_ondemand or cpufreq_conservative Larry Finger
2012-12-29 13:27 ` Rafael J. Wysocki
2012-12-29 15:39 ` Larry Finger
2012-12-29 17:24 ` Larry Finger
2012-12-29 21:54 ` Rafael J. Wysocki
2013-01-02 3:57 ` Viresh Kumar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox