Thermal Lockup
Scot Hetzel
swhetzel at gmail.com
Wed Dec 19 12:54:32 PST 2007
I had been noticing a problem with my HP Pavillion dv8135nr laptop
locking up everytime I would try to compile a large project
(buildworld, buildkernel, large port build (kde)). The laptop would
freeze to the point where it didn't respond to any keypresses.
My current solution is to place the laptop so that the air intake on
the bottom of the laptop is exposed, and then use a fan to blow
additional air through the air intake. This allowed compile to
finish.
I believe this problem first occurred after the switch to GCC 4.2, as
I didn't have any problem when 7.0-CURRENT was still compiling with
GCC 3.x.
# uname -a
FreeBSD hp010.hetzel.org 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Wed Dec
19 03:13:13 CST 2007
root at hp010.hetzel.org:/usr/src/8x/sys/amd64/compile/DV8135NR amd64
One thing I have noticed is that ACPI isn't able to determine the
temperature for this system:
# sysctl hw.acpi.thermal
hw.acpi.thermal.min_runtime: 0
hw.acpi.thermal.polling_rate: 10
hw.acpi.thermal.user_override: 0
hw.acpi.thermal.tz0.temperature: 0.0C
hw.acpi.thermal.tz0.active: -1
hw.acpi.thermal.tz0.passive_cooling: 1
hw.acpi.thermal.tz0.thermal_flags: 0
hw.acpi.thermal.tz0._PSV: 90.0C
hw.acpi.thermal.tz0._HOT: -1
hw.acpi.thermal.tz0._CRT: 94.0C
hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1
Sometimes when the system boots hw.acpi.thermal.tz0._CRT is set to -1.
But hw.acpi.thermal.tz0._HOT is always -1.
I installed the sysutils/k8temp utility, and it is able to read the
temperature from the processor.
# k8temp -d
CPUID: Vendor: AuthenticAMD, Id=0x20f42 Model=4 Family=15 Stepping=2
Advanced Power Management=0x3f
Temperature sensor: Yes
Frequency ID control: Yes
Voltage ID control: Yes
THERMTRIP support: Yes
HW Thermal control: Yes
SW Thermal control: Yes
100MHz multipliers: No
HW P-State control: No
TSC Invariant: No
Thermtrip=0x00000b24 (CurTmp=0x00 (-49c) TjOffset=0x00 DiodeOffset=0x0b (0c))
Thermtrip=0x006d0b20 (CurTmp=0x6d (60c) TjOffset=0x00 DiodeOffset=0x0b (0c))
CPU 0 Core 1 Sensor 0: 60c
I ran the following script during a buildkernel:
#!/bin/sh
while true ; do
date
echo "-sysctl--------------------"
sysctl -a hw.acpi.thermal
echo "-k8temp--------------------"
/usr/local/sbin/k8temp -d 2>&1
echo "==========================="
sync ; sleep 30
done
What it showed is that the values didn't change in hw.acpi.thermal,
while k8temp showed that the temperature would peak to 90c and then
the system would lockup. The only way out of the lockup was to reboot
the computer.
Attached are the kernel config file (DV8135NR), dmesg, and /boot/loader.conf .
Is there something that needs to change in the kernel config or
/boot/loader.conf files that would allow ACPI to report the
temperatures on this system?
The problem with the Thermal lockups may be related to the recent posts:
Dust out your Heat syncs!
CURRENT Kernel makes the system run very very hot
Scot
-------------- next part --------------
#
# GENERIC debugging kernel
#
# To use this kernel, you need to add the following to
# your /boot/loader.conf
#
# kernel=kernel_hp_debug
#
# $FreeBSD$
include GENERIC
ident DV8135NR-debug
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
makeoptions KODIR=/boot/${KERNEL}_hp_debug
# Debugging for use in -current
options KDB # Enable kernel debugger support.
options DDB # Support DDB.
options GDB # Support remote GDB.
options INVARIANTS # Enable calls of extra sanity checking
options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS
options WITNESS # Enable checks to detect deadlocks and cycles
options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
# This allows you to actually store this configuration file into
# the kernel binary itself, where it may be later read by saying:
# strings -n 3 /boot/kernel/kernel | sed -n 's/^___//p' > MYKERNEL
#
options INCLUDE_CONFIG_FILE # Include this file in kernel
# SCSI Controllers
nodevice ahc
nooptions AHC_REG_PRETTY_PRINT
nodevice ahd
nooptions AHD_REG_PRETTY_PRINT
nodevice amd
nodevice hptiop
nodevice isp
#nodevice ispfw
nodevice mpt
#nodevice ncr
nodevice sym
nodevice trm
nodevice adv
nodevice adw
nodevice aic
nodevice bt
# SCSI peripherals
# RAID controllers interfaced to the SCSI subsystem
nodevice amr
nodevice arcmsr
nodevice ciss
nodevice dpt
nodevice hptmv
nodevice hptrr
nodevice rr232x
nodevice iir
nodevice ips
nodevice mly
nodevice twa
# RAID controllers
nodevice aac
nodevice aacp
nodevice ida
nodevice mfi
nodevice mlx
#nodevice pst
nodevice twe
# atkbdc0 controls both the keyboard and the PS/2 mouse
# syscons is the default console driver, resembling an SCO console
# PCCARD (PCMCIA) support
# PCMCIA and cardbus bridge support
# Serial (COM) ports
# Parallel port
nodevice ppc
nodevice ppbus
nodevice lpt
nodevice plip
nodevice ppi
#nodevice vpo
#nodevice puc
# PCI Ethernet NICs.
nodevice de
nodevice em
nodevice ixgb
nodevice le
nodevice txp
nodevice vx
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
nodevice bce
nodevice bfe
nodevice bge
nodevice dc
nodevice fxp
nodevice lge
nodevice msk
nodevice nfe
nodevice nge
nodevice pcn
nodevice re
nodevice sf
nodevice sis
nodevice sk
nodevice ste
nodevice ti
nodevice tl
nodevice tx
nodevice vge
nodevice vr
nodevice wb
nodevice xl
# ISA Ethernet NICs. pccard NICs included.
nodevice cs
nodevice ed
nodevice ex
nodevice ep
nodevice fe
nodevice sn
nodevice xe
# Wireless NIC cards
nodevice wlan
nodevice wlan_wep
nodevice wlan_ccmp
nodevice wlan_tkip
nodevice wlan_amrr
nodevice wlan_scan_ap
nodevice wlan_scan_sta
nodevice an
nodevice ath
nodevice ath_hal
nodevice ath_rate_sample
nodevice awi
nodevice ral
nodevice wi
# Pseudo devices.
# USB support
nodevice ural
nodevice rum
# USB Serial devices
# USB Ethernet, requires miibus
nodevice aue
nodevice axe
nodevice cdce
nodevice cue
nodevice kue
nodevice rue
nodevice udav
# FireWire support
-------------- next part --------------
hw.acpi.thermal.min_runtime: 0
hw.acpi.thermal.polling_rate: 10
hw.acpi.thermal.user_override: 0
hw.acpi.thermal.tz0.temperature: 0.0C
hw.acpi.thermal.tz0.active: -1
hw.acpi.thermal.tz0.passive_cooling: 1
hw.acpi.thermal.tz0.thermal_flags: 0
hw.acpi.thermal.tz0._PSV: 90.0C
hw.acpi.thermal.tz0._HOT: -1
hw.acpi.thermal.tz0._CRT: 94.0C
hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1
-------------- next part --------------
kernel="kernel_hp_debug"
#kernel="kernel"
loader_logo="beastie"
radeon_load="YES"
#
smbus_load="YES"
iic_load="YES"
iicb_load="YES"
iicbb_load="YES"
iicbus_load="YES"
iicsmb_load="YES"
#intpm_load="YES"
#alpm_load="YES"
ichsmb_load="YES"
#viapm_load="YES"
amdpm_load="YES"
amdsmb_load="YES"
#nfpm_load="YES"
#nfsmb_load="YES"
smb_load="YES"
#
bcmwl564_sys_load="YES"
wlan_load="YES"
#wlan_acl_load="YES"
wlan_amrr_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"
wlan_wep_load="YES"
wlan_xauth_load="YES"
wlan_scan_ap_load="YES"
wlan_scan_sta_load="YES"
#
sound_load="YES"
snd_atiixp_load="YES"
#
uplcom_load="YES"
# Maximum files to open
kern.maxfiles="25000"
#increase semaphore limits
kern.ipc.semmni=40
kern.ipc.semmns=300
kern.ipc.maxpipekva=34201600
hint.acpi_throttle.0.disabled="1"
#hint.powernow.0.disabled="1"
zfs_load="YES"
vm.kmem_size="1073741824"
vm.kmem_size_max="1073741824"
More information about the freebsd-current
mailing list