[RFC] Patch to enable temperature ceiling in powerd

Alexandre "Sunny" Kovalenko alex.kovalenko at verizon.net
Tue Feb 5 14:36:19 UTC 2008


On Tue, 2008-02-05 at 21:22 +1100, Ian Smith wrote:
> On Mon, 4 Feb 2008, Alexandre "Sunny" Kovalenko wrote:
>  > On Thu, 2008-01-31 at 05:35 -0500, John Baldwin wrote:
>  > > On Wednesday 30 January 2008 05:56:19 pm Alexandre "Sunny" Kovalenko wrote:
>  > > > Some time ago I have put together patch for powerd, which allows user to
>  > > > specify the temperature threshold at which powerd will lower CPU
>  > > > frequency no matter what the load was at the time. I recently had to
>  > > > adapt it to the 7.0-PRERELEASE for someone with the overheating laptop,
>  > > > which got me to think that it might be useful for someone else yet.
>  > > > 
>  > > > Basic idea is fairly simple -- check temperature in TZ0 and, if it has
>  > > > reached certain value, either override frequency with the lowest
>  > > > available (in the case of 'max' setting) or change idle time to 100% and
>  > > > let adaptive algorithm decrease frequency gradually.
>  > > > 
>  > > > I imagine it also could be poor man's substitute for the low noise
>  > > > acoustic policy ;)
>  > > > 
>  > > > If there is an interest, I will go ahead and submit a PR, otherwise it
>  > > > will live in the mail archives for someone to find. Any comments,
>  > > > suggestions or criticisms are welcome.
>  > > > 
>  > > > Temperature threshold (in Celsius) could be set by means of '-T' command
>  > > > line option (as in '-T 60').
>  > > 
>  > > A couple of suggestions:
>  > > 
>  > > - I would make the default temperature 0 instead of 200 and just disable the
>  > >   feature altogether if it is set to 0 (i.e. don't read the current
>  > >   temperature and don't do any checks if it is 0).
>  > > - I would allow the temperature to be specified in either C, K or F with a
>  > >   suffix to indicate the scale.  (e.g., "80C", "120F", "300K")
>  > > - I would let the thermal zone name be configurable with a default of "tz0".
>  > >   (e.g. "-z tz3").  You would then snprintf the sysctl mib name that gets
>  > >   passed to sysctlbyname(3).
>  > > 
>  > John,
>  > I have attached new patch, implementing your suggestions (some of these
>  > were already implemented by Ian Smith and sent to me privately). I have
>  > also attached first crack at the patch to powerd.8. Both patches are
>  > against 7.0 as of late January 31, EST.
> 
> Alexandre,
> 
> please remove my gratuitous 4-line comment at the top, it's OTT and was
> really just to document for myself what I was playing around with then.
Done.

> 
> Though it's implied, I think the mod to powerd(8) should mention that
> tz0 is the default.  
Done.

> Also I think 999C is just a wee bit high to test
> against, when 150C would melt most laptops (not to mention laps :)  I
> recall seeing 150C tested against somewhere else as a 'reasonable' max.
Even 999K will melt quite a few things... I did not test for the
absolute value -- I just wanted to limit number of characters, used in
the option value, to simplify my own life. Two-digit temperatures are
not enough even for C and three should be plenty. I can introduce test
for 150C (and equivalent thereof) if you think it is necessary.

> 
> Cheers, Ian
> 
>  > Johannes,
>  > could you, by any chance, apply the attached patch to the original copy
>  > of the powerd.c and see if it still allows you to use your system? Do
>  > not expect any improvements, though ;)
>  > 
>  > -- 
>  > Alexandre "Sunny" Kovalenko (ОлекÑандр Коваленко)
>  > 
> 

-- 
Alexandre "Sunny" Kovalenko (Олександр Коваленко)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: powerd.8.patch
Type: text/x-patch
Size: 1454 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-acpi/attachments/20080205/006e08b7/powerd.8.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: powerd.c.patch
Type: text/x-patch
Size: 7887 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-acpi/attachments/20080205/006e08b7/powerd.c.bin


More information about the freebsd-acpi mailing list