* Ondemand governor not working with kernel-2.6.12-12mdk
@ 2005-10-06 12:52 Alex Simonov
2005-10-06 14:58 ` Eric Piel
0 siblings, 1 reply; 5+ messages in thread
From: Alex Simonov @ 2005-10-06 12:52 UTC (permalink / raw)
To: cpufreq
Hello everybody,
Recently I installed Mandrake Linux with kernel
2.6.12 on my laptop, and noticed, that the
ondemand governor is not working, only the
powersave, and performance governors.
Anyone has an idea what could be the reason?
Please tell me if you need any other info for
better diagnosing the problem.
The System is:
HP Omnibook 510
Pentium III CPU 1133 Mhz/440BX chipset.
Cpufreq modules are compiled directly in the
kernel.
Thank you,
Alex
__________________________________
Yahoo! Mail - PC Magazine Editors' Choice 2005
http://mail.yahoo.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Ondemand governor not working with kernel-2.6.12-12mdk
2005-10-06 12:52 Ondemand governor not working with kernel-2.6.12-12mdk Alex Simonov
@ 2005-10-06 14:58 ` Eric Piel
2005-10-06 18:13 ` Dave Jones
0 siblings, 1 reply; 5+ messages in thread
From: Eric Piel @ 2005-10-06 14:58 UTC (permalink / raw)
To: Alex Simonov; +Cc: cpufreq
10/06/2005 02:52 PM, Alex Simonov wrote/a écrit:
> Hello everybody,
>
> Recently I installed Mandrake Linux with kernel
> 2.6.12 on my laptop, and noticed, that the
> ondemand governor is not working, only the
> powersave, and performance governors.
>
> Anyone has an idea what could be the reason?
> Please tell me if you need any other info for
> better diagnosing the problem.
>
> The System is:
>
> HP Omnibook 510
> Pentium III CPU 1133 Mhz/440BX chipset.
> Cpufreq modules are compiled directly in the
> kernel.
Which driver does it use? Check it by doing:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
My guess is that you use a driver which doesn't know the transition
latency and therefore the ondemand governor doesn't want to take the
job. The easiest workaround is to use any userspace program (like
cpufreqd), they are not as shy as the ondemand governor...
The real way to fix it will be to find the correct transition latency of
your processor and update the driver. (If the driver is speedstep-ich,
I'm already working on it with Venki and I can send you a patch for trial)
Eric
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Ondemand governor not working with kernel-2.6.12-12mdk
2005-10-06 14:58 ` Eric Piel
@ 2005-10-06 18:13 ` Dave Jones
0 siblings, 0 replies; 5+ messages in thread
From: Dave Jones @ 2005-10-06 18:13 UTC (permalink / raw)
To: Eric Piel; +Cc: cpufreq, Alex Simonov
On Thu, Oct 06, 2005 at 04:58:08PM +0200, Eric Piel wrote:
> 10/06/2005 02:52 PM, Alex Simonov wrote/a écrit:
> >Hello everybody,
> >
> >Recently I installed Mandrake Linux with kernel
> >2.6.12 on my laptop, and noticed, that the
> >ondemand governor is not working, only the
> >powersave, and performance governors.
> >
> >Anyone has an idea what could be the reason?
> >Please tell me if you need any other info for
> >better diagnosing the problem.
> >
> >The System is:
> >
> >HP Omnibook 510
> >Pentium III CPU 1133 Mhz/440BX chipset.
> >Cpufreq modules are compiled directly in the
> >kernel.
> Which driver does it use? Check it by doing:
>
> cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
>
> My guess is that you use a driver which doesn't know the transition
> latency and therefore the ondemand governor doesn't want to take the
> job. The easiest workaround is to use any userspace program (like
> cpufreqd), they are not as shy as the ondemand governor...
>
> The real way to fix it will be to find the correct transition latency of
> your processor and update the driver. (If the driver is speedstep-ich,
> I'm already working on it with Venki and I can send you a patch for trial)
That's first generation speedstep. Speedstep-ich driver uses CPUFREQ_ETERNAL.
Dave
^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <43455149.1090702@tremplin-utc.net>]
* Re: Ondemand governor not working with kernel-2.6.12-12mdk
[not found] <43455149.1090702@tremplin-utc.net>
@ 2005-10-08 17:30 ` Alex Simonov
2005-10-10 21:24 ` Eric Piel
0 siblings, 1 reply; 5+ messages in thread
From: Alex Simonov @ 2005-10-08 17:30 UTC (permalink / raw)
To: Eric Piel; +Cc: cpufreq
Hello Eric,
> >
> Here it is. It's against 2.6.13 but should
> apply cleanly against 2.6.12.
Your patch did the trick, thanks! The only draw
back is that the responsiveness is not
so good - it takes at least 2-3 seconds to
switch to the highest frequency and back, when
thie high load is over. Is it supposed to be like
that by design, or this latency could be changed?
> If it works (or doesn't), could you also
> email the cpufreq list, to
> continue the thread there?
Sorry, I forgot to CC it to the cpufreq list.
Here it is now.
Alex
>
> Eric
> > ---
>linux-2.6.13/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c.bak
> 2005-08-08 10:14:35.000000000 +0200
> +++
>
linux-2.6.13/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c
> 2005-09-17 12:50:27.000000000 +0200
> @@ -301,6 +301,35 @@ static int
> speedstep_verify (struct cpuf
> }
>
>
> +/**
> + * speedstep_get_transition_latency - returns
> the maximum transition latency
> + * of the current processor
> + * @processor: type of processor
> + *
> + * The CPU transition latency depends on the
> type of CPU, so we get it
> + * from a database.
> + */
> +static unsigned int
> speedstep_get_transition_latency(unsigned int
> processor)
> +{
> + switch (processor) {
> + case SPEEDSTEP_PROCESSOR_PIII_C:
> + case SPEEDSTEP_PROCESSOR_PIII_C_EARLY:
> + /* According to intel's p3_ds.pdf p.23 and
> table 22, similar to PIII_T */
> + case SPEEDSTEP_PROCESSOR_PIII_T:
> + /* Max 100µs, according to intel's
> 29834006.pdf p.22 */
> + return 100000;
> + case SPEEDSTEP_PROCESSOR_P4M:
> + /*
> + * Depends on the bus clock, which should be
> at least 100MHz.
> + * Max ~42µs -> 50µs, according to intel's
> 25068607.pdf p.40 and p.50
> + */
> + return 50000;
> + default:
> + /* No info has yet be found, so we are
> conservative */
> + return CPUFREQ_ETERNAL;
> + }
> +}
> +
> static int speedstep_cpu_init(struct
> cpufreq_policy *policy)
> {
> int result = 0;
> @@ -335,7 +364,8 @@ static int
> speedstep_cpu_init(struct cpu
>
> /* cpuinfo and default policy values */
> policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
> - policy->cpuinfo.transition_latency =
> CPUFREQ_ETERNAL;
> + policy->cpuinfo.transition_latency =
> +
>
speedstep_get_transition_latency(speedstep_processor);
> policy->cur = speed;
>
> result =
> cpufreq_frequency_table_cpuinfo(policy,
> speedstep_freqs);
>
__________________________________
Yahoo! Mail - PC Magazine Editors' Choice 2005
http://mail.yahoo.com
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: Ondemand governor not working with kernel-2.6.12-12mdk
2005-10-08 17:30 ` Alex Simonov
@ 2005-10-10 21:24 ` Eric Piel
0 siblings, 0 replies; 5+ messages in thread
From: Eric Piel @ 2005-10-10 21:24 UTC (permalink / raw)
To: Alex Simonov; +Cc: cpufreq
08.10.2005 19:30, Alex Simonov wrote/a écrit:
> Hello Eric,
:
>
> Your patch did the trick, thanks! The only draw
> back is that the responsiveness is not
> so good - it takes at least 2-3 seconds to
> switch to the highest frequency and back, when
> thie high load is over. Is it supposed to be like
> that by design, or this latency could be changed?
>
>
That's strange, it's supposed to be faster (although it could be even
faster). IIRC, on 2.6.12, it should be every 100 milliseconds. You can
check the sampling frequency of the ondemand governor by doing a
cat /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
It will give the period between each frequency update in microseconds.
In general, it should change from low to high in a tenth of a second.
You can check it with a stupid shell command like this (when nothing
else is running), this is only one line:
# date +%T.%N; while test $(cat
/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq) != $(cat
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq) ; do true ; done
; date +%T.%N
By doing the difference between the two times displayed you'll know how
long it takes for the ondemand governor to change to the high frequency.
Here (pentium III), it takes about 0.08s .
Eric
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-10-10 21:24 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-06 12:52 Ondemand governor not working with kernel-2.6.12-12mdk Alex Simonov
2005-10-06 14:58 ` Eric Piel
2005-10-06 18:13 ` Dave Jones
[not found] <43455149.1090702@tremplin-utc.net>
2005-10-08 17:30 ` Alex Simonov
2005-10-10 21:24 ` Eric Piel
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.