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>
