All of lore.kernel.org
 help / color / mirror / Atom feed
* ondemand as default governor
@ 2007-03-01 17:41 Thomas Renninger
  2007-03-07  6:24 ` Len Brown
  0 siblings, 1 reply; 9+ messages in thread
From: Thomas Renninger @ 2007-03-01 17:41 UTC (permalink / raw)
  To: cpufreq

I just read in drivers/cpufreq/Kconfig:

# Note that it is not currently possible to set the other governors
(such as ondemand)
# as the default, since if they fail to initialise, cpufreq will be
# left in an undefined state.

Is this a bigger problem to solve?
Is there already someone working/thinking on/about a solution?

Allowing this would be convenient...

Thanks,

   Thomas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ondemand as default governor
  2007-03-01 17:41 ondemand as default governor Thomas Renninger
@ 2007-03-07  6:24 ` Len Brown
  2007-03-07  7:02   ` Dave Jones
  0 siblings, 1 reply; 9+ messages in thread
From: Len Brown @ 2007-03-07  6:24 UTC (permalink / raw)
  To: cpufreq, trenn

On Thursday 01 March 2007 12:41, Thomas Renninger wrote:
> I just read in drivers/cpufreq/Kconfig:
> 
> # Note that it is not currently possible to set the other governors
> (such as ondemand)
> # as the default, since if they fail to initialise, cpufreq will be
> # left in an undefined state.
> 
> Is this a bigger problem to solve?
> Is there already someone working/thinking on/about a solution?
> 
> Allowing this would be convenient...

Yes, it would, then we could delete the other governors,
and then delete the concept of multiple governors alltogether.

-Len

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ondemand as default governor
  2007-03-07  6:24 ` Len Brown
@ 2007-03-07  7:02   ` Dave Jones
  2007-03-07  9:20     ` Thomas Renninger
                       ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Dave Jones @ 2007-03-07  7:02 UTC (permalink / raw)
  To: Len Brown; +Cc: cpufreq

On Wed, Mar 07, 2007 at 01:24:28AM -0500, Len Brown wrote:
 > On Thursday 01 March 2007 12:41, Thomas Renninger wrote:
 > > I just read in drivers/cpufreq/Kconfig:
 > > 
 > > # Note that it is not currently possible to set the other governors
 > > (such as ondemand)
 > > # as the default, since if they fail to initialise, cpufreq will be
 > > # left in an undefined state.
 > > 
 > > Is this a bigger problem to solve?
 > > Is there already someone working/thinking on/about a solution?
 > > 
 > > Allowing this would be convenient...
 > 
 > Yes, it would, then we could delete the other governors,
 > and then delete the concept of multiple governors alltogether.

It's not feasible unless you have a way of making various
older CPUs transition faster.  Ondemand on longhaul,powernow-k6,longrun,
elanfreq, as well as lots of non-x86 implementations is just not
a feasible option.

However.. conservative might be.  I'd still like to see conservative
folded into ondemand sometime, and just be a module param.

	Dave

-- 
http://www.codemonkey.org.uk

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ondemand as default governor
  2007-03-07  7:02   ` Dave Jones
@ 2007-03-07  9:20     ` Thomas Renninger
  2007-03-07  9:25     ` Alexander Clouter
  2007-03-07 15:43     ` Pallipadi, Venkatesh
  2 siblings, 0 replies; 9+ messages in thread
From: Thomas Renninger @ 2007-03-07  9:20 UTC (permalink / raw)
  To: Dave Jones; +Cc: cpufreq

On Wed, 2007-03-07 at 02:02 -0500, Dave Jones wrote:
> On Wed, Mar 07, 2007 at 01:24:28AM -0500, Len Brown wrote:
>  > On Thursday 01 March 2007 12:41, Thomas Renninger wrote:
>  > > I just read in drivers/cpufreq/Kconfig:
>  > > 
>  > > # Note that it is not currently possible to set the other governors
>  > > (such as ondemand)
>  > > # as the default, since if they fail to initialise, cpufreq will be
>  > > # left in an undefined state.
>  > > 
>  > > Is this a bigger problem to solve?
>  > > Is there already someone working/thinking on/about a solution?
>  > > 
>  > > Allowing this would be convenient...
>  > 
>  > Yes, it would, then we could delete the other governors,
>  > and then delete the concept of multiple governors alltogether.
> 
> It's not feasible unless you have a way of making various
> older CPUs transition faster.  Ondemand on longhaul,powernow-k6,longrun,
> elanfreq, as well as lots of non-x86 implementations is just not
> a feasible option.
> 
> However.. conservative might be.  I'd still like to see conservative
> folded into ondemand sometime, and just be a module param.

I like the several governors concept in general, cpuidle also goes this
way now? I'd just like to see cpufreq working by simply loading the
drivers.
I thought I could just set ondemand as default and things work on most
machines, instead of fixing the setup in rescue, installation, whatever
environment.

Especially ThinkPads tend to run hot quite quickly...

   Thomas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ondemand as default governor
  2007-03-07  7:02   ` Dave Jones
  2007-03-07  9:20     ` Thomas Renninger
@ 2007-03-07  9:25     ` Alexander Clouter
  2007-03-07  9:56       ` Len Brown
  2007-03-07 21:09       ` Holger Macht
  2007-03-07 15:43     ` Pallipadi, Venkatesh
  2 siblings, 2 replies; 9+ messages in thread
From: Alexander Clouter @ 2007-03-07  9:25 UTC (permalink / raw)
  To: cpufreq


[-- Attachment #1.1: Type: text/plain, Size: 3364 bytes --]

Hi,

Dave Jones <davej@redhat.com> [20070307 02:02:08 -0500]:
>
> On Wed, Mar 07, 2007 at 01:24:28AM -0500, Len Brown wrote:
>  > On Thursday 01 March 2007 12:41, Thomas Renninger wrote:
>  > > I just read in drivers/cpufreq/Kconfig:
>  > > 
>  > > # Note that it is not currently possible to set the other governors
>  > > (such as ondemand)
>  > > # as the default, since if they fail to initialise, cpufreq will be
>  > > # left in an undefined state.
>  > > 
>  > > Is this a bigger problem to solve?
>  > > Is there already someone working/thinking on/about a solution?
>  > > 
>  > > Allowing this would be convenient...
>  > 
>  > Yes, it would, then we could delete the other governors,
>  > and then delete the concept of multiple governors alltogether.
> 
> It's not feasible unless you have a way of making various
> older CPUs transition faster.  Ondemand on longhaul,powernow-k6,longrun,
> elanfreq, as well as lots of non-x86 implementations is just not
> a feasible option.
> 
As a compromise I guess someone could make a patch that 'forces' 
ondemand/conservative by default with a few '#ifdef's.  Slap a huge "we will 
simply laugh at you if you complain this does not work" in the Kconfig help 
section and everyones happy.  It should be a rather un-intrusive patch.

> However.. conservative might be.  I'd still like to see conservative
> folded into ondemand sometime, and just be a module param.
> 
This was originally touted as this but Dominik[1] suggested it would be a far 
better use of the modular governor system if I forked a different governor 
instead.  Also if you look at the current userland tools out there that tweak 
the /sys/.../cpufreq/ settings you will find they really are all kitted out 
to flip between completely different governors on system events rather than 
sit on a particular one and tweak a few parameters when someone yanks the 
power lead[2].

I would admit it looks and feel the kind of thing that should be run into a 
single governor[3] but this would really muck around the userland tools as 
they would have to be re-written to actually know the workings of each 
particular governor rather than just being told "use this one when on AC and 
this one when not".  It would clean up the kernel land forking, but the cost 
to the userland side would be horrible.

Cheers

Alex

[1] http://marc.theaimsgroup.com/?l=linux-kernel&m=109808470906084&w=2
[2] this seems to be the main use for my governor, laptop users use ondemend 
	when on AC power and use something like the Debian laptop-mode-tools 
	package to flip to conservative when they unplug; I know I do
[3] as the conservative maintainer I just try to minimise the size of the 
	diff file produced between ondemand and conservative :)

> 	Dave
> 
> -- 
> http://www.codemonkey.org.uk
> 
> _______________________________________________
> Cpufreq mailing list
> Cpufreq@lists.linux.org.uk
> http://lists.linux.org.uk/mailman/listinfo/cpufreq
> 

-- 
 ____________________________________
/ May you live in interesting times. \
|                                    |
\ -- Chinese proverb                 /
 ------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

[-- Attachment #2: Type: text/plain, Size: 147 bytes --]

_______________________________________________
Cpufreq mailing list
Cpufreq@lists.linux.org.uk
http://lists.linux.org.uk/mailman/listinfo/cpufreq

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ondemand as default governor
  2007-03-07  9:25     ` Alexander Clouter
@ 2007-03-07  9:56       ` Len Brown
  2007-03-07 21:09       ` Holger Macht
  1 sibling, 0 replies; 9+ messages in thread
From: Len Brown @ 2007-03-07  9:56 UTC (permalink / raw)
  To: cpufreq

On Wednesday 07 March 2007 04:25, Alexander Clouter wrote:
> Hi,
> 
> Dave Jones <davej@redhat.com> [20070307 02:02:08 -0500]:
> >
> > On Wed, Mar 07, 2007 at 01:24:28AM -0500, Len Brown wrote:
> >  > On Thursday 01 March 2007 12:41, Thomas Renninger wrote:
> >  > > I just read in drivers/cpufreq/Kconfig:
> >  > > 
> >  > > # Note that it is not currently possible to set the other governors
> >  > > (such as ondemand)
> >  > > # as the default, since if they fail to initialise, cpufreq will be
> >  > > # left in an undefined state.
> >  > > 
> >  > > Is this a bigger problem to solve?
> >  > > Is there already someone working/thinking on/about a solution?
> >  > > 
> >  > > Allowing this would be convenient...
> >  > 
> >  > Yes, it would, then we could delete the other governors,
> >  > and then delete the concept of multiple governors alltogether.
> > 
> > It's not feasible unless you have a way of making various
> > older CPUs transition faster.  Ondemand on longhaul,powernow-k6,longrun,
> > elanfreq, as well as lots of non-x86 implementations is just not
> > a feasible option.
> > 
> As a compromise I guess someone could make a patch that 'forces' 
> ondemand/conservative by default with a few '#ifdef's.  Slap a huge "we will 
> simply laugh at you if you complain this does not work" in the Kconfig help 
> section and everyones happy.  It should be a rather un-intrusive patch.
>
> > However.. conservative might be.  I'd still like to see conservative
> > folded into ondemand sometime, and just be a module param.
> > 
> This was originally touted as this but Dominik[1] suggested it would be a far 
> better use of the modular governor system if I forked a different governor 
> instead.  Also if you look at the current userland tools out there that tweak 
> the /sys/.../cpufreq/ settings you will find they really are all kitted out 
> to flip between completely different governors on system events rather than 
> sit on a particular one and tweak a few parameters when someone yanks the 
> power lead[2].

It isn't self-evident that AC/DC events merit swapping out the P-state policy.

> I would admit it looks and feel the kind of thing that should be run into a 
> single governor[3] but this would really muck around the userland tools as 
> they would have to be re-written to actually know the workings of each 
> particular governor rather than just being told "use this one when on AC and 
> this one when not".  It would clean up the kernel land forking, but the cost 
> to the userland side would be horrible.

The user-land tools are going to change over time anyway as
Linux actually gets a clue about run-time power management policies.

> [1] http://marc.theaimsgroup.com/?l=linux-kernel&m=109808470906084&w=2

Overdesigned for what it does.
There, I said it.
I'm not trying to offend, that is just how I see it.

> [2] this seems to be the main use for my governor, laptop users use ondemend 
> 	when on AC power and use something like the Debian laptop-mode-tools 
> 	package to flip to conservative when they unplug; I know I do

Why?
Have you measured better power and performance using conservative
vs ondemand.  Tools exist to give us hard data on this:

http://sourceforge.net/projects/bltk


> [3] as the conservative maintainer I just try to minimise the size of the 
> 	diff file produced between ondemand and conservative :)

good, that should make consolidating it easier.

thanks,
-Len

^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: ondemand as default governor
  2007-03-07  7:02   ` Dave Jones
  2007-03-07  9:20     ` Thomas Renninger
  2007-03-07  9:25     ` Alexander Clouter
@ 2007-03-07 15:43     ` Pallipadi, Venkatesh
  2007-03-10 18:39       ` Thomas Renninger
  2 siblings, 1 reply; 9+ messages in thread
From: Pallipadi, Venkatesh @ 2007-03-07 15:43 UTC (permalink / raw)
  To: Dave Jones, Len Brown; +Cc: cpufreq

 

>-----Original Message-----
>From: cpufreq-bounces@lists.linux.org.uk 
>[mailto:cpufreq-bounces@lists.linux.org.uk] On Behalf Of Dave Jones
>Sent: Tuesday, March 06, 2007 11:02 PM
>To: Len Brown
>Cc: cpufreq@lists.linux.org.uk
>Subject: Re: ondemand as default governor
>
>On Wed, Mar 07, 2007 at 01:24:28AM -0500, Len Brown wrote:
> > On Thursday 01 March 2007 12:41, Thomas Renninger wrote:
> > > I just read in drivers/cpufreq/Kconfig:
> > > 
> > > # Note that it is not currently possible to set the other 
>governors
> > > (such as ondemand)
> > > # as the default, since if they fail to initialise, 
>cpufreq will be
> > > # left in an undefined state.
> > > 
> > > Is this a bigger problem to solve?
> > > Is there already someone working/thinking on/about a solution?
> > > 
> > > Allowing this would be convenient...
> > 
> > Yes, it would, then we could delete the other governors,
> > and then delete the concept of multiple governors alltogether.
>
>It's not feasible unless you have a way of making various
>older CPUs transition faster.  Ondemand on 
>longhaul,powernow-k6,longrun,
>elanfreq, as well as lots of non-x86 implementations is just not
>a feasible option.
>
>However.. conservative might be.  I'd still like to see conservative
>folded into ondemand sometime, and just be a module param.
>

One option I was thinking of doing is to add a rating system to all
governors and to try init'ing all governors in order of their rating
at init time (until one is successful). With that, we can fallback to
performance or userspace if ondemand fails to init.

But, I never got around to implementing something like that.....

Thanks,
Venki

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ondemand as default governor
  2007-03-07  9:25     ` Alexander Clouter
  2007-03-07  9:56       ` Len Brown
@ 2007-03-07 21:09       ` Holger Macht
  1 sibling, 0 replies; 9+ messages in thread
From: Holger Macht @ 2007-03-07 21:09 UTC (permalink / raw)
  To: Alexander Clouter; +Cc: cpufreq

On Wed 07. Mar - 09:25:06, Alexander Clouter wrote:
> Hi,
> 
> Dave Jones <davej@redhat.com> [20070307 02:02:08 -0500]:
> >
> > On Wed, Mar 07, 2007 at 01:24:28AM -0500, Len Brown wrote:
> >  > On Thursday 01 March 2007 12:41, Thomas Renninger wrote:
> >  > > I just read in drivers/cpufreq/Kconfig:
> >  > > 
> >  > > # Note that it is not currently possible to set the other governors
> >  > > (such as ondemand)
> >  > > # as the default, since if they fail to initialise, cpufreq will be
> >  > > # left in an undefined state.
> >  > > 
> >  > > Is this a bigger problem to solve?
> >  > > Is there already someone working/thinking on/about a solution?
> >  > > 
> >  > > Allowing this would be convenient...
> >  > 
> >  > Yes, it would, then we could delete the other governors,
> >  > and then delete the concept of multiple governors alltogether.
> > 
> > It's not feasible unless you have a way of making various
> > older CPUs transition faster.  Ondemand on longhaul,powernow-k6,longrun,
> > elanfreq, as well as lots of non-x86 implementations is just not
> > a feasible option.
> > 
> As a compromise I guess someone could make a patch that 'forces' 
> ondemand/conservative by default with a few '#ifdef's.  Slap a huge "we will 
> simply laugh at you if you complain this does not work" in the Kconfig help 
> section and everyones happy.  It should be a rather un-intrusive patch.
> 
> > However.. conservative might be.  I'd still like to see conservative
> > folded into ondemand sometime, and just be a module param.
> > 
> This was originally touted as this but Dominik[1] suggested it would be a far 
> better use of the modular governor system if I forked a different governor 
> instead.  Also if you look at the current userland tools out there that tweak 
> the /sys/.../cpufreq/ settings you will find they really are all kitted out 
> to flip between completely different governors on system events rather than 
> sit on a particular one and tweak a few parameters when someone yanks the 
> power lead[2].
> 
> I would admit it looks and feel the kind of thing that should be run into a 
> single governor[3] but this would really muck around the userland tools as 
> they would have to be re-written to actually know the workings of each 
> particular governor rather than just being told "use this one when on AC and 
> this one when not".  It would clean up the kernel land forking, but the cost 
> to the userland side would be horrible.

Well, but there are also userland tools which are heading into another
direction. The quite new CPUFreq addon which comes along with HAL tries to
go away from the modular governor system. It doesn't limit anyone to set
whichever governor is available, but ideally it encourages applications to
set one dynamic scaling governor such as ondemand. After setting the
governor, you have a scale between 1 and 100 which in turn just tweaks the
different settings of this one governor set. And in the long run,
distributions will have to use this mechanism if they like to use the most
common power management desktop applets out there (gnome-power-manager,
kpowersave, etc.).

[...]

Regards,
	Holger

^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: ondemand as default governor
  2007-03-07 15:43     ` Pallipadi, Venkatesh
@ 2007-03-10 18:39       ` Thomas Renninger
  0 siblings, 0 replies; 9+ messages in thread
From: Thomas Renninger @ 2007-03-10 18:39 UTC (permalink / raw)
  To: Pallipadi, Venkatesh; +Cc: Dave Jones, cpufreq

On Wed, 2007-03-07 at 07:43 -0800, Pallipadi, Venkatesh wrote:
> 
> >-----Original Message-----
> >From: cpufreq-bounces@lists.linux.org.uk 
> >[mailto:cpufreq-bounces@lists.linux.org.uk] On Behalf Of Dave Jones
> >Sent: Tuesday, March 06, 2007 11:02 PM
> >To: Len Brown
> >Cc: cpufreq@lists.linux.org.uk
> >Subject: Re: ondemand as default governor
> >
> >On Wed, Mar 07, 2007 at 01:24:28AM -0500, Len Brown wrote:
> > > On Thursday 01 March 2007 12:41, Thomas Renninger wrote:
> > > > I just read in drivers/cpufreq/Kconfig:
> > > > # Note that it is not currently possible to set the other 
> >governors
> > > > (such as ondemand)
> > > > # as the default, since if they fail to initialise, 
> >cpufreq will be
> > > > # left in an undefined state.
> > > > 
> > > > Is this a bigger problem to solve?
> > > > Is there already someone working/thinking on/about a solution?
> > > > 
> > > > Allowing this would be convenient...
> > > 
> > > Yes, it would, then we could delete the other governors,
> > > and then delete the concept of multiple governors alltogether.
> >
> >It's not feasible unless you have a way of making various
> >older CPUs transition faster.  Ondemand on 
> >longhaul,powernow-k6,longrun,
> >elanfreq, as well as lots of non-x86 implementations is just not
> >a feasible option.
> >
> >However.. conservative might be.  I'd still like to see conservative
> >folded into ondemand sometime, and just be a module param.
> >
> 
> One option I was thinking of doing is to add a rating system to all
> governors and to try init'ing all governors in order of their rating
> at init time (until one is successful). With that, we can fallback to
> performance or userspace if ondemand fails to init.
> 
> But, I never got around to implementing something like that.....

There are drivers to work correctly with ondemand and the others are
known
to not work with it, right?
Using userspace governor as default does not save much as it needs
fiddling in /sys/.../cpufreq anyway, ondemand as default would be much
more useful.

What about just falling back to performance governor when a non working
driver is loaded with DEFAULT_ONDEMAND governor?

A more clean way could be to add a .max_allowed_latency value to the
governor struct and fallback to performance if the latency of the
driver is too high (in init of cpufreq driver, instead of comparing
governor name)?

This is an example without latency checking, modified two drivers,
one known working with ondemand (powernow-k8) and one not
(speedstep-smi, AFAIK this one has latency problems):

---
 arch/i386/kernel/cpu/cpufreq/powernow-k8.c   |    1 -
 arch/i386/kernel/cpu/cpufreq/speedstep-smi.c |    7 ++++++-
 drivers/cpufreq/Kconfig                      |   13 +++++++++++++
 drivers/cpufreq/cpufreq.c                    |    2 ++
 drivers/cpufreq/cpufreq_ondemand.c           |    7 ++++---
 include/linux/cpufreq.h                      |    5 +++++
 6 files changed, 30 insertions(+), 5 deletions(-)

Index: linux-2.6.21-rc3/arch/i386/kernel/cpu/cpufreq/powernow-k8.c
===================================================================
--- linux-2.6.21-rc3.orig/arch/i386/kernel/cpu/cpufreq/powernow-k8.c
+++ linux-2.6.21-rc3/arch/i386/kernel/cpu/cpufreq/powernow-k8.c
@@ -1203,7 +1203,6 @@ static int __cpuinit powernowk8_cpu_init
 	/* run on any CPU again */
 	set_cpus_allowed(current, oldmask);
 
-	pol->governor = CPUFREQ_DEFAULT_GOVERNOR;
 	if (cpu_family == CPU_HW_PSTATE)
 		pol->cpus = cpumask_of_cpu(pol->cpu);
 	else
Index: linux-2.6.21-rc3/drivers/cpufreq/cpufreq_ondemand.c
===================================================================
--- linux-2.6.21-rc3.orig/drivers/cpufreq/cpufreq_ondemand.c
+++ linux-2.6.21-rc3/drivers/cpufreq/cpufreq_ondemand.c
@@ -573,11 +573,12 @@ static int cpufreq_governor_dbs(struct c
 	return 0;
 }
 
-static struct cpufreq_governor cpufreq_gov_dbs = {
+struct cpufreq_governor cpufreq_gov_ondemand = {
 	.name = "ondemand",
 	.governor = cpufreq_governor_dbs,
 	.owner = THIS_MODULE,
 };
+EXPORT_SYMBOL(cpufreq_gov_ondemand);
 
 static int __init cpufreq_gov_dbs_init(void)
 {
@@ -586,12 +587,12 @@ static int __init cpufreq_gov_dbs_init(v
 		printk(KERN_ERR "Creation of kondemand failed\n");
 		return -EFAULT;
 	}
-	return cpufreq_register_governor(&cpufreq_gov_dbs);
+	return cpufreq_register_governor(&cpufreq_gov_ondemand);
 }
 
 static void __exit cpufreq_gov_dbs_exit(void)
 {
-	cpufreq_unregister_governor(&cpufreq_gov_dbs);
+	cpufreq_unregister_governor(&cpufreq_gov_ondemand);
 	destroy_workqueue(kondemand_wq);
 }
 
Index: linux-2.6.21-rc3/include/linux/cpufreq.h
===================================================================
--- linux-2.6.21-rc3.orig/include/linux/cpufreq.h
+++ linux-2.6.21-rc3/include/linux/cpufreq.h
@@ -286,6 +286,11 @@ extern struct cpufreq_governor cpufreq_g
 #elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE)
 extern struct cpufreq_governor cpufreq_gov_userspace;
 #define CPUFREQ_DEFAULT_GOVERNOR	&cpufreq_gov_userspace
+#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND)
+extern struct cpufreq_governor cpufreq_gov_ondemand;
+extern struct cpufreq_governor cpufreq_gov_performance;
+#define CPUFREQ_DEFAULT_GOVERNOR	&cpufreq_gov_ondemand;
+#define CPUFREQ_PERFORMANCE_GOVERNOR	&cpufreq_gov_performance;
 #endif
 
 
Index: linux-2.6.21-rc3/drivers/cpufreq/Kconfig
===================================================================
--- linux-2.6.21-rc3.orig/drivers/cpufreq/Kconfig
+++ linux-2.6.21-rc3/drivers/cpufreq/Kconfig
@@ -75,6 +75,19 @@ config CPU_FREQ_DEFAULT_GOV_USERSPACE
 	  program shall be able to set the CPU dynamically without having
 	  to enable the userspace governor manually.
 
+config CPU_FREQ_DEFAULT_GOV_ONDEMAND
+	bool "ondemand"
+	select CPU_FREQ_GOV_ONDEMAND
+	select CPU_FREQ_GOV_PERFORMANCE
+	help
+	  Use the CPUFreq governor 'ondemand' as default. This allows
+	  you to get a full dynamic frequency capable system by simply
+	  loading your cpufreq driver.
+	  Be aware that not all cpufreq drivers support the ondemand
+	  governor. If unsure have a look at the help section of the
+	  driver. Fallback governor will then be the performance
+	  governor.
+
 endchoice
 
 config CPU_FREQ_GOV_PERFORMANCE
Index: linux-2.6.21-rc3/arch/i386/kernel/cpu/cpufreq/speedstep-smi.c
===================================================================
--- linux-2.6.21-rc3.orig/arch/i386/kernel/cpu/cpufreq/speedstep-smi.c
+++ linux-2.6.21-rc3/arch/i386/kernel/cpu/cpufreq/speedstep-smi.c
@@ -290,7 +290,12 @@ static int speedstep_cpu_init(struct cpu
 		(speed / 1000));
 
 	/* cpuinfo and default policy values */
-	policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
+#ifdef CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND
+	/* this driver does not support ondemand as governor
+	   due to too high latency values */
+	policy->governor = CPUFREQ_PERFORMANCE_GOVERNOR;
+#endif
+
 	policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
 	policy->cur = speed;
 
Index: linux-2.6.21-rc3/drivers/cpufreq/cpufreq.c
===================================================================
--- linux-2.6.21-rc3.orig/drivers/cpufreq/cpufreq.c
+++ linux-2.6.21-rc3/drivers/cpufreq/cpufreq.c
@@ -762,6 +762,8 @@ static int cpufreq_add_dev (struct sys_d
 	/* call driver. From then on the cpufreq must be able
 	 * to accept all calls to ->verify and ->setpolicy for this CPU
 	 */
+	policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
+
 	ret = cpufreq_driver->init(policy);
 	if (ret) {
 		dprintk("initialization failed\n");

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2007-03-10 18:39 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-01 17:41 ondemand as default governor Thomas Renninger
2007-03-07  6:24 ` Len Brown
2007-03-07  7:02   ` Dave Jones
2007-03-07  9:20     ` Thomas Renninger
2007-03-07  9:25     ` Alexander Clouter
2007-03-07  9:56       ` Len Brown
2007-03-07 21:09       ` Holger Macht
2007-03-07 15:43     ` Pallipadi, Venkatesh
2007-03-10 18:39       ` Thomas Renninger

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.