Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Mar 2003 14:21:58 +0900 (JST)
From:      Tod McQuillin <devin@spamcop.net>
To:        freebsd-current@freebsd.org
Subject:   lock order reversal?  current with tl ethernet
Message-ID:  <20030312141402.X61843@glass.pun-pun.prv>

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

Running -current from March 11 on a dual cpu compaq 5100, there are some
warnings in the dmesg about the tl ethernet interface.

Here are the warnings:

malloc() of "128" with the following non-sleepablelocks held:
exclusive sleep mutex tl0 (network driver) r = 0 (0xc4017aa8) locked @ /usr/src/5-current/src/sys/pci/if_tl.c:1146
malloc() of "PROC" with the following non-sleepablelocks held:
exclusive sleep mutex tl0 (network driver) r = 0 (0xc4017aa8) locked @ /usr/src/5-current/src/sys/pci/if_tl.c:1146
lock order reversal
 1st 0xc4017aa8 tl0 (network driver) @ /usr/src/5-current/src/sys/pci/if_tl.c:1146
 2nd 0xc043f8c0 allproc (allproc) @ /usr/src/5-current/src/sys/kern/kern_fork.c:328
Stack backtrace:
malloc() of "64" with the following non-sleepablelocks held:
exclusive sleep mutex tl0 (network driver) r = 0 (0xc4017aa8) locked @ /usr/src/5-current/src/sys/pci/if_tl.c:1146
malloc() of "256" with the following non-sleepablelocks held:
exclusive sleep mutex tl0 (network driver) r = 0 (0xc4017aa8) locked @ /usr/src/5-current/src/sys/pci/if_tl.c:1146
malloc() of "64" with the following non-sleepablelocks held:
exclusive sleep mutex tl0 (network driver) r = 0 (0xc4017aa8) locked @ /usr/src/5-current/src/sys/pci/if_tl.c:1146
malloc() of "512" with the following non-sleepablelocks held:
exclusive sleep mutex tl0 (network driver) r = 0 (0xc4017aa8) locked @ /usr/src/5-current/src/sys/pci/if_tl.c:658

I'm willing to work on this myself if someone can give me a pointer to
technical docs describing how things are supposed to work.

I have not yet attempted to use the tl0 interface since I also have an
fxp in the system, but I do plan on using it later.

Here's the complete dmesg with warnings intact:

Copyright (c) 1992-2003 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 5.0-CURRENT #0: Tue Mar 11 18:56:10 JST 2003
    devin@borosilicate.pun-pun.prv:/usr/obj/usr/src/5-current/src/sys/BOROSILICATE
Preloaded elf kernel "/boot/kernel/kernel" at 0xc0565000.
Timecounter "i8254"  frequency 1193182 Hz
CPU: Pentium II/Pentium II Xeon/Celeron (299.94-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x634  Stepping = 4
  Features=0x80fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,MMX>
real memory  = 536870912 (512 MB)
avail memory = 515575808 (491 MB)
APIC_IO: MP table broken: 8259->APIC entry missing!
Programming 24 pins in IOAPIC #0
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
 cpu0 (BSP): apic id:  1, version: 0x00040011, at 0xfee00000
 cpu1 (AP):  apic id:  0, version: 0x00040011, at 0xfee00000
 io0 (APIC): apic id:  8, version: 0x00170011, at 0xfec00000
Allocating major#253 to "net"
Allocating major#252 to "pci"
Pentium Pro MTRR support enabled
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcibios: BIOS version 2.10
pcib0: <ServerWorks NB6536 2.0HE host to PCI bridge> at pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
IOAPIC #0 intpin 19 -> irq 2
IOAPIC #0 intpin 18 -> irq 11
IOAPIC #0 intpin 17 -> irq 15
pci0: <display, VGA> at device 3.0 (no driver attached)
pci0: <display, VGA> at device 4.0 (no driver attached)
fxp0: <Intel 82557/8/9 EtherExpress Pro/100(B) Ethernet> port 0x6020-0x603f mem 0xe0200000-0xe02fffff,0xe0480000-0xe0480fff irq 15 at device 5.0 on pci0
fxp0: Ethernet address 00:a0:c9:c8:b6:2f
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
atapci0: <Promise TX2 UDMA100 controller> port 0x6010-0x601f,0x6054-0x6057,0x6048-0x604f,0x6050-0x6053,0x6040-0x6047 mem 0xe0400000-0xe0403fff irq 16 at device 6.0 on pci0
ata2: at 0x6040 on atapci0
ata3: at 0x6048 on atapci0
isab0: <PCI-ISA bridge> at device 15.0 on pci0
isa0: <ISA bus> on isab0
atapci1: <GENERIC ATA controller> port 0x6000-0x600f,0-0x3,0-0x7,0-0x3,0-0x7 irq 15 at device 15.1 on pci0
ata0: at 0x1f0 irq 14 on atapci1
ata1: simplex device, DMA on primary only
ata1: at 0x170 irq 15 on atapci1
pcib1: <ServerWorks NB6536 2.0HE host to PCI bridge> at pcibus 1 on motherboard
pci1: <PCI bus> on pcib1
IOAPIC #0 intpin 23 -> irq 17
IOAPIC #0 intpin 20 -> irq 18
IOAPIC #0 intpin 21 -> irq 19
ohci0: <OHCI (generic) USB controller> mem 0xe0000000-0xe0000fff irq 17 at device 10.0 on pci1
usb0: OHCI version 1.0, legacy support
usb0: <OHCI (generic) USB controller> on ohci0
usb0: USB revision 1.0
uhub0: (0x0e11) OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
tl0: <Compaq Netelligent 10/100 TX UTP> port 0x5400-0x540f mem 0xe0180000-0xe018000f irq 18 at device 11.0 on pci1
malloc() of "128" with the following non-sleepablelocks held:
exclusive sleep mutex tl0 (network driver) r = 0 (0xc4017aa8) locked @ /usr/src/5-current/src/sys/pci/if_tl.c:1146
malloc() of "PROC" with the following non-sleepablelocks held:
exclusive sleep mutex tl0 (network driver) r = 0 (0xc4017aa8) locked @ /usr/src/5-current/src/sys/pci/if_tl.c:1146
lock order reversal
 1st 0xc4017aa8 tl0 (network driver) @ /usr/src/5-current/src/sys/pci/if_tl.c:1146
 2nd 0xc043f8c0 allproc (allproc) @ /usr/src/5-current/src/sys/kern/kern_fork.c:328
Stack backtrace:
malloc() of "64" with the following non-sleepablelocks held:
exclusive sleep mutex tl0 (network driver) r = 0 (0xc4017aa8) locked @ /usr/src/5-current/src/sys/pci/if_tl.c:1146
malloc() of "256" with the following non-sleepablelocks held:
exclusive sleep mutex tl0 (network driver) r = 0 (0xc4017aa8) locked @ /usr/src/5-current/src/sys/pci/if_tl.c:1146
malloc() of "64" with the following non-sleepablelocks held:
exclusive sleep mutex tl0 (network driver) r = 0 (0xc4017aa8) locked @ /usr/src/5-current/src/sys/pci/if_tl.c:1146
tl0: Ethernet address: 00:80:5f:9b:03:c6
miibus1: <MII bus> on tl0
nsphy0: <DP83840 10/100 media interface> on miibus1
nsphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
tlphy0: <ThunderLAN 10baseT media interface> on miibus1
tlphy0:  10base2/BNC, 10base5/AUI
malloc() of "512" with the following non-sleepablelocks held:
exclusive sleep mutex tl0 (network driver) r = 0 (0xc4017aa8) locked @ /usr/src/5-current/src/sys/pci/if_tl.c:658
sym0: <875> port 0x5000-0x50ff mem 0xe0080000-0xe0080fff,0xe0100000-0xe01000ff irq 19 at device 12.0 on pci1
sym0: No NVRAM, ID 7, Fast-20, SE, parity checking
orm0: <Option ROMs> at iomem 0xcc000-0xce7ff,0xc8000-0xcbfff,0xc0000-0xc7fff on isa0
pmtimer0 on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
fdc0: <Enhanced floppy controller (i82077, NE72065 or clone)> at port 0x3f7,0x3f0-0x3f5 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
Allocating major#251 to "devstat"
pcic0 at port 0x3e0 iomem 0xd0000-0xd1fff irq 3 on isa0
pcic_attach: attach found no sockets
device_probe_and_attach: pcic0 attach returned 6
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/8 bytes threshold
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
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
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sbc0: <ESS ES1868> at port 0x330-0x331,0x388-0x38b,0x220-0x22f irq 5 drq 0,1 on isa0
pcm0: <ESS 18xx DSP> on sbc0
unknown: <PNP0401> can't assign resources (port)
unknown: <PNP0501> can't assign resources (port)
unknown: <PNP0501> can't assign resources (port)
unknown: <PNP0700> can't assign resources (port)
unknown: <PNP0303> can't assign resources (port)
unknown: <PNP0f13> can't assign resources (irq)
APIC_IO: routing 8254 via 8259 and IOAPIC #0 intpin 0
Timecounters tick every 10.000 msec
ipfw2 initialized, divert enabled, rule-based forwarding enabled, default to deny, logging limited to 20 packets/entry by default
IPsec: Initialized Security Association Processing.
ad4: 114473MB <ST3120024A> [232581/16/63] at ata2-master UDMA100
acd0: MODE_SENSE_BIG command timeout - resetting
ata0: resetting devices ..
done
acd0: read data overrun 28/6
acd0: CDROM <MATSHITA CR-5850> at ata0-master BIOSPIO
Waiting 3 seconds for SCSI devices to settle
SMP: AP CPU #1 Launched!
Mounting root from ufs:/dev/ad4s1a

Here's the kernel config file:

#
# 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/doc/en_US.ISO8859-1/books/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 ../../conf/NOTES and NOTES files.
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.376 2003/02/13 22:24:43 obrien Exp $

machine		i386
cpu		I686_CPU
ident		BOROSILICATE
maxusers	0

#To statically compile in device wiring instead of /boot/device.hints
#hints		"GENERIC.hints"		#Default places to look for devices.

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

options 	SCHED_4BSD		#4BSD scheduler
options 	INET			#InterNETworking
options		IPFIREWALL
options		IPFIREWALL_VERBOSE
options		IPFIREWALL_VERBOSE_LIMIT=20
options		IPDIVERT
options		IPSEC
options		IPSEC_ESP
options		NETATALK
options 	FFS			#Berkeley Fast Filesystem
options 	SOFTUPDATES		#Enable FFS soft updates support
options 	UFS_ACL			#Support for access control lists
options 	UFS_DIRHASH		#Improve performance on big directories
options 	NFSCLIENT		#Network Filesystem Client
options 	NFSSERVER		#Network Filesystem Server
options 	MSDOSFS			#MSDOS Filesystem
options 	CD9660			#ISO 9660 Filesystem
options 	PROCFS			#Process filesystem (requires PSEUDOFS)
options 	PSEUDOFS		#Pseudo-filesystem framework
options 	COMPAT_43		#Compatible with BSD 4.3 [KEEP THIS!]
options 	COMPAT_FREEBSD4		#Compatible with FreeBSD4
options 	SCSI_DELAY=3000		#Delay (in ms) before probing SCSI
options 	KTRACE			#ktrace(1) support
options 	SYSVSHM			#SYSV-style shared memory
options 	SYSVMSG			#SYSV-style message queues
options 	SYSVSEM			#SYSV-style semaphores
options 	_KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
options 	AHC_REG_PRETTY_PRINT	# Print register bitfields in debug
					# output.  Adds ~128k to driver.
options 	AHD_REG_PRETTY_PRINT	# Print register bitfields in debug
					# output.  Adds ~215k to driver.

# Debugging for use in -current
options 	DDB			#Enable the kernel debugger
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

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

# Needed for PPPoE
options		NETGRAPH
options		NETGRAPH_PPPOE
options		NETGRAPH_SOCKET
options		NETGRAPH_ETHER

device		isa
device		pci

# Floppy drives
device		fdc

# ATA and ATAPI devices
device		ata
device		atadisk			# ATA disk drives
device		atapicd			# ATAPI CDROM drives
options 	ATA_STATIC_ID		#Static device numbering

# SCSI Controllers
device		sym		# NCR/Symbios Logic (newer chipsets + those of `ncr')

# SCSI peripherals
device		scbus		# SCSI bus (required)
device		ch		# SCSI media changers
device		da		# Direct Access (disks)
device		sa		# Sequential Access (tape etc)
device		cd		# CD
device		pass		# Passthrough device (direct SCSI access)
device		ses		# SCSI Environmental Services (and SAF-TE)

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc		# AT keyboard controller
device		atkbd		# AT keyboard
device		psm		# PS/2 mouse

device		vga		# VGA video card driver

device		splash		# Splash screen and screen saver support

# syscons is the default console driver, resembling an SCO console
device		sc

# Floating point support - do not disable.
device		npx

# Add suspend/resume support for the i8254.
device		pmtimer

# PCCARD (PCMCIA) support
# Pcmcia and cardbus bridge support
#device		cbb			# cardbus (yenta) bridge
device		pcic			# ExCA ISA and PCI bridges
device		pccard			# PC Card (16-bit) bus
#device		cardbus			# CardBus (32-bit) bus

# Serial (COM) ports
device		sio		# 8250, 16[45]50 based serial ports

# Parallel port
device		ppc
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)
device		tl		# Texas Instruments ThunderLAN

# Wireless NIC cards
device		wlan		# 802.11 support
device		wi		# WaveLAN/Intersil/Symbol 802.11 wireless NICs.

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

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

# USB support
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

# Sound
device		pcm

-- 
Tod McQuillin


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




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