NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/37993: panic: lockmgr: locking against myself (netbsd-4.0_STABLE)



The following reply was made to PR kern/37993; it has been noted by GNATS.

From: Andrew Doran <ad%netbsd.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: kern/37993: panic: lockmgr: locking against myself 
(netbsd-4.0_STABLE)
Date: Thu, 28 Feb 2008 23:10:28 +0000

 On Thu, Feb 28, 2008 at 08:45:02PM +0000, Greg A. Woods wrote:
 
 >  last locked: /rest/work/woods/m-NetBSD-4/sys/uvm/uvm_map.c:1021
 >  last unlocked: /rest/work/woods/m-NetBSD-4/sys/uvm/uvm_map.c:1011
 >  kernel_map_store(c09822f4,3f303fd,0,c0a67284,0) at 0xc0a50820
 >  Stopped in pid 2264.2 (apcupsd) at      netbsd:cpu_Debugger+0x4:        
 > popl    %ebp
 >  db{0}> trace
 >  cpu_Debugger(d98c25d0,1,ffff,c0959b17,c041c0e0) at netbsd:cpu_Debugger+0x4
 >  _simple_lock(c0a50924,c09818f0,1a1,d98c2680,18c2704) at 
 > netbsd:_simple_lock+0x331
 >  uvm_map_prepare(c0a50820,c0000000,20000,0,ffffffff) at 
 > netbsd:uvm_map_prepare+0x329
 >  uvm_map(c0a50820,d98c26e4,20000,0,ffffffff) at netbsd:uvm_map+0xc0
 >  km_vacache_alloc(c0a50980,0,525,206,c09d9bf4) at 
 > netbsd:km_vacache_alloc+0x67
 >  pool_grow(c0a509f0,c0988ec4,3a7,3a4,977) at netbsd:pool_grow+0x4c
 >  pool_get(c0a50980,0,d98c279c,202,d98c279c) at netbsd:pool_get+0x12f
 >  uvm_km_alloc_poolpage_cache(c0a50820,0,525,206,c09d9bf4) at 
 > netbsd:uvm_km_alloc_poolpage_cache+0x59
 >  pool_grow(c0a51ef0,c0988ec4,3a7,3a4,d992) at netbsd:pool_grow+0x4c
 >  pool_get(c0a51e80,0,d98c285c,c0433942,0) at netbsd:pool_get+0x12f
 >  sadata_upcall_alloc(0,58,d98c285c,202,c0a5094c) at 
 > netbsd:sadata_upcall_alloc+0x21
 >  ltsleep(c0a5087c,4,c092e1f9,0,c0a50924) at netbsd:ltsleep+0x552
 >  uvm_map_prepare(c0a50820,c0000000,20000,0,ffffffff) at 
 > netbsd:uvm_map_prepare+0x1b4
 >  uvm_map(c0a50820,d98c2964,20000,0,ffffffff) at netbsd:uvm_map+0xc0
 >  km_vacache_alloc(c0a50980,2,525,202,c09d9bf4) at 
 > netbsd:km_vacache_alloc+0x67
 >  pool_grow(c0a509f0,c0988ec4,3a7,3a4,cffe7594) at netbsd:pool_grow+0x4c
 >  pool_get(c0a50980,2,0,202,0) at netbsd:pool_get+0x12f
 >  uvm_km_alloc_poolpage_cache(c0a50820,1,525,202,c09d9bf4) at 
 > netbsd:uvm_km_alloc_poolpage_cache+0x59
 >  pool_grow(c0a6ccf0,c0988ec4,3a7,3a4,0) at netbsd:pool_grow+0x4c
 >  pool_get(c0a6cc80,2,80f,3a4,d002c694) at netbsd:pool_get+0x12f
 >  pool_cache_get_paddr(c0a6cb20,2,0,0,0) at netbsd:pool_cache_get_paddr+0x15b
 >  pmap_create(d002c794,0,bfc00000,41,d002c690) at netbsd:pmap_create+0xe2
 >  uvmspace_init(d002c690,0,0,bfc00000,d9848f80) at netbsd:uvmspace_init+0x75
 >  uvmspace_alloc(0,bfc00000,d9848f80,c09818f0,1c2) at 
 > netbsd:uvmspace_alloc+0x3a
 >  uvmspace_fork(d9848e7c,d97f2204,48,d98b9020,d98b9020) at 
 > netbsd:uvmspace_fork+0x116
 >  uvm_proc_fork(d97f2204,d98b9020,0,246,c09d9bf4) at netbsd:uvm_proc_fork+0x23
 >  fork1(d97ef4bc,0,14,0,0) at netbsd:fork1+0x2f9
 >  sys_fork(d97ef4bc,d98c2c48,d98c2c68,813811f,8138000) at netbsd:sys_fork+0x45
 >  syscall_plain() at netbsd:syscall_plain+0x1a8
 >  --- syscall (number 2) ---
 >  0x80f6613:
 >  db{0}> call simple_lock_dump()
 >  all simple locks:
 >  0xc0a67274 CPU 0 /rest/work/woods/m-NetBSD-4/sys/kern/kern_lock.c:1476
 >  0xc0a50924 CPU 0 /rest/work/woods/m-NetBSD-4/sys/uvm/uvm_map.c:1021
 >  0x80000000
 
 This one is a design defect in the SA thread implementation and is fixed in
 current with 1:1 threads. The original panic is different and is a problem
 in the x86 pmap.
 
 Andrew
 


Home | Main Index | Thread Index | Old Index