Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 07 Feb 2008 22:17:38 -0800
From:      Nate Lawson <nate@root.org>
To:        Kevin Oberman <oberman@es.net>
Cc:        acpi@freebsd.org, Hajimu UMEMOTO <ume@freebsd.org>, "Alexandre \"Sunny\" Kovalenko" <alex.kovalenko@verizon.net>
Subject:   Re: [RFC] Patch to enable temperature ceiling in powerd
Message-ID:  <47ABF402.7030904@root.org>
In-Reply-To: <20080208045605.15C874500E@ptavv.es.net>
References:  <20080208045605.15C874500E@ptavv.es.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Kevin Oberman wrote:
>> From: "Alexandre \"Sunny\" Kovalenko" <alex.kovalenko@verizon.net>
>>
>> On Fri, 2008-02-08 at 00:50 +0900, Hajimu UMEMOTO wrote:
>>>>>>>> On Wed, 30 Jan 2008 17:56:19 -0500
>>>>>>>> "Alexandre \"Sunny\" Kovalenko" <alex.kovalenko@verizon.net> said:
>>> alex.kovalenko> Some time ago I have put together patch for powerd, which allows user to
>>> alex.kovalenko> specify the temperature threshold at which powerd will lower CPU
>>> alex.kovalenko> frequency no matter what the load was at the time. I recently had to
>>> alex.kovalenko> adapt it to the 7.0-PRERELEASE for someone with the overheating laptop,
>>> alex.kovalenko> which got me to think that it might be useful for someone else yet.
>>>
>>> alex.kovalenko> Basic idea is fairly simple -- check temperature in TZ0 and, if it has
>>> alex.kovalenko> reached certain value, either override frequency with the lowest
>>> alex.kovalenko> available (in the case of 'max' setting) or change idle time to 100% and
>>> alex.kovalenko> let adaptive algorithm decrease frequency gradually.
>>>
>>> alex.kovalenko> I imagine it also could be poor man's substitute for the low noise
>>> alex.kovalenko> acoustic policy ;)
>>>
>>> alex.kovalenko> If there is an interest, I will go ahead and submit a PR, otherwise it
>>> alex.kovalenko> will live in the mail archives for someone to find. Any comments,
>>> alex.kovalenko> suggestions or criticisms are welcome.
>>>
>>> alex.kovalenko> Temperature threshold (in Celsius) could be set by means of '-T' command
>>> alex.kovalenko> line option (as in '-T 60').
>>>
>>> Our kernel has passive cooling feature, already.  Is it not enough for
>>> you?
>> I must have missed it somehow, if you could, please, point me in the
>> right direction I will really appreciate it.
> 
> When the temperature reaches hw.acpi.thermal.tz0._PSV, the system will
> slow down until the CPU drops to a level below the _PSV value. The
> operation, if enabled, is under the control of BIOS (and/or the EC) and
> typically runs with substantial hysteresis, but is usually adequate for
> keeping the CPU temperature to a safe point.
> 
> My Pentium-M 2GHz has a value of 94.5C for _PSV. This may seem very
> high, but the maximum "safe" operating temperature for the CPU is 100C,
> so it is designed for pretty high temperatures. Quiescent temperature
> runs about 51C and, during a CPU intensive operation such as a big build
> (e.g. make -j2 buildworld) will rise to near 80C. 
> 
> Before I blew two years of dust out of the heat sinks, I was seeing
> about 60C quiescent and about 95 during CPU intensive operations.
> Passive cooling was kicking in then and the temperature never went
> higher (although the build took longer).

You can override the _PSV value by setting:
hw.acpi.thermal.user_override=1

Then:
hw.acpi.thermal.tz0._PSV=70C

This will maintain a lower temperature.  Note that user_override is 
potentially a bit dangerous because there is no sanity checking of the 
value you set.

-- 
Nate



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47ABF402.7030904>