LORs in RELENG_7

Ulrich Spoerlein uspoerlein at gmail.com
Thu Nov 20 13:11:55 PST 2008


Hi,

I'm running my RELENG_7 kernel with WITNESS and there's always a LOR
when pf(4) is enabled:

lock order reversal:
 1st 0xc09ca828 ifnet (ifnet) @ /usr/src/sys/net/if.c:849
 2nd 0xc45d604c pf task mtx (pf task mtx) @ /usr/src/sys/modules/pf/../../contrib/pf/net/pf_if.c:916
KDB: stack backtrace:
db_trace_self_wrapper(c08df797,fb671764,c0630e8e,c08e1c96,c45d604c,...) at db_trace_self_wrapper+0x26
kdb_backtrace(c08e1c96,c45d604c,c45d3b1c,c45d3b1c,c45d379e,...) at kdb_backtrace+0x29
witness_checkorder(c45d604c,9,c45d379e,394,c08e9058,...) at witness_checkorder+0x6de
_mtx_lock_flags(c45d604c,0,c45d379e,394,fb6717dc,...) at _mtx_lock_flags+0xbc
pfi_attach_group_event(0,c4450000,c08e9058,374,c44a920c,...) at pfi_attach_group_event+0x4e
if_addgroup(c441c000,c08f70d6,4,0,0,...) at if_addgroup+0x2c7
if_clone_createif(0,0,c08e9563,87,0,...) at if_clone_createif+0x81
if_clone_create(fb671943,4,0,44,180,...) at if_clone_create+0x8c
tunclone(0,c461e400,fb671943,4,fb67195c,...) at tunclone+0x17a
devfs_lookup(fb6719d0,fb6719d0,fb671b7c,c418de04,2,...) at devfs_lookup+0x50e
VOP_LOOKUP_APV(c0928f40,fb6719d0,c412f230,c08e77ef,2a9,...) at VOP_LOOKUP_APV+0xa5
lookup(fb671b7c,c08e77ef,c6,bf,c461e92c,...) at lookup+0x58e
namei(fb671b7c,c412f230,fb671a74,246,c0983774,...) at namei+0x34b
vn_open_cred(fb671b7c,fb671c78,ce8,c461e400,c4460558,...) at vn_open_cred+0x2c9
vn_open(fb671b7c,fb671c78,ce8,c4460558,c05e807d,...) at vn_open+0x33
kern_open(c412f230,80a0f18,0,3,808ecfa,...) at kern_open+0xe7
open(c412f230,fb671cfc,c,c08e28c3,c092c0b8,...) at open+0x30
syscall(fb671d38) at syscall+0x2b3
Xint0x80_syscall() at Xint0x80_syscall+0x20
--- syscall (5, FreeBSD ELF32, open), eip = 0x2835a65b, esp = 0xbfbfeafc, ebp = 0xbfbfeb38 ---


And there are these LORs when I shut down my external firewire attached
disk:

fwohci0: BUS reset
fwohci0: node_id=0xc800ffc1, gen=2, CYCLEMASTER mode
firewire0: 2 nodes, maxhop <= 1, cable IRM = 1 (me)
firewire0: bus manager 1 (me)
uma_zalloc_arg: zone "16" with the following non-sleepable locks held:
exclusive sleep mutex sbp r = 0 (0xc402f7ac) locked @ /usr/src/sys/dev/firewire/sbp.c:2203
KDB: stack backtrace:
db_trace_self_wrapper(c08df797,f93a931c,c0630007,c08dfb5a,f93a9330,...) at db_trace_self_wrapper+0x26
kdb_backtrace(c08dfb5a,f93a9330,4,1,0,...) at kdb_backtrace+0x29
witness_warn(5,0,c0901ae5,c08c59ce,86,...) at witness_warn+0x1d7
uma_zalloc_arg(c1472960,0,2,2,f93a93e0,...) at uma_zalloc_arg+0x34
malloc(b,c09308c0,2,c05be59a,c08d7a2c,...) at malloc+0xd2
notify(c4150a00,4,c08d7856,34f,c05be4ea,...) at notify+0x49
destroy_devl(f93a9410,c046a6ce,c4150a00,0,c3f18370,...) at destroy_devl+0x236
destroy_dev(c4150a00,0,c3f18370,c3f69000,f93a9690,...) at destroy_dev+0x10
passcleanup(c3f69000,c08b50c7,0,0,0,...) at passcleanup+0x2e
camperiphfree(c3f69000,0,f93a96b0,c04568dd,c3f69000,...) at camperiphfree+0xbb
cam_periph_invalidate(c3f69000,c0983774,f93a96e4,c046a5ea,c3f69000,...) at cam_periph_invalidate+0x3e
cam_periph_async(c3f69000,100,c418a260,0,f93a96e0,...) at cam_periph_async+0x2d
passasync(c3f69000,100,c418a260,0,c42f8c00,...) at passasync+0xca
xpt_async_bcast(0,4,c08b53c5,11a5,c404d280,...) at xpt_async_bcast+0x32
xpt_async(100,c418a260,0,89b,0,...) at xpt_async+0x194
sbp_cam_detach_sdev(c402f45c,0,c402f418,0,f93a982c,...) at sbp_cam_detach_sdev+0xa4
sbp_cam_detach_target(c14729a8,c14729a8,c08250c6,c7373b40,10,...) at sbp_cam_detach_target+0x5b
sbp_post_explore(c402f400,f93a9ce8,f93a9ce4,675,0,...) at sbp_post_explore+0xa2
fw_bus_probe_thread(c404f000,f93a9d38,c08d8d0f,31c,c402b570,...) at fw_bus_probe_thread+0x69b
fork_exit(c0513500,c404f000,f93a9d38) at fork_exit+0xb8
fork_trampoline() at fork_trampoline+0x8
--- trap 0, eip = 0, esp = 0xf93a9d70, ebp = 0 ---
(da0:sbp0:0:0:0): lost device
(da0:sbp0:0:0:0): removing device entry
cam_periph_alloc: attempt to re-allocate valid device pass1 rejected
passasync: Unable to attach new device due to status 0x6: CCB request was invalid
cam_periph_alloc: attempt to re-allocate valid device da1 rejected
daasync: Unable to attach to new device due to status 0x6
fwohci0: BUS reset
fwohci0: node_id=0xc800ffc0, gen=3, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire0: bus manager 0 (me)
uma_zalloc_arg: zone "16" with the following non-sleepable locks held:
exclusive sleep mutex sbp r = 0 (0xc402f7ac) locked @ /usr/src/sys/dev/firewire/sbp.c:2203
KDB: stack backtrace:
db_trace_self_wrapper(c08df797,f93a931c,c0630007,c08dfb5a,f93a9330,...) at db_trace_self_wrapper+0x26
kdb_backtrace(c08dfb5a,f93a9330,4,1,0,...) at kdb_backtrace+0x29
witness_warn(5,0,c0901ae5,c08c59ce,86,...) at witness_warn+0x1d7
uma_zalloc_arg(c1472960,0,2,2,f93a93e0,...) at uma_zalloc_arg+0x34
malloc(b,c09308c0,2,c05be59a,c08d7a2c,...) at malloc+0xd2
notify(c4150d00,4,c08d7856,34f,c05be4ea,...) at notify+0x49
destroy_devl(f93a9410,c046a6ce,c4150d00,0,c3f18370,...) at destroy_devl+0x236
destroy_dev(c4150d00,0,c3f18370,c42c6700,f93a9690,...) at destroy_dev+0x10
passcleanup(c42c6700,c08b50c7,c09eff00,4,c08db41b,...) at passcleanup+0x2e
camperiphfree(c42c6700,0,f93a96b0,c04568dd,c42c6700,...) at camperiphfree+0xbb
cam_periph_invalidate(c42c6700,c0983774,f93a96e4,c046a5ea,c42c6700,...) at cam_periph_invalidate+0x3e
cam_periph_async(c42c6700,100,c418a250,0,f93a96e0,...) at cam_periph_async+0x2d
passasync(c42c6700,100,c418a250,0,c42f8a00,...) at passasync+0xca
xpt_async_bcast(0,4,c08b53c5,11a5,c404d280,...) at xpt_async_bcast+0x32
xpt_async(100,c418a250,0,89b,0,...) at xpt_async+0x194
sbp_cam_detach_sdev(c402f4c8,0,c402f484,1,f93a982c,...) at sbp_cam_detach_sdev+0xa4
sbp_cam_detach_target(c14729a8,c14729a8,c08250c6,c44263f0,10,...) at sbp_cam_detach_target+0x5b
sbp_post_explore(c402f400,f93a9ce8,f93a9ce4,675,0,...) at sbp_post_explore+0xa2
fw_bus_probe_thread(c404f000,f93a9d38,c08d8d0f,31c,c402b570,...) at fw_bus_probe_thread+0x69b
fork_exit(c0513500,c404f000,f93a9d38) at fork_exit+0xb8
fork_trampoline() at fork_trampoline+0x8
--- trap 0, eip = 0, esp = 0xf93a9d70, ebp = 0 ---
(da1:sbp0:0:1:0): lost device
(da1:sbp0:0:1:0): removing device entry

I reckon these problems should appear in -STABLE ...

Cheers,
Ulrich Spoerlein
-- 
It is better to remain silent and be thought a fool,
than to speak, and remove all doubt.


More information about the freebsd-stable mailing list