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

next in thread | previous in thread | raw e-mail | index | archive | help

On Thu, 2008-02-07 at 22:17 -0800, Nate Lawson wrote:
> 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.
> 
I'd say it is not working here (ThinkPad X60 1709-73U, BIOS was up to
date as of day before yesterday, FreeBSD 7.0 as of January 31):

RabbitsDen# sysctl hw.acpi.thermal
hw.acpi.thermal.min_runtime: 0
hw.acpi.thermal.polling_rate: 10
--> hw.acpi.thermal.user_override: 1
--> hw.acpi.thermal.tz0.temperature: 67.0C
hw.acpi.thermal.tz0.active: -1
hw.acpi.thermal.tz0.passive_cooling: 0
hw.acpi.thermal.tz0.thermal_flags: 1
--> hw.acpi.thermal.tz0._PSV: 60.0C
hw.acpi.thermal.tz0._HOT: -1
hw.acpi.thermal.tz0._CRT: 127.0C
hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
--> hw.acpi.thermal.tz1.temperature: 68.0C
hw.acpi.thermal.tz1.active: -1
hw.acpi.thermal.tz1.passive_cooling: 0
hw.acpi.thermal.tz1.thermal_flags: 1
--> hw.acpi.thermal.tz1._PSV: 60.0C
hw.acpi.thermal.tz1._HOT: -1
hw.acpi.thermal.tz1._CRT: 97.0C
hw.acpi.thermal.tz1._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

Anything, I have missed?

-- 
Alexandre "Sunny" Kovalenko (Олександр Коваленко)




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