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