From owner-freebsd-current@FreeBSD.ORG Sat Mar 12 19:04:48 2005 Return-Path: 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 E9DD316A4CE; Sat, 12 Mar 2005 19:04:48 +0000 (GMT) Received: from troutmask.apl.washington.edu (troutmask.apl.washington.edu [128.208.78.105]) by mx1.FreeBSD.org (Postfix) with ESMTP id A458A43D54; Sat, 12 Mar 2005 19:04:48 +0000 (GMT) (envelope-from sgk@troutmask.apl.washington.edu) Received: from troutmask.apl.washington.edu (localhost [127.0.0.1]) j2CJ4mQF066006; Sat, 12 Mar 2005 11:04:48 -0800 (PST) (envelope-from sgk@troutmask.apl.washington.edu) Received: (from sgk@localhost)j2CJ4mJs066005; Sat, 12 Mar 2005 11:04:48 -0800 (PST) (envelope-from sgk) Date: Sat, 12 Mar 2005 11:04:48 -0800 From: Steve Kargl To: Robert Watson Message-ID: <20050312190448.GA65968@troutmask.apl.washington.edu> References: <20050312161309.GA65207@troutmask.apl.washington.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.1i cc: freebsd-current@FreeBSD.org Subject: Re: LOR with rtentry and rl0 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Mar 2005 19:04:49 -0000 On Sat, Mar 12, 2005 at 05:49:28PM +0000, Robert Watson wrote: > On Sat, 12 Mar 2005, Steve Kargl wrote: > > > I don't recall seeing this LOR posted. It may be related to rwatson's > > recent work in the socket layer. > > It's not impossible I introduced a bug that results in this. Is this > reproduceable? Is there any chance you could break into DDB, do "show > witness", and send me the output? > I tried, but I seem to have followed a different code path. lock order reversal 1st 0xc2efb8a0 rtentry (rtentry) @ /usr/src/sys/netinet/if_ether.c:445 2nd 0xc2c33f00 rl0 (network driver) @ /usr/src/sys/modules/rl/../../pci/if_rl.c:1444 KDB: stack backtrace: witness_checkorder(c2c33f00,9,c084cffd,5a4,c2c338fc) at witness_checkorder+0x5e9 _mtx_lock_flags(c2c33f00,0,c084cffd,5a4,c2c33800) at _mtx_lock_flags+0x54 rl_start(c2c33800,0,c06c19af,184,202a94c) at rl_start+0x37 ether_output_frame(c2c33800,c2e6a200,6,e5db59c8,c062f4e4) at ether_output_frame+0x23c ether_output(c2c33800,c2e6a200,e5db59ec,0,c2e889c8,2,1,c06b2302,32b,c2bc8000,c2bc8074) at ether_output+0x26f arprequest(e5db5ae4,c2c3d4ab,c06c254d,1bd,c05530a0) at arprequest+0x10b arpresolve(c2c33800,c2efb840,c2e6a300,e5db5ae0,e5db5a64) at arpresolve+0x30d ether_output(c2c33800,c2e6a300,e5db5ae0,c2efb840,3) at ether_output+0x32b ip_output(c2e6a300,0,e5db5adc,1,0) at ip_output+0xa39 icmp_reflect(c2e6a450,c2e6a3c8,14,c2e6a400,c2e6a450) at icmp_reflect+0x312 icmp_error(c2e6a400,3,3,0,0) at icmp_error+0x1ce udp_input(c2e6a400,14,c07191c0,c2bc8000,e8) at udp_input+0x591 ip_input(c2e6a400,0,c06c20ab,e8,18) at ip_input+0xe5 netisr_processqueue(e5db5cdc,246,c0713f60,2,c2b777c0) at netisr_processqueue+0x15 swi_net(0,0,c06b5c7a,256,0) at swi_net+0x9f ithread_loop(c2b7c380,e5db5d48,c06b5a5b,30e,c2b7c380) at ithread_loop+0x1ff fork_exit(c0514450,c2b7c380,e5db5d48) at fork_exit+0xa6 fork_trampoline() at fork_trampoline+0x8 --- trap 0x1, eip = 0, esp = 0xe5db5d7c, ebp = 0 --- At this point, I must of entered a wrong db> command, because I did bad things to my filesystem. I'll try again later. -- Steve