From owner-freebsd-stable@FreeBSD.ORG Wed Aug 12 07:47:20 2009 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 95A14106564A for ; Wed, 12 Aug 2009 07:47:20 +0000 (UTC) (envelope-from cptsalek@gmail.com) Received: from mail-ew0-f212.google.com (mail-ew0-f212.google.com [209.85.219.212]) by mx1.freebsd.org (Postfix) with ESMTP id 20D328FC41 for ; Wed, 12 Aug 2009 07:47:19 +0000 (UTC) Received: by ewy8 with SMTP id 8so3882940ewy.36 for ; Wed, 12 Aug 2009 00:47:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=upFu91WzVp7jDhCst+1eoN/Sn4tmAftGBSgaWpJcpIo=; b=QIKa0UmZDiIXHe5gb2s88tryu8kPN2DjzC1e3N9FD1ecmRh3UYf+J7qqPooogdinwi 94QuvMFmoNn4DsQpGlN3iwDAlTMMhxx613DwkDOMj+U4YJ9wzbQhLHHE+oYe2Xy5czzB vRNhas+yFOiqSmIpMdcq47otZQpirmG98F+iA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=AbRAFxulzQ+M9MfPsKBdexHlj+xu+YWjQuPLIqaiS7+uJi7dZOjsC9px8u1F2ZY05z 1LORL7HqtRJNau3KGs7OBqopvXEII6CwzuwLDvcbLrquY9PIN54aUlX2QjBMsE0f9nym 9CLxq3omh3QZSmSLMH7zLXRMWJW0EK3n4/mN0= MIME-Version: 1.0 Received: by 10.210.19.7 with SMTP id 7mr2071930ebs.52.1250063238968; Wed, 12 Aug 2009 00:47:18 -0700 (PDT) Date: Wed, 12 Aug 2009 09:47:18 +0200 Message-ID: <14989d6e0908120047j29806c80gb92f0aac881bcf1f@mail.gmail.com> From: Christian Walther To: freebsd-stable@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Cpufreq/ACPI problem? (basically still is: "Re: Problem with IBM Thinkpad T30 shutting down due to high temperatures") X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Aug 2009 07:47:20 -0000 Hi, thank you for all your feedback. I won't answer all replies in detail, but will summarise what I did to give you some sort of report. Doug made me think about the beginning of this situation. I can't tell you for sure that I had the T30 working flawlessly, because I took the original install from another, older thinkpad. But I did change some BIOS settings, Interrupt settings, mainly, that seem to cause problems with my Wireless NIC in the past. So I restored the BIOS defaults. This seems to make the problem disappear, but to be honest: I'm not sure if I messed up the ACPI table at all, or if this is some sort of performance issue, because I now have all IO bound devices on IRQ 11: vgapci0: port 0x3000-0x30ff mem 0xe8000000-0xefffffff,0xd0100000-0xd010ffff irq 11 at device 0.0 on pci1 uhci0: port 0x1800-0x181f irq 11 at device 29.0 on pci0 uhci1: port 0x1820-0x183f irq 11 at device 29.1 on pci0 uhci2: port 0x1840-0x185f irq 11 at device 29.2 on pci0 cbb0: mem 0x50000000-0x50000fff irq 11 at device 0.0 on pci2 cbb1: mem 0x51000000-0x51000fff irq 11 at device 0.1 on pci2 fxp0: port 0x8000-0x803f mem 0xd0200000-0xd0200fff irq 11 at device 8.0 on pci2 pcm0: port 0x1c00-0x1cff,0x18c0-0x18ff irq 11 at device 31.5 on pci0 This causes screen refresh problems (e.g. urxvt isn't able to draw new lines as expected). Still, this didn't resolve the issue, so I took a look at acpi_thermal. Right now I have the following set in /etc/sysctl.conf hw.acpi.thermal.user_override=1 hw.acpi.thermal.tz0._PSV=84.0C hw.acpi.thermal.polling_rate=2 This basically gives me: # sysctl -a|egrep "(temp|freq|acpi.therm|acpi_ibm.*fan)" kern.acct_chkfreq: 15 kern.timecounter.tc.i8254.frequency: 1193182 kern.timecounter.tc.ACPI-fast.frequency: 3579545 kern.timecounter.tc.TSC.frequency: 2000000000 net.inet.sctp.sack_freq: 2 net.inet6.ip6.use_tempaddr: 0 net.inet6.ip6.temppltime: 86400 net.inet6.ip6.tempvltime: 604800 net.inet6.ip6.prefer_tempaddr: 0 debug.cpufreq.verbose: 0 debug.cpufreq.lowest: 0 hw.acpi.thermal.min_runtime: 0 hw.acpi.thermal.polling_rate: 2 hw.acpi.thermal.user_override: 1 hw.acpi.thermal.tz0.temperature: 62.0C hw.acpi.thermal.tz0.active: 0 hw.acpi.thermal.tz0.passive_cooling: 1 hw.acpi.thermal.tz0.thermal_flags: 0 hw.acpi.thermal.tz0._PSV: 84.0C hw.acpi.thermal.tz0._HOT: -1 hw.acpi.thermal.tz0._CRT: 92.0C hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 hw.acpi.thermal.tz0._TC1: 5 hw.acpi.thermal.tz0._TC2: 3 hw.acpi.thermal.tz0._TSP: 600 machdep.acpi_timer_freq: 3579545 machdep.tsc_freq: 2000000000 machdep.i8254_freq: 1193182 dev.acpi_ibm.0.fan_speed: 4465 dev.acpi_ibm.0.fan_level: 0 dev.acpi_ibm.0.fan: 1 dev.cpu.0.freq: 2000 dev.cpu.0.freq_levels: 2000/0 1750/0 1500/0 1250/0 1200/0 1050/0 900/0 750/0 600/0 450/0 300/0 dev.acpi_perf.0.freq_settings: 2000/0 1200/0 dev.cpufreq.0.%driver: cpufreq dev.cpufreq.0.%parent: cpu0 dev.p4tcc.0.freq_settings: 10000/-1 8750/-1 7500/-1 6250/-1 5000/-1 3750/-1 2500/-1 Active cooling doesn't seem to be supported. There is a fan of course, and I can even set a fan level via dev.acpi_ibm.0.fan, but this is not related to hw.acpi.thermal.tz0._HOT and hw.acpi.thermal.tz0._ACx (which is read only anyway). According to dev.acpi_ibm.0.fan_speed the speed of the fan is something between 4450 and 4780. The interesting bit here is cpufreq and how it behaves. Lets have a look at the output of the following loop: # while true ; do temp=$( sysctl hw.acpi.thermal.tz0.temperature ) ; freq=$( sysctl dev.cpu.0.freq ) ; printf "%4s %4s\n" $freq[17,$#freq] $temp[34,$#temp] ; sleep 2 ; done 2000 84.0C 2000 85.0C 2000 85.0C 2000 85.0C 2000 86.0C 300 86.0C 300 86.0C 300 86.0C 300 85.0C 300 84.0C 300 82.0C 300 81.0C It appears that cpufreq requires at least eight seconds to reduce the frequency. There are two issues I'm seeing here: Firstly hw.acpi.thermal.polling_rate: 2 Either I get this one wrong, or cpufreq doesn't react after every poll. I've seen this in the past, but not as good as now. Secondly cpufreq doesn't seem to use dev.cpu.0.freq_levels at all, but drop to the lowest frequency available. And it does the same the other way round, too. I was able to built a new userland and kernel yesterday, so I'll do some more testing with a decent system after a clean reboot. The kernel I want to use next time will be plain GENERIC. This does not turn on support for active cooling in any way, something I was thinking about because according to acpi_ibm fan levels from 0 to 7 are supported. And setting them manually works, so I guess this should be possible with acpi.thermal, too. Or am I mistaken and acpi.thermal and acpi_ibm don't interact with each other? The interesting bit here is cpufreq: Is the behaviour normal and to be expected, or is this possibly a bug? Regards Christian Walther