LOR kqueue / sleep mtxpool for LOR list

Jeff Roberson jroberson at chesapeake.net
Tue Dec 18 12:19:32 PST 2007


On Tue, 18 Dec 2007, Ed Maste wrote:

> I just saw this LOR during startup of an application while testing
> 8-CURRENT on a dev box.  I've done no investigation yet.
>
> FreeBSD TPC-D13-08.phaedrus 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Mon Dec 17 16:27:54 EST 2007     emaste at bsd-build3.phaedrus:/d2/emaste/HEAD/obj/d2/emaste/HEAD/src/sys/GENERIC  i386
>
> lock order reversal:
> 1st 0xc42b7580 kqueue (kqueue) @ /d2/emaste/HEAD/src/sys/kern/kern_event.c:1397
> 2nd 0xc3ece8e0 sleep mtxpool (sleep mtxpool) @ /d2/emaste/HEAD/src/sys/kern/sys_generic.c:1255
> KDB: stack backtrace:
> db_trace_self_wrapper(c0b08871,e683aaa4,c079cafe,c0b0ade3,c3ece8e0,...) at db_trace_self_wrapper+0x26
> kdb_backtrace(c0b0ade3,c3ece8e0,c0b043d7,c0b043d7,c0b0b09a,...) at kdb_backtrace+0x29
> witness_checkorder(c3ece8e0,9,c0b0b09a,4e7,c42b7580,...) at witness_checkorder+0x6de
> _mtx_lock_flags(c3ece8e0,0,c0b0b09a,4e7,40,...) at _mtx_lock_flags+0xbc
> selrecord(c4474220,c42b75ac,c0b01a8d,575,c42b7580,...) at selrecord+0x9d
> kqueue_poll(c4341cf0,40,c46f4000,c4474220,e683ab74,...) at kqueue_poll+0x65
> poll(c4474220,e683acfc,c,e683ad38,c0bb84b8,...) at poll+0x2cc
> syscall(e683ad38) at syscall+0x2b3
> Xint0x80_syscall() at Xint0x80_syscall+0x20
> --- syscall (209, FreeBSD ELF32, poll), eip = 0x287451db, esp = 0x8672f3c, ebp = 0x8672f98 ---
>

Thanks, this is interesting.  The mtxpool should always be the leaf.  The 
opposite order is the bug.  Can you add them to the static order list and 
tell me where the reverse order is observed?

Thanks,
Jeff


> -Ed
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
>


More information about the freebsd-current mailing list