Hi, I've been trying to understand why with DIAGNOSTIC, a pmax kernel panics at init, with the following:
init path (default /sbin/init): init: copying out path `/sbin/init' 11 pid 1(init): ABI set to O32 (e_flags=0x1007) panic: kernel diagnostic assertion "pcb2->pcb_context.val[_L_SR] & MIPS_SR_INT_IE" failed: file "/usr/cvs-src/src/sys/arch/mips/mips/vm_machdep.c", line 150 2.1 0x80034 cpu0: Begin traceback... pid -1020797712 not found cpu0: End traceback... kernel: breakpoint trap Stopped in pid 2.1 (sh) at netbsd:cpu_Debugger+0x4: jr ra bdslot: nop db> bt 0xc327dd18: cpu_Debugger+4 (0,0,0,804e2f00) ra 80314c70 sz 0 0xc327dd18: vpanic+1a4 (0,0,0,804e2f00) ra 80413be0 sz 48 0xc327dd48: kern_assert+40 (0,8043b04c,8043fd7c,8043fdac) ra 800527e8 sz 32 0xc327dd68: cpu_lwp_fork+218 (0,8043b04c,8043fd7c,8043fdac) ra 802837b0 sz 64 0xc327dda8: uvm_lwp_fork+28 (0,8043b04c,8043fd7c,8043fdac) ra 802c78d4 sz 32 0xc327ddc8: lwp_create+2d8 (0,8043b04c,8043fd7c,8043fdac) ra 802bef5c sz 64 0xc327de08: fork1+44c (0,8043b04c,14,8043fdac) ra 802bf6ac sz 144 0xc327de98: sys_fork+2c (0,8043b04c,c327df68,8043fdac) ra 8004ec80 sz 48 0xc327dec8: syscall+260 (0,8043b04c,c327df68,8043fdac) ra 800415b8 sz 128 0xc327df48: mips1_systemcall+ec (0,8043b04c,c327df68,8043fdac) ra 7de726e0 sz 0 PC 0x7de726e0: not in kernel space 0xc327df48: 0+7de726e0 (0,8043b04c,c327df68,8043fdac) ra 0 sz 0 User-level: pid 2.1 The assert is testing if the STATUS register in the newly forked pcb2 has interrupts enabled (first bit is 1). I've also attempted to check the parent of this process, and it also triggers the assert. if I check in init_start, lwp0 has interrupts enabled and everything is nicely initialized. So my trouble is: why does init's PCB seem to differ from that of lwp0? what is lwp0? (I thought it's init?) Any other suggestions for debugging? Thanks.