Port-mac68k archive

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

Re: current won't boot



So, I did a bit more digging:

The problem started with rmind's changes to loadavg calculation:

cvs diff -u -r1.280 -r1.281 kern/kern_synch.c
cvs diff -u -r1.71 -r1.72 sys/sched.h
cvs diff -u -r1.162 -r1.163 uvm/uvm_extern.h
cvs diff -u -r1.144 -r1.145 uvm/uvm_glue.c
cvs diff -u -r1.51 -r1.52 uvm/uvm_meter.c

but the changes look completely unrelated - maybe an old bug getting 
exposed now?

What happens is:

 - at the very end of main, uvm_scheduler() is called and does a kpause()
 - this kpause() puts the current thred on a sleepq (sleepq_block())
   and we reschedule via mi_switch -> cpu_switchto
 - now we should probably end up in lwp0, but the last instruction of
   cpu_switchto (the rts) is where the system dies

I have seen slight variations in the exact panic, but here is a typical one:

root file system type: ffs
trap type 1, code = 0x0, v = 0x4c8005e
kernel program counter = 0x356a
kernel: Address error trap
pid = 0, lid = 1, pc = 0000356A, ps = 2400, sfc = 1, dfc = 1
Registers:
             0        1        2        3        4        5        6        7
dreg: 04649540 04649540 00002000 00000000 04646600 00000000 00000000 00000000
areg: 04649540 00277000 00202CF8 046492A0 001C8C20 00091F44 00279EEC FFFFCFFC

This is on a m68040 machine, with fpu. The problem is 100% reliably 
reproducable.

I've been told other m68k ports work, and some mac68k apparently too - any
ideas?

Martin


Home | Main Index | Thread Index | Old Index