Re: fxp LOR and ...

From: Rene Ladan <r.c.ladan_at_student.tue.nl>
Date: Sun, 5 Jun 2005 16:02:06 +0200
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().

Regards,
Rene
-- 
"It won't fit on the line."
		-- me, 2001

Received on Sun Jun 05 2005 - 12:02:11 UTC

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