Acquiring lockmgr lock "ufs" with non-sleepable locks

Suleiman Souhlal ssouhlal at FreeBSD.org
Sun Jun 12 21:59:06 GMT 2005


Hi,

On Jun 12, 2005, at 4:18 AM, Jun Kuriyama wrote:

>
> As of today's current:
>
> Acquiring lockmgr lock "ufs" with the following non-sleepable locks  
> held:
> exclusive sleep mutex vnode pollinfo r = 0 (0xc4814000) locked @ / 
> usr/src/sys/kern/kern_event.c:881
> KDB: stack backtrace:
> kdb_backtrace(1,3001,c3fa229c,c3a36780,ecf71a5c) at kdb_backtrace+0x29
> witness_warn(5,c070c378,c06a435b,c06ad03d) at witness_warn+0x18e
> lockmgr(c3fa2278,3001,c3fa229c,c3a36780,ecf71a88) at lockmgr+0x8d
> vop_stdlock(ecf71acc,c06f58c0,ecf71acc,ecf71a98,c0612184) at  
> vop_stdlock+0x1e
> VOP_LOCK_APV(c06f5e00,ecf71acc,ecf71aac,c067caff,ecf71acc) at  
> VOP_LOCK_APV+0x87
> ffs_lock(ecf71acc,1001,c3fa2220,ecf71ae8,c0566634) at ffs_lock+0x10
> VOP_LOCK_APV(c06f58c0,ecf71acc) at VOP_LOCK_APV+0x87
> vn_lock(c3fa2220,1001,c3a36780) at vn_lock+0xa4
> filt_vfsread(c3ac9264,0,0,ffffffff,0) at filt_vfsread+0x3a
> kqueue_register(c3dd6480,ecf71bf4,c3a36780,1,0) at kqueue_register 
> +0x668
> kern_kevent(c3a36780,4,1,0,ecf71cc8) at kern_kevent+0xc9
> kevent(c3a36780,ecf71d04,6,1,292) at kevent+0x55
> syscall(3b,3b,3b,1,804e068) at syscall+0x22f
> Xint0x80_syscall() at Xint0x80_syscall+0x1f
> --- syscall (363, FreeBSD ELF32, kevent), eip = 0x280b9503, esp =  
> 0xbfbfe8ec, ebp = 0xbfbfe938 ---

This was introduced by my commit to take out the various kqueue  
operations outside of ufs. It is because we are trying to lock the  
vnode while holding the knlist mutex. I'll work on a fix on  
wednesday, as I'll unfortunately be a bit busy until then. I hope  
this won't cause you any inconvenience.

Bye.
--
Suleiman Souhlal     | ssouhlal at vt.edu
The FreeBSD Project  | ssouhlal at FreeBSD.org



More information about the freebsd-current mailing list