From owner-freebsd-acpi@FreeBSD.ORG Sat Apr 3 01:16:22 2010 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 49FAD106566B for ; Sat, 3 Apr 2010 01:16:22 +0000 (UTC) (envelope-from freebsd@chillt.de) Received: from dd15624.kasserver.com (dd15624.kasserver.com [85.13.136.215]) by mx1.freebsd.org (Postfix) with ESMTP id 0D7E98FC16 for ; Sat, 3 Apr 2010 01:16:21 +0000 (UTC) Received: from taiko.lan (84-203-79-36.mysmart.ie [84.203.79.36]) by dd15624.kasserver.com (Postfix) with ESMTP id D47582C083C43 for ; Sat, 3 Apr 2010 02:57:34 +0200 (CEST) Message-ID: <4BB69279.6060005@chillt.de> Date: Sat, 03 Apr 2010 01:57:29 +0100 From: Bartosz Fabianowski User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.1.8) Gecko/20100303 Thunderbird/3.0.3 MIME-Version: 1.0 To: freebsd-acpi@freebsd.org Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Spurious thermal shutdowns on Dell Studio 1557 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Apr 2010 01:16:22 -0000 Hi list I have a Dell Studio 1557 laptop. When I first set up the machine in January 2010, I was able to compile the FreeBSD 8-STABLE base system and 700 ports without any thermal issues. Around mid-February 2010, I updated to a newer 8-STABLE. Since then, the computer has been shutting down due to "critical temperatures" whenever I run a CPU-intensive task for more than a few minutes. It is now impossible to compile Firefox or OpenOffice.org. The shutdowns are caused by TZ1, representing the CPU. The relevant sysctl output is: hw.acpi.thermal.tz1.temperature: 60.0C hw.acpi.thermal.tz1.active: 1 hw.acpi.thermal.tz1.passive_cooling: 1 hw.acpi.thermal.tz1.thermal_flags: 0 hw.acpi.thermal.tz1._PSV: 95.0C hw.acpi.thermal.tz1._HOT: -1 hw.acpi.thermal.tz1._CRT: 85.0C hw.acpi.thermal.tz1._ACx: 71.0C 55.0C -1 -1 -1 -1 -1 -1 -1 -1 hw.acpi.thermal.tz1._TC1: 0 hw.acpi.thermal.tz1._TC2: 10 hw.acpi.thermal.tz1._TSP: 2 Notice how _PSV=95°C > _CRT=85°C. This looks very fishy to me. At 95°C, the CPU should start throttling its speed, passively reducing temperature. But before it gets a chance to do so, the system shuts down due to reaching 85°C. I can work around this by overriding _CRT, setting it to e.g. 99°C. But this clearly is a hack. Prior to some change in FreeBSD, I did not experience any such problems. I disassembled the DSDT. The threshold values are computed as follows: Method (_PSV, 0, Serialized) { Return (Add (0x0AAC, Multiply (PSVT, 0x0A))) } Method (_CRT, 0, Serialized) { Return (Add (0x0AAC, Multiply (CRTT, 0x0A))) } The constants PSVT and CRTT are found in the following memory region: OperationRegion (GNVS, SystemMemory, 0xC779BC9E, 0x0200) Their actual values are PSVT=0x5F and CRTT=0x55, corresponding to a _PSV threshold 10°C higher than _CRT. All of this could be the BIOS' fault - a table of nonsense values set up incorrectly by Dell. However, I never touched the BIOS since first setting up the machine. The only thing that has changed is FreeBSD, not the BIOS. Could this be some problem in FreeBSD's ACPI implementation? Are the values being read or interpreted wrong? I know manufacturers often provide sloppy, wrong DSDTs. But these values would make even Windows shut down under moderate to high load. That cannot be right. I am happy to debug further if someone could give me pointers where to look. - Bartosz