[patch] enhance powerd(8) to handle max temperature

Pietro Cerutti gahr at gahr.ch
Mon Jul 30 21:31:21 UTC 2007


Kris Kennaway wrote:
> On Mon, Jul 30, 2007 at 11:28:59AM +0200, Pietro Cerutti wrote:
>> Hajimu UMEMOTO wrote:
>>> Hi,
>>>
>>>>>>>> On Fri, 27 Jul 2007 16:43:29 +0200
>>>>>>>> Pietro Cerutti <gahr at gahr.ch> said:
>>> gahr> Hi list,
>>> gahr> here is a patch to allow powerd(8) accept a "-t tval" option to set a
>>> gahr> temperature limit above which performance should be decreased.
>>> gahr> It's a first draft, and I identified the following problems:
>>>
>>> gahr> - the CPU temperature takes some time to decrease, so powerd keeps
>>> gahr> decreasing the CPU frequency until the temperature is below the limit.
>>> gahr> The effect is a "increase to maximum, decrease to minimum, increase to
>>> gahr> maximum, decrease to minimum, ...." which may not be desirable.
>>>
>>> gahr> - the temperature is retrieved by the hw.acpi.thermal.tz0.temperature
>>> gahr> sysctl MIB. Support for other methods would be desirable.
>>>
>>> gahr> The patches to powerd.c and powerd.8 are here:
>>> gahr> http://www.gahr.ch/FreeBSD/patches/powerd.c.diff
>>> gahr> http://www.gahr.ch/FreeBSD/patches/powerd.8.diff
>>>
>>> gahr> Any comment is welcome!
>>>
>>> We have a passive cooling mechanism already in our kernel.  It runs
>>> according to an ACPI specification.
>> You are right, but the passive colling mechanism could not be available
>> on some systems where thermal is available, and I'm still waiting for
>> answers about acpi_thermal not sending notifies.
>> See my previous post:
>> http://lists.freebsd.org/pipermail/freebsd-hackers/2007-July/021361.html
>>
>> What's wrong with including this feature directly in powerd?
> 
> In general duplication is undesirable.  You should focus on trying to
> solve the problems with using the ACPI method.  For example, the acpi
> passive cooling probably uses a better algorithm than your patches,
> e.g. including appropriate hysteresis.

Hi Kris,
I agree with you in that duplication is undesirable.
But isn't having both powerd and passive cooling dealing with CPU
frequency control already a form of duplication?

I can't test it, since I can't use passive cooling, but how do not these
two systems interfere with each other wrt setting the CPU frequency?
What if, for example, my CPU temperature rises above _PSV but the CPU
usage drops below 65%?
In this case, the CPU frequency should be increased according to
powerd's algorithm and should be decreased according to passive
cooling's algorithm.

Wouldn't it be better to have one subsystem deal with both usage and
temperature in order to decide which is the best next frequency to be set?

My patch is really just a first draft that I wrote in order to have
feedbacks on the general idea to implement a temperature controlling
system inside powerd, and doesn't implement hysteresis as you noted, and
your feedback is that it's not a good idea, which I respect.

Given the above, would you like to elaborate?

Thank you for your time!


> 
> Kris
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"


-- 
Pietro Cerutti

PGP Public Key:
http://gahr.ch/pgp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20070730/9c291f81/signature.pgp


More information about the freebsd-hackers mailing list