|
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年12月25日 ・pbulk 11.99.3 (emacs30) 2025年11月22日 ・crash dump 2025年10月25日 ・recover from disk error 2025年10月23日 ・dd does not duplicate Windows 11 boot disk ? 2025年10月13日 ・missing package | ||