i386/79080: acpi thermal changes freezes HP nx6110
Yousif Hassan
yousif at alumni.jmu.edu
Sat Jan 5 10:50:02 PST 2008
The following reply was made to PR i386/79080; it has been noted by GNATS.
From: "Yousif Hassan" <yousif at alumni.jmu.edu>
To: <bug-followup at FreeBSD.org>,
<juho.vuori at kepa.fi>,
<chardon.frederic at gmail.com>
Cc:
Subject: Re: i386/79080: acpi thermal changes freezes HP nx6110
Date: Sat, 5 Jan 2008 13:19:08 -0500
The problem is still found in the most recent 7.0 RC code as well.
Has something to do with a Mutex lock/unlock problem when the thermal
zone change occurs - it doesn't appear to be an interrupt storm any
longer.
It is assuredly ACPI-related, because disabling ACPI makes the freezes
go away. However, this laptop does not function well without ACPI so
it's not a good workaround. USB devices do not work w/o ACPI, as well
as other hardware.
There are several suggested workarounds I tried, none of which resoloved
the issue. These included building the kernel with apic, disabling apic,
manually changing the hw.acpi.thermal.tz0.active number (my nx6110
seems to want to keep it at 1 no matter what), and using the ULE
scheduler rather than the 4BSD. Again, none of the above workarounds,
in any combination, solved the issue.
INFORMATION
-----------
Turning on debugging, the following appears right before the lock,
as soon as temperature rises enough to trigger a change in the zone:
acpi_tz0: _AC3: temperature 68.0 >= setpoint 45.0
acpi_tz0: _AC2: temperature 68.0 >= setpoint 55.0
acpi_tz0: _AC3: temperature 67.0 >= setpoint 45.0
acpi_tz0: _AC2: temperature 67.0 >= setpoint 55.0
...etc...
and then:
ACPI Exception (utmutex-0376): AE_TIME, Thread 28 could not acquire Mutex
[0] [20070320]
ACPI Error (exutils-0180): Could not acquire AML Interpreter mutex
[20070320]
ACPI Error (utmutex-0421): Mutex [0] is not acquired, cannot release
[20070320]
ACPI Error (exutils-0250): Could not release AML Interpreter mutex
[20070320]
ACPI Exception (utmutex-0376): AE_TIME, Thread 28 could not acquire Mutex
[0] [20070320]
ACPI Error (exutils-0180): Could not acquire AML Interpreter mutex
[20070320]
ACPI Error (psparse-0626): Method parse/execution failed [\_TZ_.C242] (Node
0xc321c220), AE_TIME
ACPI Error (psparse-0626): Method parse/execution failed [\_TZ_.TZ1_._TMP]
(Node 0xc321b9c0), AE_TIME
ACPI Error (utmutex-0421): Mutex [0] is not acquired, cannot release
[20070320]
ACPI Error (exutils-0250): Could not release AML Interpreter mutex
[20070320]
ACPI Error (psparse-0626): Method parse/execution failed [\_TZ_.C242] (Node
0xc321c220), AE_TIME
ACPI Error (psparse-0626): Method parse/execution failed [\_TZ_.TZ2_._TMP]
(Node 0xc321b8c0), AE_TIME
ACPI Error (utmutex-0421): Mutex [0] is not acquired, cannot release
[20070320]
ACPI Error (exutils-0250): Could not release AML Interpreter mutex
[20070320]
(the errors continue to repeat ad infinitum, and each TZ reports problems)
As a result, you will eventually see:
acpi_tz0: error fetching current temperature -- AE_TIME
acpi_tz1: error fetching current temperature -- AE_TIME
(..etc...)
The interesting thing is that THIS PROBLEM DOES NOT APPEAR in FreeBSD
6.2-RELEASE nor in any of the 6.3-RC variants. It's unique to FreeBSD
7, and it involves some of the new ACPI mutex code.
This is definitely a regression for this particular laptop since it worked
well
in 6.x - so as such, maybe it would be worthwhile to investigate this bug.
It seems general enough that it could affect other laptop ASLs as well.
The ASL dump AND a sysctl dump can be found:
http://www.far-far-away.com/~yousif/freebsd/
Please let me know if more information is needed.
--Yousif
More information about the freebsd-acpi
mailing list