i386/79080: acpi thermal changes freezes HP nx6110

Pavel Rydvan pryd at atlas.cz
Wed Nov 30 13:20:06 GMT 2005


The following reply was made to PR i386/79080; it has been noted by GNATS.

From: Pavel Rydvan <pryd at atlas.cz>
To: bug-followup at FreeBSD.org, juho.vuori at kepa.fi
Cc:  
Subject: Re: i386/79080: acpi thermal changes freezes HP nx6110
Date: Wed, 30 Nov 2005 14:15:49 +0100

 Hello,
 
 I am also using nx6110 and having the same problem. It also seems that 
 USB works only if ACPI is enabled (and, having no ports than USB, it 
 seems to be quite vital). Another astonishing connection is, that with 
 ACPI enabled, the notebook's touchpad started to be "tappable" (when i 
 tap to the surface, it performs a click), which never worked, but it 
 somehow started with enabling ACPI (and remains also when I disable it 
 again) -- it is out of my immagination and also out of toppic...
 
 As was told, notebook dies (when using SCHED_4BSD scheduler), or freezes 
 for approx. 2 seconds (when using SCHED_ULE), when the temperature 
 raises/drops above/below hw.acpi.thermal.tz0._ACx.
 
 There happens to appear a storm of acpi TZ_NOTIFY_TEMPERATURE messages. 
 When using SCHED_ULE, then --- after 2 seconds --- one occurence of 
 TZ_NOTIFY_LEVELS appears, then again one appearence of 
 TZ_NOTIFY_TEMPERATURE, and then the system continues in working well, 
 until another raise/drop happens.
 
 It seems that there should come some answer/action to the 
 TZ_NOTIFY_TEMPERATURE from the acpi_thermal driver, but it never happens 
 (or happens quite late). It seems to me that the answer is only "waked 
 up" (acpi_tz_signal function in acpi_thermal.c:640)  and is to be 
 performed by some other thread. I thought of moving that code "inside" 
 the actual thread, maybe it would help. But I do not understand ACPI at 
 all, so I do not know, WHAT the hw is expecting to happen:((.
 
 My "backup" idea was to set the ACx temperatures to values that cannot 
 be raised/dropped above/below, so the freezes wouldn't appear. And also 
 set some reasonable fan speed.
 
 There are 4+1 fan speeds (0=fastest, ... 3=slowest; -1=off), it is 
 possible to control their speed via sysctl hw.acpi.thermal.tz0.active=n, 
 which works well (no freeze when changing "by hand").
 
 There is following list of temperatures in hw.acpi.thermal.tz0._ACx:
 
 hw.acpi.thermal.tz0._ACx: 80.0C 70.0C 60.0C 45.0C -1 -1 -1 -1 -1 -1
 
 If I persuaded the ntb to have the list for example  80.0C 5.0C 4.0C 
 3.0C -1 -1 -1..., than the storm perhaps never happens.
 
 It seems to me that it is somehow possible to change the values in the 
 list (but I don't know, where they are dictated by sw or hw): when the 
 temperature (for example) raises above 60.0C, the list is (somehow) 
 smartly changed to 80.0C 70.0C 55.0C 45.0C. Notice that 60.0 changed to 
 55.0, so the temperature is not going to lower below the limit 
 immediately...
 
 I have no experiences or knowledge of ACPI, I just tried to use sysctl 
 to set the _ACx, but it is read-only. Is it possible to be set by sw? 
 Has anybody idea of how to accomplish?
 
 Pavel Rydvan
 
 P.S.: Another astonishing connection is, that with ACPI enabled, the 
 notebook's touchpad started to be "tappable" (when i tap to the surface, 
 it performs a click), which never worked in FreeBSD with xorg, but it 
 somehow appeared with enabling ACPI (and remains also when I disable it 
 again) -- it is out of my immagination but it is also off topic...


More information about the freebsd-acpi mailing list