Subject: kern/24544: Lots of MULTIPROCESSOR panic trap 6 lock/unlock
To: None <gnats-bugs@gnats.NetBSD.org>
From: Claudio M.Camacho <claudiocamacho@vodafone.es>
List: netbsd-bugs
Date: 02/24/2004 12:16:55
>Number:         24544
>Category:       kern
>Synopsis:       Lots of MP panic traps (type 6) locking/unlocking
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Feb 24 11:18:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        NetBSD 1.6ZK (2004190000 releng.netbsd.org binaries)
>Organization:
>Environment:
System: NetBSD Insomnia 1.6ZK NetBSD 1.6ZK (MYKERNEL) #0:
Mon Feb 23 10:11:40 CET 2004
root@Insomnia:/usr/src/sys/arch/i386/compile/MYKERNEL i386
Architecture: i386 (Intel)
Machine: i386 (Pentium4 2.6GHz HyperThreading 2-Logical CPUs)
Kernel conf file:
# MYKERNEL
include 	"arch/i386/conf/std.i386"
options 	INCLUDE_CONFIG_FILE
ident 		"MYKERNEL"
maxusers	64
options		MULTIPROCESSOR
options		COM_MPLOCK
options		LOCKDEBUG
options		MPDEBUG
options 	I686_CPU

# CPU-related options.
options 	MATH_EMULATE	# floating point emulation
options 	VM86		# virtual 8086 emulation
options 	USER_LDT	# user-settable LDT; used by WINE
options 	MTRR		# memory-type range register syscall support

# Standard system options
options 	INSECURE	# disable kernel security levels - X needs this
options 	RTC_OFFSET=0	# hardware clock is this many mins. west of GMT
options 	NTP		# NTP phase/frequency locked loop
options 	KTRACE		# system call tracing via ktrace(1)
options 	SYSTRACE	# system call vetting via systrace(1)
options 	SYSVMSG		# System V-like message queues
options 	SYSVSEM		# System V-like semaphores
options 	SYSVSHM		# System V-like memory sharing
options 	P1003_1B_SEMAPHORE	# p1003.1b semaphore support
options 	LKM		# loadable kernel modules
options 	USERCONF	# userconf(4) support

# Enable experimental buffer queue strategy for better responsiveness under 
# high disk I/O load. Use it with caution - it's not proven to be stable yet.
options 	NEW_BUFQ_STRATEGY

# Compatibility options
options 	COMPAT_NOMID	# NetBSD 0.8, 386BSD, and BSDI
options 	COMPAT_09	# NetBSD 0.9
options 	COMPAT_10	# NetBSD 1.0
options 	COMPAT_11	# NetBSD 1.1
options 	COMPAT_12	# NetBSD 1.2, 386BSD, and BSDI
options 	COMPAT_13	# NetBSD 1.3, 386BSD, and BSDI
options 	COMPAT_14	# NetBSD 1.4
options 	COMPAT_15	# NetBSD 1.5
options 	COMPAT_16	# NetBSD 1.6
options 	COMPAT_43	# 4.3BSD, 386BSD, and BSDI
options 	COMPAT_386BSD_MBRPART # recognize old partition ID
options 	COMPAT_LINUX	# binary compatibility with Linux

# File systems
file-system 	FFS		# UFS
file-system 	EXT2FS		# second extended file system (linux)
file-system 	LFS		# log-structured file system
file-system 	MFS		# memory file system
file-system 	NFS		# Network File System client
file-system 	CD9660		# ISO 9660 + Rock Ridge file system
file-system 	MSDOSFS		# MS-DOS file system
file-system 	FDESC		# /dev/fd
file-system 	KERNFS		# /kern
file-system 	NULLFS		# loopback file system
file-system 	PROCFS		# /proc

# File system options
options 	QUOTA		# UFS quotas
options 	SOFTDEP		# FFS soft updates support.

# Networking options
options 	INET		# IP + ICMP + TCP + UDP
options 	ISO,TPIP	# OSI
options 	PFIL_HOOKS	# pfil(9) packet filter hooks
options 	IPFILTER_LOG	# ipmon(8) log support
options 	NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM

# wscons options
options 	WSEMUL_VT100		# VT100 / VT220 emulation
options 	WS_KERNEL_FG=WSCOL_GREEN
options 	WS_KERNEL_BG=WSCOL_BLACK
options 	WSDISPLAY_COMPAT_PCVT		# emulate some ioctls
options 	WSDISPLAY_COMPAT_SYSCONS	# emulate some ioctls
options 	WSDISPLAY_COMPAT_USL		# VT handling
options 	WSDISPLAY_COMPAT_RAWKBD		# can get raw scancodes
options 	WSDISPLAY_DEFAULTSCREENS=1
options 	PCDISPLAY_SOFTCURSOR
options 	VGA_CONSOLE_ATI_BROKEN_FONTSEL

# Kernel root file system and dump configuration.
config		netbsd	root on wd0a type ffs

# Device configuration
mainbus0 at root

cpu* at mainbus?
ioapic* at mainbus? apid ?

apm0	at mainbus0			# Advanced power management
options 	APM_NO_IDLE		# Don't call BIOS CPU idle function


# Basic Bus Support
options 	MPBIOS		# configure CPUs and APICs using MPBIOS
options 	MPACPI		# configure CPUs and APICs using ACPI
acpi0 		at mainbus0
options 	ACPI_PCI_FIXUP		# PCI interrupt routing via ACPI
options 	ACPI_ACTIVATE_DEV	# If set, activate inactive devices

# PCI bus support
pci*	at mainbus? bus ?
pci*	at pchb? bus ?
pci*	at ppb? bus ?

# PCI bridges
pchb*	at pci? dev ? function ?	# PCI-Host bridges
pcib*	at pci? dev ? function ?	# PCI-ISA bridges
ppb*	at pci? dev ? function ?	# PCI-PCI bridges
agp* 	at pchb?

# ISA bus support
isa0	at mainbus?

# Coprocessor Support
# Math Coprocessor support
npx0	at isa? port 0xf0 irq 13	# x86 math coprocessor


# Console Devices
# wscons
pckbc0		at isa?			# pc keyboard controller
pckbd*		at pckbc?		# PC keyboard
pms*		at pckbc?		# PS/2 mouse for wsmouse
vga0		at isa?
vga*		at pci? dev ? function ?
pcdisplay0	at isa?			# CGA, MDA, EGA, HGA
wsdisplay*	at vga? console ?
wsdisplay*	at pcdisplay? console ?
wskbd*		at pckbd? console ?
wsmouse*	at pms? mux 0
pcppi0		at isa?
sysbeep0	at pcppi?

# Serial Devices
com0	at isa? port 0x3f8 irq 4	# Standard PC serial ports
com1	at isa? port 0x2f8 irq 3
com2	at isa? port 0x3e8 irq 5

# Parallel Printer Interfaces
lpt0	at isa? port 0x378 irq 7	# standard PC parallel ports

# IDE and related devices
piixide* 	at pci? dev ? function ? flags 0x0001	# Intel DMA
atabus* at ata?

# IDE drives
wd*	at atabus? drive ? flags 0x0000
atapibus* at atapi?

# ATAPI devices
cd*	at atapibus? drive ? flags 0x0000	# ATAPI CD-ROM drives

# Miscellaneous mass storage devices
fdc0	at isa? port 0x3f0 irq 6 drq 2	# standard PC floppy controllers
fd*	at fdc? drive ?			# the drives themselves

# Network Interfaces
rtk*	at pci? dev ? function ?	# Realtek 8129/8139
ukphy*	at mii? phy ?			# generic unknown PHYs

# USB Controller and Devices
uhci*	at pci?	dev ? function ?	# Universal Host Controller (Intel)
usb*	at uhci?
uhub*	at usb?
ugen*	at uhub? port ?

# Audio Devices
auich*	at pci? dev ? function ?	# Intel ICH integrated AC'97 Audio
audio*	at audiobus?

# Mice
wsmouse* at pms?


# Pull in optional local configuration
include	"arch/i386/conf/GENERIC.local"


# Pseudo-Devices
pseudo-device	ccd		4	# concatenated/striped disk devices
pseudo-device	md		1	# memory disk device (ramdisk)
pseudo-device	vnd		4	# disk-like interface to files
pseudo-device	bpfilter	8	# Berkeley packet filter
pseudo-device	ipfilter		# IP filter (firewall) and NAT
pseudo-device	loop			# network loopback
pseudo-device	tun		2	# network tunneling over tty
pseudo-device	gre		2	# generic L3 over IP tunnel
pseudo-device	gif		4	# IPv[46] over IPv[46] tunnel (RFC1933)
pseudo-device	vlan			# IEEE 802.1q encapsulation
pseudo-device	bridge			# simple inter-network bridging
pseudo-device	pty			# pseudo-terminals
pseudo-device	tb		1	# tablet line discipline
pseudo-device	sequencer	1	# MIDI sequencer
pseudo-device	rnd			# /dev/random and in-kernel generator
pseudo-device	clockctl		# user control of clock subsystem

# wscons pseudo-devices
pseudo-device	wsmux			# mouse & keyboard multiplexor
pseudo-device	wsfont
pseudo-device	ksyms			# /dev/ksyms

>Description:
	Since yesterday (20040203), i'm getting a lot of crashes in
	my box due to MP and vfs system (locks and unlocks). I use
	UFS for /, and LFS (without running lfs_cleanerd) in /var
	/usr and /home. I also use MFS in /tmp.

	I can't explain how but i live the system just 2 hours and when
	i come back it is stopped, and the green letters speaks out
	the kernel panic due to trap type 6.

	The kernel exactly says:

	simple_lock: uninitialized lock
	lock: 0x...., currently at: ../../../../kern/vfs_cache.c:222
	on CPU 0
	uvm_fault(0x..., 0, 0, 1) -> 0xe
	fatal page fault in supervisor mode
	trap type 6 code 0 eip c021b41a cs 8 eflags 10246 cr2 14 ilevel d
	panic=trap
	syncing disks... LK_SPIN spinout, excl 2, share 0
	held by CPU 0
	last locked at ../../../../kern_lock.c:1355
	last unlocked at ../../../../kern_lock.c:1364
	syncing disks... LK_SPIN spinout, excl 2, share 0
	held by CPU 0
	last locked at ../../../../kern_lock.c:1355
	last unlocked at ../../../../kern_lock.c:1364
	syncing disks... LK_SPIN spinout, excl 2, share 0
	held by CPU 0
	last locked at ../../../../kern_lock.c:1355
	last unlocked at ../../../../kern_lock.c:1364

	..and those 4 last lines indefinitely.
>How-To-Repeat:
	I don't know, it happens randomly, but I'm usually building
	some pkgsrc sources (not too heavy loads, just one package 
	at time). 
>Fix:
N/A
>Release-Note:
>Audit-Trail:
>Unformatted:
 		syssrc from 2004/02/23 at 10:00 pm aprox