From owner-freebsd-current Tue Mar 11 21:22:10 2003 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6041437B404 for ; Tue, 11 Mar 2003 21:22:01 -0800 (PST) Received: from mail.distalzou.net (203.141.139.231.user.ad.il24.net [203.141.139.231]) by mx1.FreeBSD.org (Postfix) with ESMTP id F39C143FAF for ; Tue, 11 Mar 2003 21:21:59 -0800 (PST) (envelope-from devin@spamcop.net) Received: from localhost ([127.0.0.1]) by mail.distalzou.net with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 3.36 #1) id 18sygg-000NdT-00 for freebsd-current@freebsd.org; Wed, 12 Mar 2003 14:21:58 +0900 Date: Wed, 12 Mar 2003 14:21:58 +0900 (JST) From: Tod McQuillin X-X-Sender: devin@glass.pun-pun.prv To: freebsd-current@freebsd.org Subject: lock order reversal? current with tl ethernet Message-ID: <20030312141402.X61843@glass.pun-pun.prv> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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 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: on motherboard npx0: INT 16 interface pcibios: BIOS version 2.10 pcib0: at pcibus 0 on motherboard pci0: on pcib0 IOAPIC #0 intpin 19 -> irq 2 IOAPIC #0 intpin 18 -> irq 11 IOAPIC #0 intpin 17 -> irq 15 pci0: at device 3.0 (no driver attached) pci0: at device 4.0 (no driver attached) fxp0: 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: on miibus0 inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto atapci0: 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: at device 15.0 on pci0 isa0: on isab0 atapci1: 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: at pcibus 1 on motherboard pci1: on pcib1 IOAPIC #0 intpin 23 -> irq 17 IOAPIC #0 intpin 20 -> irq 18 IOAPIC #0 intpin 21 -> irq 19 ohci0: mem 0xe0000000-0xe0000fff irq 17 at device 10.0 on pci1 usb0: OHCI version 1.0, legacy support usb0: 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: 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: on tl0 nsphy0: on miibus1 nsphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto tlphy0: 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: