Current-Users archive

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

LOCKDEBUG panic on x68k



x68k GENERIC kernel + LOCKDEBUG cause panic in uvm_init().
GENERIC without LOCKDEBUG passes here.

Here is the message:

panic: lockdebug_lookup: uninitialized lock (lock=0x254784)
Stopped in pid 0.1 (system) at  netbsd:cpu_Debugger+0x6:    unlk a6
db> bt
cpu_Debugger(2704,21c8a0,0,2edd78,2edd8c) + 6
panic(20623e,254784,8,1,fffffff4) + 172
lockdebug_wantlock(254784,d6fa8,0) + 124
rw_vector_tryenter(254784,1) + ee
vm_map_lock_try(254780) + 34
uvm_map_prepare(254780,0,1000,0,ffffffff,ffffffff,0,41727,2ede50) + 3e
uvm_kmapent_alloc(254780,0) + c4
uvm_mapent_alloc(254780,0,1,0,0) + 2a
uvm_map(254780,2edf18,f000,0,ffffffff,ffffffff,0,801727) + 32
uvm_km_alloc(254780,f000,0,11,c) + 56
pmap_init(75100,ffc00000,2edf7c,2edf78,2632d8) + 8e
uvm_init(c,0,0,ffffcffc,0) + 5c
main() + 1e
db>


0x254784 seems kernel_map_store.kvm_map.lock.

% nm netbsd | sort 
 :
0025477c b uvm_uarea_cache
00254780 b kernel_map_store
00254970 b kernel_first_mapent_store


The kernel config file I use is:
--- GENERIC     15 Mar 2008 04:46:00 -0000      1.5
+++ GENERIC     29 Apr 2008 08:43:18 -0000
@@ -100,10 +100,10 @@
 ## The DDB in-kernel debugger runs at panic (unless DDB_ONPANIC=0), or at
 ## serial console break or keyboard reset, where the PROM would normally
 ## intercept.  DDB_HISTORY_SIZE adds up/down arrow command history.
-#options       DDB                     # kernel dynamic debugger
+options        DDB                     # kernel dynamic debugger
 #options       DDB_HISTORY_SIZE=100    # enable history editing in DDB
-#options       DDB_ONPANIC=1           # see also sysctl(8): `ddb.onpanic'
-#options       PANICBUTTON             # interrupt switch invokes DDB
+options        DDB_ONPANIC=1           # see also sysctl(8): `ddb.onpanic'
+options        PANICBUTTON             # interrupt switch invokes DDB
 
 ## You may also use gdb, on another computer connected to this machine over
 ## a serial port.  Both KGDB_DEV and KGDB_DEVRATE should be specified;
@@ -122,6 +122,7 @@
 ## cause the kernel to panic if corruption of internal data structures
 ## is detected.
 #options       DIAGNOSTIC      # extra kernel sanity checking
+options        LOCKDEBUG
 
 ## Enable (possibly expensive) debugging code that may also display messages
 ## on the system console
---
Tetsuya Isaki <isaki%pastel-flower.jp@localhost>


Home | Main Index | Thread Index | Old Index