From owner-freebsd-current@FreeBSD.ORG Wed Aug 19 17:50:31 2009 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0F86B106568B for ; Wed, 19 Aug 2009 17:50:31 +0000 (UTC) (envelope-from rick@kiwi-computer.com) Received: from hamlet.setfilepointer.com (hamlet.SetFilePointer.com [63.224.10.2]) by mx1.freebsd.org (Postfix) with SMTP id B5F178FC6D for ; Wed, 19 Aug 2009 17:50:30 +0000 (UTC) Received: (qmail 30617 invoked from network); 19 Aug 2009 12:50:29 -0500 Received: from keira.kiwi-computer.com (HELO kiwi-computer.com) (63.224.10.3) by hamlet.setfilepointer.com with SMTP; 19 Aug 2009 12:50:29 -0500 Received: (qmail 90550 invoked by uid 2001); 19 Aug 2009 17:50:29 -0000 Date: Wed, 19 Aug 2009 12:50:29 -0500 From: "Rick C. Petty" To: current@freebsd.org Message-ID: <20090819175029.GA90205@keira.kiwi-computer.com> References: <20090819161817.GA89704@keira.kiwi-computer.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090819161817.GA89704@keira.kiwi-computer.com> User-Agent: Mutt/1.4.2.3i Cc: bzeeb+freebsd+lor@zabbadoz.net Subject: Re: various vfs LORs X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: rick-freebsd2008@kiwi-computer.com List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Aug 2009 17:50:31 -0000 On Wed, Aug 19, 2009 at 06:00:31PM +0100, Bruce Cran wrote: > On Wed, Aug 19, 2009 at 11:18:17AM -0500, Rick C. Petty wrote: > > > Upon every restart, I see a few LORs. I couldn't find PRs for any of them. > > See attached dmesg below. Should I submit a PR for each of them or one PR > > for all five? > > You should check http://sources.zabbadoz.net/freebsd/lor.html first > before submitting PRs, to see if they're known. Thanks, I'll update my post accordingly... > % uname -a > FreeBSD myhost 8.0-BETA2 FreeBSD 8.0-BETA2 #4 r196381M: Wed Aug 19 10:06:03 CDT 2009 root@myhost:/usr/obj/usr/src/sys/GENERIC amd64 This is LOR #280 with slightly different line numbers and backtrace: > lock order reversal: > 1st 0xffffff0002e48620 ufs (ufs) @ /usr/src/sys/kern/vfs_mount.c:1200 > 2nd 0xffffff0002e48d80 devfs (devfs) @ /usr/src/sys/kern/vfs_subr.c:2083 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > _witness_debugger() at _witness_debugger+0x2e > witness_checkorder() at witness_checkorder+0x81e > __lockmgr_args() at __lockmgr_args+0xcf3 > vop_stdlock() at vop_stdlock+0x39 > VOP_LOCK1_APV() at VOP_LOCK1_APV+0x9b > _vn_lock() at _vn_lock+0x47 > vget() at vget+0x7b > devfs_allocv() at devfs_allocv+0x100 > devfs_root() at devfs_root+0x48 > vflush() at vflush+0x4c > devfs_unmount() at devfs_unmount+0x46 > dounmount() at dounmount+0x2e6 > unmount() at unmount+0x27e > syscall() at syscall+0x1af > Xfast_syscall() at Xfast_syscall+0xe1 > --- syscall (22, FreeBSD ELF64, unmount), rip = 0x8006a09ec, rsp = 0x7fffffffe248, rbp = 0 --- LOR #261 was already reported: > lock order reversal: > 1st 0xffffff80a51147e8 bufwait (bufwait) @ /usr/src/sys/kern/vfs_bio.c:2559 > 2nd 0xffffff000439b400 dirhash (dirhash) @ /usr/src/sys/ufs/ufs/ufs_dirhash.c:285 This LOR doesn't seem to be reported anywhere: > lock order reversal: > 1st 0xffffff00046de7f8 nfs (nfs) @ /usr/src/sys/kern/vfs_syscalls.c:4097 > 2nd 0xffffff80a5129968 bufwait (bufwait) @ /usr/src/sys/kern/vfs_bio.c:1835 > 3rd 0xffffff00046de620 nfs (nfs) @ /usr/src/sys/nfsclient/nfs_node.c:161 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > _witness_debugger() at _witness_debugger+0x2e > witness_checkorder() at witness_checkorder+0x81e > __lockmgr_args() at __lockmgr_args+0xcf3 > nfs_nget() at nfs_nget+0x1c9 > nfs_readdirplusrpc() at nfs_readdirplusrpc+0x7cc > nfs_doio() at nfs_doio+0x617 > nfs_bioread() at nfs_bioread+0xa9f > nfs_readdir() at nfs_readdir+0x85 > kern_getdirentries() at kern_getdirentries+0x12e > getdirentries() at getdirentries+0x23 > syscall() at syscall+0x1af > Xfast_syscall() at Xfast_syscall+0xe1 > --- syscall (196, FreeBSD ELF64, getdirentries), rip = 0x8009d11dc, rsp = 0x7fffffffc3a8, rbp = 0x1 --- This one has not been reported either: > lock order reversal: > 1st 0xffffff000412b270 syncer (syncer) @ /usr/src/sys/kern/vfs_subr.c:1693 > 2nd 0xffffff00043e6098 ufs (ufs) @ /usr/src/sys/kern/vfs_subr.c:2083 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > _witness_debugger() at _witness_debugger+0x2e > witness_checkorder() at witness_checkorder+0x81e > __lockmgr_args() at __lockmgr_args+0xcf3 > ffs_lock() at ffs_lock+0x8c > VOP_LOCK1_APV() at VOP_LOCK1_APV+0x9b > _vn_lock() at _vn_lock+0x47 > vget() at vget+0x7b > vfs_msync() at vfs_msync+0xa3 > sync_fsync() at sync_fsync+0x12a > sync_vnode() at sync_vnode+0x157 > sched_sync() at sched_sync+0x1d1 > fork_exit() at fork_exit+0x12a > fork_trampoline() at fork_trampoline+0xe > --- trap 0, rip = 0, rsp = 0xffffff80e7b74d30, rbp = 0 --- This one is not an LOR but should probably be investigated nonetheless: > acquiring duplicate lock of same type: "ftlk" > 1st ftlk @ /usr/src/sys/modules/linux/../../compat/linux/linux_futex.c:177 > 2nd ftlk @ /usr/src/sys/modules/linux/../../compat/linux/linux_futex.c:203 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > _witness_debugger() at _witness_debugger+0x2e > witness_checkorder() at witness_checkorder+0x8ef > _sx_xlock() at _sx_xlock+0x55 > futex_get0() at futex_get0+0xfe > linux_sys_futex() at linux_sys_futex+0x96 > ia32_syscall() at ia32_syscall+0x19c > Xint0x80_syscall() at Xint0x80_syscall+0x95 > --- syscall (240, Linux ELF32, linux_sys_futex), rip = 0x28799533, rsp = 0xffffaecc, rbp = 0x4000001 --- -- Rick C. Petty