new fxp lor

Rene Ladan r.c.ladan at student.tue.nl
Wed Apr 27 11:01:44 PDT 2005


Hi,

I experienced this new fxp LOR (probably when ntpd started during boot):

hand-copied:
lock order reversal
 1st 0xcc666360 inp (udpinp) @ sys/netinet/udp_usrreq.c:772
 2nd 0xc14c8264 fxp0 (network driver) @ /usr/src/sys/modules/fxp/../../dev/fxp/if_fxp.c:1232
KDB: stack backtrace:
kdb_backtrace+0x2e(c06fd115, c14c8264, c14a57e0, c06fe820, c06fe7bd)
witness_checkorder+0x6a6(c14c8264, 9, c06fe7bd, 4d0, c0602589)
_mtx_lock_flags+0x8a(c14c8264, 0, c06fe7bd, 4d0, c14c8000)
fxp_start+0x37(c14c8000, 12b, 0, c14c8000)
and continuing from dmesg:
if_start(c14c8000,0,c0602589,184,2) at 0xc050b1c9 = if_start+0x99
ether_output_frame(c14c8000,c15d3900,6,ca422b10,ca422aac) at 0xc050c908 = ether_output_frame+0x218
ether_output(c14c8000,c15d3900,ca422b10,c16687bc,c04bbc77) at 0xc050c6de = ether_output+0x44e
ip_output(c15d3900,0,ca422b0c,0,0) at 0xc05210c7 = ip_output+0x7c7
udp_output(c16662d0,c15d3900,0,0,c148fa80) at 0xc053659a = udp_output+0x53a
udp_send(c1665dec,0,c15d3900,0,0) at 0xc0536da0 = udp_send+0x30
sosend(c1665dec,0,ca422c48,c15d3900,0) at 0xc04d33b1 = sosend+0x701
kern_sendit(c148fa80,d,ca422cc4,0,0) at 0xc04d9bef = kern_sendit+0x13f
sendit(c148fa80,d,ca422cc4,0,810001d) at 0xc04d9a81 = sendit+0x1a1
sendto(c148fa80,ca422d14,18,431,6) at 0xc04d9d6b = sendto+0x5b
syscall(2f,2f,2f,2,0) at 
0xc05d9d40 = syscall+0x2a0
Xint0x80_syscall() at 0xc05c885f = Xint0x80_syscall+0x1f
--- syscall (133, FreeBSD ELF32, sendto), eip = 0x28233cff, esp = 0xbfbfd4ec, ebp = 0xbfbfd518 ---

followed by another new LOR:

KDB: enter: witness_checkorder
lock order reversal
 1st 0xc066f20c udp (udp) @ /usr/src/sys/netinet/udp_usrreq.c:246
 2nd 0xc14c8264 fxp0 (network driver) @ /usr/src/sys/modules/fxp/../../dev/fxp/if_fxp.c:1232
KDB: stack backtrace:
kdb_backtrace(c05fd115,c14c8264,c14a57e0,c06fe820,c06fe7bd) at 0xc04b0a7e = kdb_backtrace+0x2e
witness_checkorder(c14c8264,9,c06fe7bd,4d0,c0602589) at 0xc04bbb96 = witness_checkorder+0x6a6
_mtx_lock_flags(c14c8264,0,c06fe7bd,4d0,c14c8000) at 0xc048a95a = _mtx_lock_flags+0x8a
fxp_start(c14c8000,12b,0,c14c8000) at 0xc06fbdc7 = fxp_start+0x37
if_start(c14c8000,0,c0602589,184,2) at 0xc050b1c9 = if_start+0x99
ether_output_frame(c14c8000,c15d6000,6,c9be5b20,c9be5abc) at 0xc050c908 = ether_output_frame+0x218
ether_output(c14c8000,c15d6000,c9be5b20,c16687bc,18a) at 0xc050c6de = ether_output+0x44e
ip_output(c15d6000,0,c9be5b1c,0,0) at 0xc05210c7 = ip_output+0x7c7
icmp_send(c15d6000,0,c05a61a8,0,0) at 0xc051e567 = icmp_send+0x87
icmp_reflect(c15d6000,c15d60c8,14,c15d6100,1c) at 0xc051e490 = icmp_reflect+0x330
icmp_error(c14d1600,3,3,0,0) at 0xc051db85 = icmp_error+0x275
udp_input(c14d1600,14,c9be5c98,c048aa6a,c066e714) at 0xc053547a = udp_input+0x5ea
ip_input(c14d1600,0,c0602a22,e6,c066dcd8) at 0xc051ef22 = ip_input+0x5a2
netisr_processqueue(c066dcd8,c0643a80,1,c05f8d46,c1404040) at 0xc050e64e = netisr_processqueue+0x8e
swi_net(0,0,c05f72d8,269,c0643a80) at 0xc050e8a9 = swi_net+0xe9
ithread_loop(c13dc500,c9be5d48,c05f70cf,30e,0) at 0xc047dbf2 = ithread_loop+0x172
fork_exit(c047da80,c13dc500,c9be5d48) at 0xc047cc16 = fork_exit+0xc6
fork_trampoline() at 0xc05c886c = fork_trampoline+0x8
--- trap 0x1, eip = 0, esp = 0xc9be5d7c, ebp = 0 ---

The box panics with automatic dump and reboot:

KDB: enter: witness_checkorder
panic: blockable sleep lock (sleep mutex) tty @ /usr/src/sys/kern/kern_event.c:1495
KDB: stack backtrace:
Uptime: 15m33s
Dumping 191 MB
 16 32 48 64 80 96 112 128 144 160 176
Dump complete

This is on:

FreeBSD 5.4-STABLE #0: Tue Apr 26 07:30:25 CEST 2005     root at 82-168-79-254-bbxl.xdsl.tiscali.nl:/usr/obj/usr/src/sys/RENE 

Regards,
Rene	
-- 
"It won't fit on the line."
		-- me, 2001
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20050427/064e4276/attachment.bin


More information about the freebsd-stable mailing list