Bug 4930
Summary: | temperatures not updated until 'acpi' client is run | ||
---|---|---|---|
Product: | ACPI | Reporter: | Sanjoy Mahajan (sanjoy) |
Component: | Power-Thermal | Assignee: | Konstantin Karasyov (konstantin.karasyov) |
Status: | REJECTED INVALID | ||
Severity: | normal | CC: | acpi-bugzilla |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.13-rc3 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: |
Add UPDT function to all thermal zone _TMP methods
hysteresis for active cooling acpidmp output |
Description
Sanjoy Mahajan
2005-07-22 15:40:23 UTC
Created attachment 5367 [details]
Add UPDT function to all thermal zone _TMP methods
This looks like a DSDT bug---your laptop is of the same basic stock as mine
(770X). Polling THM0 for it's temperature causes the temperature variables to
update, whilst none of the others do. For each ThermalZone(THMx) you will see
a _TMP method. The one in THM0 calls UPDT, none of the rest do. Apply the
attached patch to the decompiled DSDT code.
Also, you should be able to turn on polling for THM0 to fix your problem, since
this will cause the UPDT function to be run on a regular basis.
Created attachment 5369 [details]
hysteresis for active cooling
Thanks very much, that was the problem. Also, I remembered the improvement
related to the acpi client when going from 2.6.11.4 to 2.6.13-rc3: With .11,
the lcd brightness would often change wheen I ran acpi, whereas that does not
happen with .13.
Once temperature polling worked again, the fan was turning on and off quickly
as the temperature crossed the active trip point. The patch below adds
hysteresis to the thermal kernel driver: It turns off active cooling only when
the temperature falls, say, 2 C below the trip point. Maybe the magic
difference should be 5 degrees; I'd be curious what setting suits people.
Tested and working on my TP 600X with 2.6.11.4 (but also patches cleanly
against 2.6.13-rc3).
Do this bug appears on Windows too? > Do this bug appears on Windows too? I don't know -- no Windows anywhere around here. But the DSDT modification in Comment #1 fixed the problem. The more info is needed to close this bug. Could you please attach the output from acpidump, available in pmtools here: http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/utils/ > Once temperature polling worked again, the fan was turning on and off quickly > as the temperature crossed the active trip point. The patch below adds > hysteresis to the thermal kernel driver: It turns off active cooling only when > the temperature falls, say, 2 C below the trip point. Maybe the magic > difference should be 5 degrees; I'd be curious what setting suits people. How often the fan on/off switches occurs? Wasn't it possible to reduce fan switching frequency by increasing polling interval? Created attachment 6613 [details]
acpidmp output
I didn't think of slowing down the switching by increasing the polling interval, but I'm pretty sure that would have worked. What's interesting is that hysteresis is built into the DSDT and works fine (I think 34 and 39 are the trip points in THM2, one for going up the other for going down in temperature). But after changing the trip point with echo 120:0:40:50:0 > /proc/acpi/thermal_zone/THM2/trip_points it uses 50 as the trip point whether going up or down (so no more hysteresis). > What's interesting is that > hysteresis is built into the DSDT and works fine (I think 34 and 39 are the > trip > points in THM2, one for going up the other for going down in temperature). But > after changing the trip point with > > echo 120:0:40:50:0 > /proc/acpi/thermal_zone/THM2/trip_points > > it uses 50 as the trip point whether going up or down (so no more hysteresis). It looks like the the trip points are somehow 'hardcoded' there, so the hysteresys is applied to this fixed values. Another DSDT issue ;) > The patch below adds > hysteresis to the thermal kernel driver: It turns off active cooling only when > the temperature falls, say, 2 C below the trip point. Maybe the magic > difference should be 5 degrees; I'd be curious what setting suits people. It should be the feature request. Please, contact Len Brown on that. |