|
Namazu for hns による簡易全文検索 詳しくは 詳細指定/ヘルプを参照して下さい |
||||||||||||||||||||||||||||||||||||||||||||||||||
2002年06月11日(火) 旧暦 [n年日記]#1 [NetBSD] not exclusive lock holder 1008730187 unlocking>> NetBSD/macppc OpenFirmware Boot, Revision 1.6 >> (makoto@ibook, Mon May 27 16:28:24 JST 2002) 3839052+219140 [187920+155996]=0x432e20 start=0x100000 panic: lockmgr: pid 0, not exclusive lock holder 1008730187 unlocking Stopped in pid () at 0x30f214: lwz r0,r1, 0x14 db>という表示は sys/kern/kern_lock.c の 715 行目付近かららしい 457 lockmgr(__volatile struct lock *lkp, u_int flags, 458 struct simplelock *interlkp) ..... 528 switch (flags & LK_TYPE_MASK) { ..... 707 case LK_RELEASE: 708 if (lkp->lk_exclusivecount != 0) { 709 if (WEHOLDIT(lkp, pid, cpu_id) == 0) { 710 if (lkp->lk_flags & LK_SPIN) { 711 panic("lockmgr: processor %lu, not " 712 "exclusive lock holder %lu " 713 "unlocking", cpu_id, lkp->lk_cpu); 714 } else { 715 panic("lockmgr: pid %d, not " 716 "exclusive lock holder %d " 717 "unlocking", pid, 718 lkp->lk_lockholder); 719 }sys/kern/init_main.c 192 KERNEL_LOCK_INIT(); .. 348 /* Lock the kernel on behalf of proc0. */ 349 KERNEL_PROC_LOCK(p);というのがあるが、多分 MULTIPROCESSOR 以外は何もしない(はず) 同じく 447 /* 448 * Get the vnode for '/'. Set filedesc0.fd_fd.fd_cdir to 449 * reference it. 450 */ 451 if (VFS_ROOT(mountlist.cqh_first, &rootvnode)) 452 panic("cannot find root vnode"); 453 cwdi0.cwdi_cdir = rootvnode; 454 VREF(cwdi0.cwdi_cdir); 455 VOP_UNLOCK(rootvnode, 0); 456 cwdi0.cwdi_rdir = NULL;この 455 行目かな。 でももう一度最初から見直したら Copyright を表示する前のような。 @ curcpu() が気になったので:
(ts 版) sys/arch/macppc/include/cpu.h より
77 #ifdef MULTIPROCESSOR ... 80 static struct cpu_info *curcpu(void); ... 91 static __inline struct cpu_info * 92 curcpu() 93 { 94 struct cpu_info *ci; 95 96 asm volatile ("mfsprg %0,0" : "=r"(ci)); 97 return ci; 98 } 99 ... 111 #else ... 116 #define curcpu() (&cpu_info_store) ... 119 #endif /* MULTIPROCESSOR */(na 版の時も sys/arch/powerpc/include/cpu.h に書いてあるだけで、define の内容は同じ) でもって sys/arch/macppc/macppc/cpu.c に struct cpu_info cpu_info_store;となっていて cpu_info[] にいろいろ書込んだり.. @ consinit() -> cninit() の最後の問題の気が:
(字が入力出来ないし)
一番初めの中の 709 行目の
709 if (WEHOLDIT(lkp, pid, cpu_id) == 0) {cpu_id がきっと変なのかも。 ( つっこみ )
|
最近の日記 2025年02月13日 ・dvipdfmx ICC profile format spec. version 4.3.0 2025年01月29日 ・ham/wsjtx 2025年01月27日 ・wip/wsjtx 5.4.2 2025年01月25日 ・ham/wsjtx 2025年01月15日 ・今更 advent calendar | ||