Alexey Starikovskiy wrote: > Thomas Lindroth wrote: >> I've done some debugging of this problem myself and reached some >> conclusions. >> >> I tried activating the ACPI_LV_INFO ACPI debug mode and observed what >> happens >> when the system is under load. I saved one trace and put it in the file >> acpi_debug_log at http://www.cyd.liu.se/~tholi945/acpi-bug-2008-10-06/ >> >> When the temp goes over the ACPI passive trip point the processor gets >> throttled. It usually never goes over T4 before the temp falls below the >> passive temp but sometimes it reaches the highest T7. If it reach T7 the >> next call to _TMP or _L18 never returns. I've confirmed this by running >> echo T7 > /proc/acpi/processor/CPU*/throttling and then tried to read >> from /proc/acpi/thermal_zone/TZ00/temperature and it fails in the >> same way. >> >> I've tried activating the ACPI_LV_PARSE ACPI debug mode, enter T7 and >> read >> from temp. I put the result of that in the trace_debug file at the >> same adress. >> >> The AML call chain looks like this _TMP -> PMRD -> RCMD -> WIBF >> WIBF always returns 1 causing the interpreter to get stuck in the while >> loop in PMRD. >> >> While (RCMD (0x80, Local0)) >> { >> Noop >> Noop >> Store (PMUC, Local5) >> If (And (Local5, One, Local2)) >> { >> Store (PMUD, Local5) >> } >> } >> >> > This is AML implementation of EC driver... it relies on certain speed > of AML interpreter to work properly (look for Noop inserted as delay). > > It is possible to replace this driver with the native Linux one, which > might be > more robust, but this involves heavy DSDT hacking. > > Overall, it is heavily mis-designed BIOS, so don't expect it to be > fixed on Linux side. > > Regards, > Alex. Please check if making Noop a small delay helps