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>