* ondemand governor and passive cooling broken?
@ 2005-08-03 18:17 Thomas Renninger
2005-08-16 9:48 ` Dominik Brodowski
0 siblings, 1 reply; 5+ messages in thread
From: Thomas Renninger @ 2005-08-03 18:17 UTC (permalink / raw)
To: cpufreq
Machine is a Thinkpad with a Pentium M ~1700MHz running with the speedstep-centrino module.
Something seems to be wrong with the cooling system and
the CPU temp goes up from 50 C to 90 C in about a minute.
With the userspace governor the machine stays at 1200 MHz on full load
and bounces around 80C (passive trip point), that's how it should be.
However, passive cooling seems to be broken with current kernels
and ondemand governor?
Machine stays at 1700 MHz until critical shutdown (94 C).
Is passive cooling supposed to work with the ondemand governor?
If yes, can someone confirm seeing it working with old kernels and
the speedstep-centrino module?
Thanks,
Thomas
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: ondemand governor and passive cooling broken?
2005-08-03 18:17 ondemand governor and passive cooling broken? Thomas Renninger
@ 2005-08-16 9:48 ` Dominik Brodowski
2005-08-21 4:48 ` Thomas Renninger
0 siblings, 1 reply; 5+ messages in thread
From: Dominik Brodowski @ 2005-08-16 9:48 UTC (permalink / raw)
To: Thomas Renninger; +Cc: cpufreq
Hi,
With which kernel do you see this behaviour? Can you re-test with 2.6.12.x,
please?
Thanks,
Dominik
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: ondemand governor and passive cooling broken?
2005-08-16 9:48 ` Dominik Brodowski
@ 2005-08-21 4:48 ` Thomas Renninger
0 siblings, 0 replies; 5+ messages in thread
From: Thomas Renninger @ 2005-08-21 4:48 UTC (permalink / raw)
To: Dominik Brodowski; +Cc: cpufreq
Hi,
This makes ondemand governor aware of thermal limits.
The policy was buffered and new policy values never reached the governor.
I just used the cpufreq_get_policy call every time the load is checked,
maybe the new policy should be made available via notifier as it is done
for the cur_freq in the userspace governor?
If this sounds reasonable I can come up with a bigger patch on Monday.
However, thermal cooling still does not always work right:
- Sometimes the limit is not decreased correctly in polling frequency time
(I saw it at max for more than 20 secs, polling freq 5 secs, passive tp exceeded).
Strange enough, that seems to happen only in rare cases.
- I also saw the limit stuck at lowest frequency even after getting back in
normal temperature zones.
- And once you entered passive cooling you always see the "cooling: passive"
flag set in /proc/acpi/thermal_zone/*/cooling_mode
Thomas
--- drivers/cpufreq/cpufreq_ondemand.c.orig 2005-08-20 19:26:18.000000000 -0600
+++ drivers/cpufreq/cpufreq_ondemand.c 2005-08-20 19:28:04.000000000 -0600
@@ -254,6 +254,10 @@
if (!this_dbs_info->enable)
return;
+ int ret = cpufreq_get_policy(this_dbs_info->cur_policy, cpu);
+ if (ret)
+ return;
+
policy = this_dbs_info->cur_policy;
/*
* Every sampling_rate, we check, if current idle time is less
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: ondemand governor and passive cooling broken?
@ 2005-08-24 19:09 Pallipadi, Venkatesh
2005-08-25 10:30 ` Thomas Renninger
0 siblings, 1 reply; 5+ messages in thread
From: Pallipadi, Venkatesh @ 2005-08-24 19:09 UTC (permalink / raw)
To: Thomas Renninger, Dominik Brodowski; +Cc: cpufreq
>-----Original Message-----
>From: Thomas Renninger [mailto:mail@renninger.de]
>Sent: Saturday, August 20, 2005 9:49 PM
>To: Dominik Brodowski
>Cc: cpufreq@lists.linux.org.uk; Pallipadi, Venkatesh
>Subject: Re: ondemand governor and passive cooling broken?
>
>Hi,
>
>This makes ondemand governor aware of thermal limits.
>The policy was buffered and new policy values never reached
>the governor.
I don't think there is an issue with buffering here.
This_dbs_info->cur_policy is a pointer to the cpufreq policy (and not
allocated by ondemand governor). So, any change to max/min in cpufreq
should be automatically getting reflected. Atleast that was the intent
with having policy pointer. If it is not happening then that should be a
bug. I don't think that this memcpy is required here.
>I just used the cpufreq_get_policy call every time the load is checked,
>maybe the new policy should be made available via notifier as
>it is done
>for the cur_freq in the userspace governor?
>If this sounds reasonable I can come up with a bigger patch on Monday.
>
>However, thermal cooling still does not always work right:
>
> - Sometimes the limit is not decreased correctly in polling
>frequency time
> (I saw it at max for more than 20 secs, polling freq 5
>secs, passive tp exceeded).
> Strange enough, that seems to happen only in rare cases.
> - I also saw the limit stuck at lowest frequency even after
>getting back in
> normal temperature zones.
I think we need to do some more things to intergrate cpufreq and thermal
cooling. Especially in relation to polling frequency. Probably, ondemand
governor should slow down its polling interval to something higher than
thermal polling frequency as soon as it notices the passive cooling is
on.
Thanks,
Venki
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: ondemand governor and passive cooling broken?
2005-08-24 19:09 Pallipadi, Venkatesh
@ 2005-08-25 10:30 ` Thomas Renninger
0 siblings, 0 replies; 5+ messages in thread
From: Thomas Renninger @ 2005-08-25 10:30 UTC (permalink / raw)
To: Pallipadi, Venkatesh; +Cc: cpufreq, Dominik Brodowski
Pallipadi, Venkatesh wrote:
>
>
>>-----Original Message-----
>>From: Thomas Renninger [mailto:mail@renninger.de]
>>Sent: Saturday, August 20, 2005 9:49 PM
>>To: Dominik Brodowski
>>Cc: cpufreq@lists.linux.org.uk; Pallipadi, Venkatesh
>>Subject: Re: ondemand governor and passive cooling broken?
>>
>>Hi,
>>
>>This makes ondemand governor aware of thermal limits.
>>The policy was buffered and new policy values never reached
>>the governor.
>
> I don't think there is an issue with buffering here.
> This_dbs_info->cur_policy is a pointer to the cpufreq policy (and not
> allocated by ondemand governor). So, any change to max/min in cpufreq
> should be automatically getting reflected. Atleast that was the intent
> with having policy pointer. If it is not happening then that should be a
> bug. I don't think that this memcpy is required here.
>
You are right. I tried to reproduce this problem with a powernow-k8 machine
and thermal cooling worked just fine.
>>I just used the cpufreq_get_policy call every time the load is checked,
>>maybe the new policy should be made available via notifier as
>>it is done
>>for the cur_freq in the userspace governor?
>>If this sounds reasonable I can come up with a bigger patch on Monday.
>>
>>However, thermal cooling still does not always work right:
>>
>> - Sometimes the limit is not decreased correctly in polling
>>frequency time
>> (I saw it at max for more than 20 secs, polling freq 5
>>secs, passive tp exceeded).
>> Strange enough, that seems to happen only in rare cases.
>> - I also saw the limit stuck at lowest frequency even after
>>getting back in
>> normal temperature zones.
>
> I think we need to do some more things to intergrate cpufreq and thermal
> cooling. Especially in relation to polling frequency. Probably, ondemand
> governor should slow down its polling interval to something higher than
> thermal polling frequency as soon as it notices the passive cooling is
> on.
Don't know. I will try to get a speedstep-centrino machine and have a look
whether this makes a difference and also play around a bit with thermal polling freq
and ondemand configs. Do you think this could be a driver specific problem?
Thanks,
Thomas
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-08-25 10:30 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-03 18:17 ondemand governor and passive cooling broken? Thomas Renninger
2005-08-16 9:48 ` Dominik Brodowski
2005-08-21 4:48 ` Thomas Renninger
-- strict thread matches above, loose matches on Subject: below --
2005-08-24 19:09 Pallipadi, Venkatesh
2005-08-25 10:30 ` 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.