From owner-freebsd-current@FreeBSD.ORG Fri Aug 13 15:21:45 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4314016A4CE; Fri, 13 Aug 2004 15:21:45 +0000 (GMT) Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id C286443D45; Fri, 13 Aug 2004 15:21:44 +0000 (GMT) (envelope-from robert@fledge.watson.org) Received: from fledge.watson.org (localhost [127.0.0.1]) by fledge.watson.org (8.12.11/8.12.11) with ESMTP id i7DFK0N1087160; Fri, 13 Aug 2004 11:20:01 -0400 (EDT) (envelope-from robert@fledge.watson.org) Received: from localhost (robert@localhost)i7DFK0tZ087157; Fri, 13 Aug 2004 11:20:00 -0400 (EDT) (envelope-from robert@fledge.watson.org) Date: Fri, 13 Aug 2004 11:20:00 -0400 (EDT) From: Robert Watson X-Sender: robert@fledge.watson.org To: Martin Blapp In-Reply-To: <20040813163348.C31181@cvs.imp.ch> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-current@freebsd.org cc: des@freebsd.org Subject: Re: Witness panic in pseudofs_vncache X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Aug 2004 15:21:45 -0000 On Fri, 13 Aug 2004, Martin Blapp wrote: > > Sleeping on "pseudofs" with the following non-sleepable locks held: > exclusive sleep mutex pseudofs_vncache r = 0 (0xc0903e40) locked @ > /usr/src/sys/fs/pseudofs/pseudofs_vncache.c > :226 > KDB: enter: witness_warn > [thread 100232] > Stopped at kdb_enter+0x30: leave Actually, that's not a panic -- your system can keep running, it's a warning (although you appear to have witness_kdb turned on, so you drop to the debugger and will need to type continue). This appears to be a bug in pseudofs due to calling vgone() while holding the pfs_vncache_mutex, as vgone() can sleep due to acquiring lockmgr locks. The fix is likely to make this looping even less efficient by dropping the mutex before calling vgone() on a vnode, and then restarting. I've CC'd DES because this is his baby. Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert@fledge.watson.org Principal Research Scientist, McAfee Research > > db> where > kdb_enter(c080e20c,e5143af8,1,1,1) at kdb_enter+0x30 > witness_warn(5,c09087bc,c084de97,c084928d,1) at witness_warn+0x19b > msleep(c469cc08,c09087bc,50,c084928d,0) at msleep+0x5b > acquiredrain(c469cc04,1000040,c084c33b,e7,c3f7a160) at acquiredrain+0x9c > lockmgr(c469cc04,10007,c469cb58,c3f7a160,e5143ba0) at lockmgr+0x4d2 > vop_stdlock(e5143bf8,e5143c14,c068ce26,e5143bf8,1) at vop_stdlock+0x2c > vop_defaultop(e5143bf8,1,c062ccaf,c090f400,8) at vop_defaultop+0x18 > vclean(c469cb58,8,c3f7a160,c469cb58,c3f7a160) at vclean+0x50 > vgonel(c469cb58,c3f7a160,c0853c09,a43,0) at vgonel+0x5f > vgone(c469cb58,0,c0849739,e2,c35dc5a0) at vgone+0x42 > pfs_exit(0,c3f7da68,c084b8ec,cc,c0908260) at pfs_exit+0x74 > exit1(c3f7a160,0,e5143d40,c07e88eb,c3f7a160) at exit1+0x2ed > exit1(c3f7a160,e5143d14,4,c0851129,1) at exit1 > syscall(2f,2f,2f,bfbfe508,bfbfe468) at syscall+0x275 > Xint0x80_syscall() at Xint0x80_syscall+0x1f > --- syscall (1, FreeBSD ELF32, sys_exit), eip = 0x832d7c7, esp = 0xbfbfe434, ebp > = 0xbfbfe440 --- > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" >