Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Early amd64 LOCKDEBUG panic ?
Hi,
With up-to-date sources, i do see an early LOCKDEBUG panic at boot on
my main amd64 developpement machine:
>> NetBSD/x86 BIOS Boot,Revision 5.9 (from NetBSD 5.99.53)
>> Memory: 590/3012096 k
Press return to boot now,any other key for boot menu
booting hd0a:netbsd - starting in 0 seconds.
12300928+631912+709368 [794616+533978]=0xf48520
Loading /stand/amd64/5.99.61/modules/ffs/ffs.kmod
panic: lockdebug_lookup: uninitialized lock
(lock=0xffffffff80ee9ee0,from=ffffffff8071d462)
Anyone else ?
Thanks.
NB: Same applies for RUMP_LOCKDEBUG=yes rump binaries ... a simple
rump_init() call is enough to trigger it.
njoly@lanfeust [rump/misc]> cat rump_init.c
#include <err.h>
#include <rump/rump.h>
int main() {
int res;
res = rump_init();
if (res != 0)
err(1,"rump_init failed");
return 0; }
njoly@lanfeust [rump/misc]> make rump_init
cc -pthread -g -Wall -Werror -lrumpvfs -lrump -o rump_init rump_init.c
njoly@lanfeust [rump/misc]> ./rump_init
panic: lockdebug_lookup: uninitialized lock
(lock=0x7f7ff76c9da0,from=7f7ff7454151)
rump kernel halting...
zsh: segmentation fault (core dumped) ./rump_init
njoly@lanfeust [rump/misc]> gdb ./rump_init rump_init.core
GNU gdb (GDB) 7.3.1
[...]
Core was generated by `rump_init'.
Program terminated with signal 11,Segmentation fault.
#0 0x00007f7ff74864c9 in cpu_reboot (howto=4,bootstr=<optimized out>)
at
/local/src/NetBSD/src/lib/librump/../../sys/rump/librump/rumpkern/rump.c:525
525 if (!RUMP_LOCALPROC_P(curproc))
(gdb) bt
#0 0x00007f7ff74864c9 in cpu_reboot (howto=4,bootstr=<optimized out>)
at
/local/src/NetBSD/src/lib/librump/../../sys/rump/librump/rumpkern/rump.c:525
#1 0x00007f7ff745f19e in vpanic (fmt=0x7f7ff748f2e8 "lockdebug_lookup:
uninitialized lock (lock=%p,from=%08lx)",
ap=0x7f7fffffd640) at
/local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/subr_prf.c:308
#2 0x00007f7ff745f2a3 in panic (fmt=0x1 <Address 0x1 out of bounds>)
at /local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/subr_prf.c:205
#3 0x00007f7ff744c97f in lockdebug_lookup
(where=140187586085201,lock=0x7f7ff76c9da0)
at
/local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/subr_lockdebug.c:195
#4 lockdebug_wantlock
(lock=0x7f7ff76c9da0,where=140187586085201,shared=false,trylock=false)
at
/local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/subr_lockdebug.c:430
#5 0x00007f7ff7482c7e in mutex_enter (mtx=0x7f7ff76c9da0)
at
/local/src/NetBSD/src/lib/librump/../../sys/rump/librump/rumpkern/locks.c:112
#6 0x00007f7ff7454151 in pool_cache_bootstrap_destroy (pc=<optimized out>)
at /local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/subr_pool.c:2077
#7 0x00007f7ff74505d9 in qc_init (ipl=6,qcache_max=<optimized
out>,vm=0x7f7ff76bd9c8)
at /local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/subr_vmem.c:676
#8 vmem_create_internal (name=<optimized out>,base=0,size=0,quantum=<optimized
out>,importfn=<optimized out>,
releasefn=<optimized
out>,arg=0x7f7ff76bf2a0,qcache_max=131072,flags=65538,ipl=6)
at /local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/subr_vmem.c:1011
#9 0x00007f7ff74836a2 in uvm_init () at
/local/src/NetBSD/src/lib/librump/../../sys/rump/librump/rumpkern/vm.c:340
#10 0x00007f7ff74869e1 in rump__init (rump_version=<optimized out>)
at
/local/src/NetBSD/src/lib/librump/../../sys/rump/librump/rumpkern/rump.c:296
#11 0x0000000000400a22 in main () at rump_init.c:9
(gdb) frame 6
#6 0x00007f7ff7454151 in pool_cache_bootstrap_destroy (pc=<optimized out>)
at /local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/subr_pool.c:2077
2077 mutex_enter(&pool_head_lock);
(gdb) p &pool_head_lock
$1 = (kmutex_t *) 0x7f7ff76c9da0
(gdb) l *(0x7f7ff7454151)
0x7f7ff7454151 is in pool_cache_bootstrap_destroy
(/local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/subr_pool.c:2078).
2073 struct pool *pp = &pc->pc_pool;
2074 u_int i;
2075
2076 /* Remove it from the global list. */
2077 mutex_enter(&pool_head_lock);
2078 while (pc->pc_refcnt != 0)
2079 cv_wait(&pool_busy,&pool_head_lock);
2080 TAILQ_REMOVE(&pool_cache_head,pc,pc_cachelist);
2081 mutex_exit(&pool_head_lock);
2082
--
Nicolas Joly
Projects and Developments in Bioinformatics
Institut Pasteur, Paris.
Home |
Main Index |
Thread Index |
Old Index