Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Jan 2002 12:37:20 +0100 (CET)
From:      Ruben van Staveren <ruben@verweg.com>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   i386/33986: SMP and audio causes hard lockups (random)
Message-ID:  <200201171137.g0HBbK708374@helium-vw.xs4all.nl>

next in thread | raw e-mail | index | archive | help

>Number:         33986
>Category:       i386
>Synopsis:       SMP and audio causes hard lockups (random)
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jan 17 03:40:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Ruben van Staveren
>Release:        FreeBSD 4.5-RC i386
>Organization:
Verweg dot Com
>Environment:
System: FreeBSD helium.verweg.com 4.5-RC FreeBSD 4.5-RC #1: Sat Jan 12 14:08:38 CET 2002 root@helium.verweg.com:/usr/obj/usr/cvsup/4.0-stable/src/sys/GENERIC-SMP i386

Motherboard is a ASUS P2B-DS, Bios rev. 1012B

Copyright (c) 1992-2002 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 4.5-RC #1: Sat Jan 12 14:08:38 CET 2002
    root@helium.verweg.com:/usr/obj/usr/cvsup/4.0-stable/src/sys/GENERIC-SMP
Timecounter "i8254"  frequency 1193182 Hz
CPU: Pentium II/Pentium II Xeon/Celeron (400.91-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x652  Stepping = 2
  Features=0x183fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR>
real memory  = 268423168 (262132K bytes)
avail memory = 257302528 (251272K bytes)
Programming 24 pins in IOAPIC #0
IOAPIC #0 intpin 2 -> irq 0
FreeBSD/SMP: Multiprocessor motherboard
 cpu0 (BSP): apic id:  1, version: 0x00040011, at 0xfee00000
 cpu1 (AP):  apic id:  0, version: 0x00040011, at 0xfee00000
 io0 (APIC): apic id:  2, version: 0x00170011, at 0xfec00000
Preloaded elf kernel "kernel" at 0xc0398000.
Pentium Pro MTRR support enabled
md0: Malloc disk
Using $PIR table, 7 entries at 0xc00f0d20
apm0: <APM BIOS> on motherboard
apm: found APM BIOS v1.2, connected at v1.2
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Intel 82443BX (440 BX) host to PCI bridge> on motherboard
IOAPIC #0 intpin 19 -> irq 2
IOAPIC #0 intpin 18 -> irq 9
IOAPIC #0 intpin 17 -> irq 11
pci0: <PCI bus> on pcib0
pcib1: <Intel 82443BX (440 BX) PCI-PCI (AGP) bridge> at device 1.0 on pci0
IOAPIC #0 intpin 16 -> irq 13
pci1: <PCI bus> on pcib1
pci1: <VGA-compatible display device> at 0.0 irq 13
isab0: <Intel 82371AB PCI to ISA bridge> at device 4.0 on pci0
isa0: <ISA bus> on isab0
pci0: <Intel PIIX4 ATA controller> at 4.1
uhci0: <Intel 82371AB/EB (PIIX4) USB controller> port 0xd400-0xd41f irq 2 at device 4.2 on pci0
usb0: <Intel 82371AB/EB (PIIX4) USB controller> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
Timecounter "PIIX"  frequency 3579545 Hz
chip1: <Intel 82371AB Power management controller> port 0xe800-0xe80f at device 4.3 on pci0
ahc0: <Adaptec aic7890/91 Ultra2 SCSI adapter> port 0xd000-0xd0ff mem 0xe0800000-0xe0800fff irq 2 at device 6.0 on pci0
aic7890/91: Ultra2 Wide Channel A, SCSI Id=7, 32/255 SCBs
fxp0: <Intel Pro 10/100B/100+ Ethernet> port 0xb800-0xb81f mem 0xe0000000-0xe00fffff,0xe3000000-0xe3000fff irq 2 at device 9.0 on pci0
fxp0: Ethernet address 00:90:27:35:f5:2f
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp1: <Intel Pro 10/100B/100+ Ethernet> port 0xb400-0xb43f mem 0xdf000000-0xdf0fffff,0xdf800000-0xdf800fff irq 9 at device 10.0 on pci0
fxp1: Ethernet address 00:90:27:90:19:ba
inphy1: <i82555 10/100 media interface> on miibus1
inphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
pci0: <unknown card> (vendor=0x1274, dev=0x5000) at 11.0 irq 11
orm0: <Option ROMs> at iomem 0xc0000-0xc7fff,0xc8000-0xc8fff on isa0
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model MouseMan+, device ID 0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/9 bytes threshold
ppi0: <Parallel I/O> on ppbus0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
APIC_IO: Testing 8254 interrupt delivery
APIC_IO: routing 8254 via IOAPIC #0 intpin 2
DUMMYNET initialized (011031)
IPv6 packet filtering initialized, logging disabled
IP packet filtering initialized, divert enabled, rule-based forwarding enabled, default to deny, logging disabled
Waiting 5 seconds for SCSI devices to settle
SMP: AP CPU #1 Launched!
Mounting root from ufs:/dev/da0s1a
da0 at ahc0 bus 0 target 6 lun 0
da0: <IBM DDRS-39130D DC1B> Fixed Direct Access SCSI-2 device 
da0: 80.000MB/s transfers (40.000MHz, offset 15, 16bit), Tagged Queueing Enabled
da0: 8715MB (17850000 512 byte sectors: 255H 63S/T 1111C)

#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
#    http://www.FreeBSD.org/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ./LINT configuration file. If you are
# in doubt as to the purpose or necessity of a line, check first in LINT.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.37 2001/12/19 18:34:45 iedowse Exp $

machine		i386
cpu		I586_CPU
cpu		I686_CPU
ident		GENERIC-SMP
maxusers	0

#makeoptions	DEBUG=-g		#Build kernel with gdb(1) debug symbols

options 	MATH_EMULATE		#Support for x87 emulation
options 	INET			#InterNETworking
options 	INET6			#IPv6 communications protocols
options 	FFS			#Berkeley Fast Filesystem
options 	FFS_ROOT		#FFS usable as root device [keep this!]
options 	SOFTUPDATES		#Enable FFS soft updates support
options 	UFS_DIRHASH		#Improve performance on big directories
options 	MFS			#Memory Filesystem
options 	MD_ROOT			#MD is a potential root device
options 	NFS			#Network Filesystem
options 	NFS_ROOT		#NFS usable as root device, NFS required
options 	MSDOSFS			#MSDOS Filesystem
options 	CD9660			#ISO 9660 Filesystem
options 	CD9660_ROOT		#CD-ROM usable as root, CD9660 required
options 	PROCFS			#Process filesystem
options 	COMPAT_43		#Compatible with BSD 4.3 [KEEP THIS!]
options 	SCSI_DELAY=5000	#Delay (in ms) before probing SCSI
options 	UCONSOLE		#Allow users to grab the console
options 	USERCONFIG		#boot -c editor
options 	VISUAL_USERCONFIG	#visual boot -c editor
options 	KTRACE			#ktrace(1) support
options 	SYSVSHM			#SYSV-style shared memory
options 	SYSVMSG			#SYSV-style message queues
options 	SYSVSEM			#SYSV-style semaphores
options 	P1003_1B		#Posix P1003_1B real-time extensions
options 	_KPOSIX_PRIORITY_SCHEDULING
options		ICMP_BANDLIM		#Rate limit bad replies
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev

# To make an SMP kernel, the next two are needed
options 	SMP			# Symmetric MultiProcessor Kernel
options 	APIC_IO			# Symmetric (APIC) I/O

device		isa
device		eisa
device		pci

# Floppy drives
device		fdc0	at isa? port IO_FD1 irq 6 drq 2
device		fd0	at fdc0 drive 0
device		fd1	at fdc0 drive 1
#
# If you have a Toshiba Libretto with its Y-E Data PCMCIA floppy,
# don't use the above line for fdc0 but the following one:
#device		fdc0

device		ahc		# AHA2940 and onboard AIC7xxx devices

# SCSI peripherals
device		scbus		# SCSI bus (required)
device		da		# Direct Access (disks)
device		sa		# Sequential Access (tape etc)
device		cd		# CD
device		pass		# Passthrough device (direct SCSI access)

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc0	at isa? port IO_KBD
device		atkbd0	at atkbdc? irq 1 flags 0x1
device		psm0	at atkbdc? irq 12

device		vga0	at isa?

# splash screen/screen saver
pseudo-device	splash

# syscons is the default console driver, resembling an SCO console
device		sc0	at isa? flags 0x100

# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device		vt0	at isa?
#options 	XSERVER			# support for X server on a vt console
#options 	FAT_CURSOR		# start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
#options 	PCVT_SCANSET=2		# IBM keyboards are non-std

# Floating point support - do not disable.
device		npx0	at nexus? port IO_NPX irq 13

# Power management support (see LINT for more options)
# device		apm0    at nexus? disable flags 0x20 # Advanced Power Management
device		apm0


# Serial (COM) ports
device		sio0	at isa? port IO_COM1 flags 0x10 irq 4
device		sio1	at isa? port IO_COM2 irq 3
device		sio2	at isa? disable port IO_COM3 irq 5
device		sio3	at isa? disable port IO_COM4 irq 9

# Parallel port
device		ppc0	at isa? irq 7
device		ppbus		# Parallel port bus (required)
device		lpt		# Printer
device		plip		# TCP/IP over parallel
device		ppi		# Parallel port interface device
#device		vpo		# Requires scbus and da



# 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!
device		miibus		# MII bus support
device		fxp		# Intel EtherExpress PRO/100B (82557, 82558)

# Pseudo devices - the number indicates how many units to allocate.
pseudo-device	loop		# Network loopback
pseudo-device	ether		# Ethernet support
pseudo-device	sl	1	# Kernel SLIP
pseudo-device	ppp	1	# Kernel PPP
pseudo-device	tun		# Packet tunnel.
pseudo-device	pty		# Pseudo-ttys (telnet etc)
pseudo-device	md		# Memory "disks"
pseudo-device	gif		# IPv6 and IPv4 tunneling
pseudo-device	faith	1	# IPv6-to-IPv4 relaying (translation)

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device	bpf		#Berkeley packet filter

# USB support
device		uhci		# UHCI PCI->USB interface
device		ohci		# OHCI PCI->USB interface
device		usb		# USB Bus (required)
device		ugen		# Generic
device		uhid		# "Human Interface Devices"
device		ukbd		# Keyboard
device		ulpt		# Printer
device		umass		# Disks/Mass storage - Requires scbus and da
device		ums		# Mouse
device		uscanner	# Scanners
device		urio		# Diamond Rio MP3 Player
# USB Ethernet, requires mii
device		aue		# ADMtek USB ethernet
device		cue		# CATC USB ethernet
device		kue		# Kawasaki LSI USB ethernet

options 	IPFIREWALL		#firewall
options 	IPFIREWALL_FORWARD	#enable transparent proxy support
options 	IPV6FIREWALL		#firewall for IPv6
options 	IPDIVERT		#divert sockets
options 	IPSTEALTH		#support for stealth forwarding
options 	DUMMYNET
options 	USER_LDT		#allow user-level control of i386 ldt

# Disk quotas are supported when this option is enabled.
options 	QUOTA			#enable disk quotas



===============================================================================

MPTable, version 2.0.15

 looking for EBDA pointer @ 0x040e, found, searching EBDA @ 0x0009f800
 searching CMOS 'top of mem' @ 0x0009f400 (637K)
 searching default 'top of mem' @ 0x0009fc00 (639K)
 searching BIOS @ 0x000f0000

 MP FPS found in BIOS @ physical addr: 0x000f6ed0

-------------------------------------------------------------------------------

MP Floating Pointer Structure:

  location:			BIOS
  physical address:		0x000f6ed0
  signature:			'_MP_'
  length:			16 bytes
  version:			1.4
  checksum:			0x59
  mode:				Virtual Wire

-------------------------------------------------------------------------------

MP Config Table Header:

  physical address:		0x000f6ace
  signature:			'PCMP'
  base table length:		268
  version:			1.4
  checksum:			0x41
  OEM ID:			'OEM00000'
  Product ID:			'PROD00000000'
  OEM table pointer:		0x00000000
  OEM table size:		0
  entry count:			25
  local APIC address:		0xfee00000
  extended table length:	124
  extended table checksum:	192

-------------------------------------------------------------------------------

MP Config Base Table Entries:

--
Processors:	APIC ID	Version	State		Family	Model	Step	Flags
		 1	 0x11	 BSP, usable	 6	 5	 2	 0x183fbff
		 0	 0x11	 AP, usable	 6	 5	 2	 0x183fbff
--
Bus:		Bus ID	Type
		 0	 PCI   
		 1	 PCI   
		 2	 ISA   
--
I/O APICs:	APIC ID	Version	State		Address
		 2	 0x11	 usable		 0xfec00000
--
I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN#
		ExtINT	 conforms    conforms	     2	   0	      2	   0
		INT	 conforms    conforms	     2	   1	      2	   1
		INT	 conforms    conforms	     2	   0	      2	   2
		INT	 conforms    conforms	     2	   3	      2	   3
		INT	 conforms    conforms	     2	   4	      2	   4
		INT	 conforms    conforms	     2	   5	      2	   5
		INT	 conforms    conforms	     2	   6	      2	   6
		INT	 conforms    conforms	     2	   7	      2	   7
		INT	 conforms    conforms	     2	   8	      2	   8
		INT	 conforms    conforms	     2	  10	      2	  10
		INT	 conforms    conforms	     2	  12	      2	  12
		INT	active-lo       level	     1	 0:A	      2	  16
		INT	active-lo       level	     0	 4:D	      2	  19
		INT	active-lo       level	     0	 6:A	      2	  19
		INT	active-lo       level	     0	 9:A	      2	  19
		INT	active-lo       level	     0	10:A	      2	  18
		INT	active-lo       level	     0	11:A	      2	  17
--
Local Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN#
		ExtINT	active-hi        edge	     2	   0	    255	   0
		NMI	active-hi        edge	     2	   0	    255	   1

-------------------------------------------------------------------------------

MP Config Extended Table Entries:

--
System Address Space
 bus ID: 0 address type: I/O address
 address base: 0x0
 address range: 0x10000
--
System Address Space
 bus ID: 0 address type: memory address
 address base: 0x10000000
 address range: 0xd2e00000
--
System Address Space
 bus ID: 0 address type: prefetch address
 address base: 0xe2e00000
 address range: 0x5200000
--
System Address Space
 bus ID: 0 address type: memory address
 address base: 0xe8000000
 address range: 0x18000000
--
System Address Space
 bus ID: 0 address type: memory address
 address base: 0xa0000
 address range: 0x20000
--
Bus Heirarchy
 bus ID: 2 bus info: 0x01 parent bus ID: 0
--
Compatibility Bus Address
 bus ID: 0 address modifier: add
 predefined range: 0x00000000
--
Compatibility Bus Address
 bus ID: 0 address modifier: add
 predefined range: 0x00000001

===============================================================================


/boot/loader.conf

#snd_es137x_load="YES"		# es1370/es1371/es1373/ct5880 pci

>Description:



Message-ID: <20020116092057.GA11305@erg.verweg.com>
References: <20020104101054.A26506@mikea.ath.cx> <20020104160606.F46320-100000@galatea.internal.lustygrapes.net>

On Mon, Jan 07, 2002 at 07:55:14PM +0100, Ruben van Staveren wrote:
> These hangs seem very similar to what I am experiencing and wrote earlier
> about in message id's <20011115205310.A13588@erg.verweg.com> and
> <20011226235825.A9317@erg.verweg.com>
> > I've recompiled almost everything on my system that possibly could interact
> with kernel internals. I set my bios to MPS 1.4 specification (I still wonder
> what it does, has something to do with interrupt assignment ?) but still
> these lockups while running a SMP kernel. Uniprocessor is just fine.
> > For the moment I have unloaded my audio device drivers from loader.conf
> (FYI, it is an AudioPCI ES1370 card (SB 128 PCI))

System is running just fine ever since, putting back in the audio support
makes it unstable again. 

Lockups show up in a couple of minutes or after several hours and always when
running a X session.


>How-To-Repeat:

Load audiodrivers, run GENERIC-SMP kernel on a ASUS P2B-DS
start a xsession with either a windowmaker or gnome desktop and
your lockup will show up sooner or later. Not necessarely when playing audio,
and load does not seem to be a factor too. System lockups hard and good.
No break to serial debugger possible. Sometimes the system may unlock to lockup
again after a few minutes

Trying to hog the system with either mplayer or xmms may speed things up

It was also mentioned by other people that running a dnetc client made the
system unstable, but my case seems to be the audio <-> SMP interaction.

The hard lockups where introduced sometime after 4.3-RELEASE, and it worked
with no instability issues before.


>Fix:

I haven't the faintest idea, but a good starting point would be scrutinizing
the changelogs/changes of the SMP and (new)pcm subsystems.


>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200201171137.g0HBbK708374>