Re: fxp LOR and ...

From: Emanuel Strobl <Emanuel.strobl_at_gmx.net>
Date: Tue, 14 Jun 2005 20:39:30 +0200
Am Sonntag, 5. Juni 2005 16:02 schrieb Rene Ladan:
> On Sun, Jun 05, 2005 at 12:28:09PM +0200, Harald Schmalzbauer wrote:
> > Dear best boys,
> >
> > writing on my emergency machine I can't check if this LOR is well
> > known, to be sure I'd like to post it, please see the attachment.a
>
> [snip nvidia]
>
> > Thanks for any hint.
> >
> > -Harry
> >
> > lock order reversal
> >  1st 0xc075af40 Giant (Giant) _at_ /usr/src/sys/kern/kern_timeout.c:263
> >  2nd 0xc1a82270 fxp0 (network driver) _at_
> > /usr/src/sys/dev/fxp/if_fxp.c:1193 KDB: stack backtrace:
> > kdb_backtrace(0,ffffffff,c076a648,c0769130,c072e084) at
> > kdb_backtrace+0x29 witness_checkorder(c1a82270,9,c06de442,4a9) at
> > witness_checkorder+0x564
> > _mtx_lock_flags(c1a82270,0,c06de442,4a9,c1a82000) at
> > _mtx_lock_flags+0x5b fxp_start(c1a82000) at fxp_start+0x22
> > if_start(c1a82000) at if_start+0x7b
> > ether_output_frame(c1a82000,c1c29d00,0,0,0) at
> > ether_output_frame+0x1d9 ether_output(c1a82000,c1c29d00,d447bbe0,0,0)
> > at ether_output+0x384
> > nd6_output(c1a82000,c1a82000,c1c29d00,d447bbe0,0) at nd6_output+0x30a
> > ip6_output(c1c29d00,0,d447bbdc,1,d447bc58,d447bc4c,0,c1c29d00,3a,28,0)
> > at ip6_output+0xfd5 nd6_ns_output(c1a82000,0,c1c340a8,0,1) at
> > nd6_ns_output+0x323
> > nd6_dad_ns_output(c1c360c0,c1c34000,c075af40,6,c1c34000) at
> > nd6_dad_ns_output+0x32 nd6_dad_timer(c1c34000) at nd6_dad_timer+0x1a3
> > softclock(0) at softclock+0x1e7
> > ithread_loop(c19e7300,d447bd38,c19e7300,c05445b0,0) at
> > ithread_loop+0x120 fork_exit(c05445b0,c19e7300,d447bd38) at
> > fork_exit+0xa0
> > fork_trampoline() at fork_trampoline+0x8
> > --- trap 0x1, eip = 0, esp = 0xd447bd6c, ebp = 0 ---
> > lock order reversal
> >  1st 0xc1ce6924 rtentry (rtentry) _at_
> > /usr/src/sys/netinet/if_ether.c:445 2nd 0xc1a82270 fxp0 (network
> > driver) _at_ /usr/src/sys/dev/fxp/if_fxp.c:1193 KDB: stack backtrace:
> > kdb_backtrace(0,ffffffff,c076a3f0,c0769130,c072e084) at
> > kdb_backtrace+0x29 witness_checkorder(c1a82270,9,c06de442,4a9) at
> > witness_checkorder+0x564
> > _mtx_lock_flags(c1a82270,0,c06de442,4a9,c1a82000) at
> > _mtx_lock_flags+0x5b fxp_start(c1a82000) at fxp_start+0x22
> > if_start(c1a82000) at if_start+0x7b
> > ether_output_frame(c1a82000,c1c29800,d4481abc,ffffffff,0) at
> > ether_output_frame+0x1d9 ether_output(c1a82000,c1c29800,d4481ad8,0,2)
> > at ether_output+0x384 arprequest(c1a82000,c1c8b2c8,d4481ba8,c19884ac)
> > at arprequest+0xd8
> > arpresolve(c1a82000,c1ce68c4,c1a93300,d4481ba4,d4481b48) at
> > arpresolve+0x29c
> > ether_output(c1a82000,c1a93300,d4481ba4,c1ce68c4,c1c8b200) at
> > ether_output+0x66 ip_output(c1a93300,0,d4481ba0,0,0) at
> > ip_output+0x6fc
> > icmp_send(c1a93300,0,c1a93300) at icmp_send+0x55
> > icmp_reflect(c1a93300,c0760680,0,14,c1ad5034) at icmp_reflect+0x2d6
> > icmp_input(c1a93300,14,c1a93300,0,0) at icmp_input+0x384
> > ip_input(c1a93300) at ip_input+0x511
> > netisr_processqueue(c07a75f8) at netisr_processqueue+0x6e
> > swi_net(0) at swi_net+0xc2
> > ithread_loop(c19e7200,d4481d38,c19e7200,c05445b0,0) at
> > ithread_loop+0x120 fork_exit(c05445b0,c19e7200,d4481d38) at
> > fork_exit+0xa0
> > fork_trampoline() at fork_trampoline+0x8
> > --- trap 0x1, eip = 0, esp = 0xd4481d6c, ebp = 0 ---
> > lock order reversal
> >  1st 0xc1ce4360 inp (udpinp) _at_ /usr/src/sys/netinet/udp_usrreq.c:762
> >  2nd 0xc1a82270 fxp0 (network driver) _at_
> > /usr/src/sys/dev/fxp/if_fxp.c:1193 KDB: stack backtrace:
> > kdb_backtrace(0,ffffffff,c076a350,c0769130,c072e084) at
> > kdb_backtrace+0x29 witness_checkorder(c1a82270,9,c06de442,4a9) at
> > witness_checkorder+0x564
> > _mtx_lock_flags(c1a82270,0,c06de442,4a9,c1a82000) at
> > _mtx_lock_flags+0x5b fxp_start(c1a82000) at fxp_start+0x22
> > if_start(c1a82000) at if_start+0x7b
> > ether_output_frame(c1a82000,c1c29500,0,0,0) at
> > ether_output_frame+0x1d9
> > ether_output(c1a82000,c1c29500,dab3ab04,c1ce68c4,c1c8b200) at
> > ether_output+0x384 ip_output(c1c29500,0,dab3ab00,0,0) at
> > ip_output+0x6fc
> > udp_output(c1ce42d0,c1c29500,0,0,c1ee7780) at udp_output+0x4a7
> > udp_send(c1ce23e4,0,c1c29500,0,0) at udp_send+0x1a
> > sosend(c1ce23e4,0,dab3ac3c,c1c29500,0) at sosend+0x5e3
> > kern_sendit(c1ee7780,4,dab3acbc,0,0) at kern_sendit+0x104
> > sendit(c1ee7780,4,dab3acbc,0,807b031) at sendit+0x163
> > sendto(c1ee7780,dab3ad04,6,0,216) at sendto+0x4d
> > syscall(3b,3b,3b,2,0) at syscall+0x22f
> > Xint0x80_syscall() at Xint0x80_syscall+0x1f
> > --- syscall (133, FreeBSD ELF32, sendto), eip = 0x280d1def, esp =
> > 0xbfbfd84c, ebp = 0xbfbfd878 --- lock order reversal
> >  1st 0xc1d2bc84 inp (tcpinp) _at_ /usr/src/sys/netinet/tcp_usrreq.c:372
> >  2nd 0xc1a82270 fxp0 (network driver) _at_
> > /usr/src/sys/dev/fxp/if_fxp.c:1193 KDB: stack backtrace:
> > kdb_backtrace(0,ffffffff,c076a300,c0769130,c072e084) at
> > kdb_backtrace+0x29 witness_checkorder(c1a82270,9,c06de442,4a9) at
> > witness_checkorder+0x564
> > _mtx_lock_flags(c1a82270,0,c06de442,4a9,c1a82000) at
> > _mtx_lock_flags+0x5b fxp_start(c1a82000) at fxp_start+0x22
> > if_start(c1a82000) at if_start+0x7b
> > ether_output_frame(c1a82000,c1c25100,0,0,0) at
> > ether_output_frame+0x1d9
> > ether_output(c1a82000,c1c25100,c1b76370,c1ce67bc,c1c8b200) at
> > ether_output+0x384 ip_output(c1c25100,0,d9977b80,0,0) at
> > ip_output+0x6fc
> > tcp_output(c1d2d564,c1ee0000,25,c1c62780,d9977c98) at tcp_output+0xfb2
> > tcp_usr_connect(c1ee0000,c1c35a00,c1c62780) at tcp_usr_connect+0xe3
> > soconnect(c1ee0000,c1c35a00,c1c62780,0,c1d3e000) at soconnect+0x4e
> > kern_connect(c1c62780,4,c1c35a00,c1c35a00,0) at kern_connect+0x74
> > connect(c1c62780,d9977d04,3,6,296) at connect+0x2f
> > syscall(3b,3b,3b,280e3640,bfbfece0) at syscall+0x22f
> > Xint0x80_syscall() at Xint0x80_syscall+0x1f
> > --- syscall (98, FreeBSD ELF32, connect), eip = 0x2819502f, esp =
> > 0xbfbfe52c, ebp = 0xbfbfe588 --- lock order reversal
> >  1st 0xc07a836c tcp (tcp) _at_ /usr/src/sys/netinet/tcp_input.c:616
> >  2nd 0xc1a82270 fxp0 (network driver) _at_
> > /usr/src/sys/dev/fxp/if_fxp.c:1193 KDB: stack backtrace:
> > kdb_backtrace(0,ffffffff,c076a328,c0769130,c072e084) at
> > kdb_backtrace+0x29 witness_checkorder(c1a82270,9,c06de442,4a9) at
> > witness_checkorder+0x564
> > _mtx_lock_flags(c1a82270,0,c06de442,4a9,c1a82000) at
> > _mtx_lock_flags+0x5b fxp_start(c1a82000) at fxp_start+0x22
> > if_start(c1a82000) at if_start+0x7b
> > ether_output_frame(c1a82000,c1a8f100,0,0,0) at
> > ether_output_frame+0x1d9
> > ether_output(c1a82000,c1a8f100,c1b76370,c1ce67bc,c1c8b200) at
> > ether_output+0x384 ip_output(c1a8f100,0,d4481b38,0,0,0) at
> > ip_output+0x6fc
> > tcp_respond(0,c1aaf820,c1aaf834,c1a8f100,0,78847350,4) at
> > tcp_respond+0x3e1 tcp_input(c1a8f100,14,c1a8f100,0,0) at
> > tcp_input+0x2d46
> > ip_input(c1a8f100) at ip_input+0x511
> > netisr_processqueue(c07a75f8) at netisr_processqueue+0x6e
> > swi_net(0) at swi_net+0xc2
> > ithread_loop(c19e7200,d4481d38,c19e7200,c05445b0,0) at
> > ithread_loop+0x120 fork_exit(c05445b0,c19e7200,d4481d38) at
> > fork_exit+0xa0
> > fork_trampoline() at fork_trampoline+0x8
> > --- trap 0x1, eip = 0, esp = 0xd4481d6c, ebp = 0 ---
>
> Looks like a LOR (#73) which always pops up on RELENG_5 since March.
> It seems harmless.  Something obscure must be wrong with
> FXP_LOCK() and/or FXP_UNLOCK().

Thanks for the info, it really looks like LOR#73.
I still get this LOR after Brooks monster-changes. Perhaps he can have a 
look at it while he's at this part?

Thanks,

-Harry 

>
> Regards,
> Rene

Received on Tue Jun 14 2005 - 16:39:46 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:36 UTC