Subject: kern/24039: pool_get held simple_lock
To: None <>
From: Juergen Hannken-Illjes <>
List: netbsd-bugs
Date: 01/10/2004 12:05:22
>Number:         24039
>Category:       kern
>Synopsis:       pool_get held simple_lock
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jan 10 11:06:00 UTC 2004
>Originator:     Juergen Hannken-Illjes
>Release:        NetBSD 1.6ZG
System: NetBSD toaster 1.6ZG NetBSD 1.6ZG (kern.sparc) #173: Fri Jan 9 22:49:53 MET 2004 hannken@watcher:/scratch/snapshot/xkern/kern.sparc sparc
Architecture: sparc
Machine: sparc
Machine is a dual Sparc 20 running a MP kernel.

After ~9 hours with high I/O load (dbench 6) I got:

pool_get(PR_WAITOK) with held simple_lock 0xf0348214
	CPU 1 src/sys/kern/subr_pool.c:1012

0x0(0xf03852c8, 0x2, 0xf81b1000, 0xe, 0x5e10000, 0x5e10000)
	at uvm_mapent_alloc() src/sys/uvm/uvm_map.c:403
uvm_mapent_alloc(0x0, 0x0, 0x4d9, 0xe, 0x5e10000, 0x5e10000)
	at uvm_map_clip_start() src/sys/uvm/uvm_map.c:596
uvm_map_clip_start(0xf0348920, 0xf0c37120, 0xf81e0000, 0x0, 0x40100, 0x0)
	at uvm_unmap_remove() src/sys/uvm/uvm_map.c:1688
uvm_unmap_remove(0xf0348920, 0xf81e0000, 0xf81f0000, 0xf3be474c, 0x191, 0x1fff)
	at uvm_unmap() uvm_map_i.h:150
uvm_unmap(0xf0348920, 0xf81e0000, 0xf81f0000, 0x200, 0xf3717000, 0x1)
	at pool_allocator_free() src/sys/kern/subr_pool.c:2028
pool_allocator_free(0xf03481a4, 0xf81e0000, 0x0, 0xb398, 0x1, 0x1d7720)
	at pr_rmpage() src/sys/kern/subr_pool.c:342
pr_rmpage(0xf03481a4, 0xf0f35780, 0x0, 0xf3be47f8, 0xf81e0000, 0xf0f35780)
	at pool_do_put() src/sys/kern/subr_pool.c:956
pool_do_put(0xf03481a4, 0xf81e0000, 0x3f4, 0xebb81, 0xf38aec08, 0x48)
	at pool_put() src/sys/kern/subr_pool.c:1014
pool_put(0xf0348214, 0xf02f1d98, 0x3f8, 0xebb80, 0xf76f8018, 0x400)
	at allocbuf() src/sys/kern/vfs_bio.c:1040
allocbuf(0xf0f2ad00, 0xf38aec08, 0x0, 0xf81b26a8, 0x0, 0x0)
	at getblk() src/sys/kern/vfs_bio.c:979
getblk(0xf0f2ad00, 0xf0330000, 0xf02f3c00, 0x400, 0x0, 0x0)
	at ffs_balloc_ufs1() src/sys/ufs/ffs/ffs_balloc.c:260
ffs_balloc_ufs1(0xf0c85a00, 0xf6ad2788, 0x1, 0x200, 0xf0c91800, 0x1fff)
	at VOP_BALLOC() src/sys/kern/vnode_if.c:1395
VOP_BALLOC(0xf81b26a8, 0x0, 0x0, 0x200, 0xf0c85a00, 0x1)
	at ufs_mkdir() src/sys/ufs/ufs/ufs_vnops.c:1317
ufs_mkdir(0x0, 0xf328ac00, 0x5ab, 0xf3be4e18, 0xf3be3000, 0x0)
	at VOP_MKDIR() src/sys/kern/vnode_if.c:857
VOP_MKDIR(0xf8119cd0, 0xf3be4e10, 0xf3be4e24, 0xf3be4e48, 0xf3be4f28, 0x3)
	at sys_mkdir() src/sys/kern/vfs_syscalls.c:3319
sys_mkdir(0xf386f7e8, 0xf3be4f28, 0xf3be4f20, 0x0, 0xf3be4f28, 0x11fc8)
	at syscall() src/sys/arch/sparc/sparc/trap.c:1493
syscall(0x88, 0xf3be4fb0, 0x100e7fc0, 0xf3be4fb0, 0x400, 0xf3be4f28)
	at 0xf00087f8

Stopped in pid 6637.1 (dbench) at netbsd:cpu_Debugger+0x4: or %o7, %g0, %g1

src/sys/arch/sparc/sparc/trap.c		rev 1.151
src/sys/kern/subr_pool.c		rev 1.90
src/sys/kern/vfs_bio.c			rev 1.107
src/sys/kern/vfs_syscalls.c		rev 1.202
src/sys/kern/vnode_if.c			rev 1.45
src/sys/ufs/ffs/ffs_balloc.c		rev 1.34
src/sys/ufs/ufs/ufs_vnops.c		rev 1.109
src/sys/uvm/uvm_map.c			rev 1.152

Sorry, no core dump...