> On Aug 10, 2015, at 12:39 AM, Konstantin Belousov <kostik...@gmail.com> wrote: > > On Sun, Aug 09, 2015 at 05:24:13PM -0700, Tim Kientzle wrote: >> >>> On Aug 9, 2015, at 11:10 AM, Konstantin Belousov <kostik...@gmail.com> >>> wrote: >>> >>> On Sun, Aug 09, 2015 at 10:53:20AM -0700, Tim Kientzle wrote: >>>> >>>> I suspect the LOR is new. >>>> >>>> It looks like the panic is occurring when WITNESS tries to print the >>>> backtrace for the LOR. I???m not familiar with that code; does it use the >>>> kernel linker? >>>> >>> >>> It indeed locks the linker lock to resolve symbols. So it seems to be >>> even more useful to make the linker lock recursive locally, then you >>> should be able to see the backtrace for LOR. >> >> Changing the kld_sx lock to recursive, I now see a backtrace for the >> ufs/kernel linker LOR. Full trace pasted below. >> >> This is displayed just before the network interfaces; I suspect it???s being >> triggered when my startup initializes the urtwn wireless adapter (which does >> indeed load a number of kernel modules). >> >> lock order reversal: >> 1st 0xc083ef40 kernel linker (kernel linker) @ >> /Users/tim/projects/crochet/src-head/sys/kern/kern_linker.c:1030 >> 2nd 0xc2d63c94 ufs (ufs) @ >> /Users/tim/projects/crochet/src-head/sys/kern/vfs_lookup.c:529 > The order, for which witness complained, is in fact the right order. > The linker_load_module() function calls LINKER_LOAD_FILE() with the > kld_sx locked, and linker itself locks module vnode. > > So there was something in your system which exposed the reversed order > vnode->kld_sx before the action. To catch it, keep the modification to > mark kld_sx as recursive, but also add an item to the order_lists in > the sys/kern/subr_witness.c like this: > {"kernel linker", &lock_class_sx}, > {"ufs", &lock_class_lockmgr}, > {NULL, NULL} > and watch were would it fire.
I’ll do this when I get back to that system next week. I have a guess, though: I noticed that the old bufwait/dirhash LOR is being triggered before this. Could the backtrace from that be teaching Witness a bogus ufs -> kld ordering? Tim _______________________________________________ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"