Port-amiga archive

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

Re: lock errors on DIAGNOSTIC kernel after yamt-idlelwp merge



On Sat, 19 May 2007, Izumi Tsutsui wrote:

Modified Files:
        src/sys/arch/m68k/m68k: pmap_motorola.c switch_subr.s vm_machdep.c

Log Message:
Common m68k changes for idlelwp.

Does a DIAGNOSTIC kernel work on amiga?

  Did this work after the newlock2 merge (before the idlelwp merge)?

On hp300 (and also news68, sun3, sun3x) DIAGNOSTIC kernels
get the following mutex error during SCSI probe:
---
hpibbus4 at nhpib4
interrupt levels: bio = 4, net = 5, tty = 5
scsibus0: waiting 2 seconds for devices to settle...
Mutex error: mutex_vector_enter: locking against myself

lock address : 0x00000000001e67c0
current cpu  :                  0
current lwp  : 0x0000000003641d80
owner field  : 0x0000000027008000 wait/spin:                0/1

panic: lock error

  My amiga has the same problem.  The scsibus0 lwp has the lwp locked
when sched_pstats() run (as well as the other 2 non-idle lwps.

  Hmm, some debugging shows that cpu_switchto never returns when switching
to a newly created lwp. This leaves the old lwp locked, and when sched_pstats() get called while scsibus0 is sleeping for the 2 second delay, the DIAGNOSTIC check fails. This may also explain why my non-DIAGNOSTIC amiga kernel seems to lose time: a 'locked' lwp is at IPL_HIGH until it is unlocked.

And I now see that I'm missing some stuff when starting up a new process (it wasn't mentioned in doc/BRANCHES). I'll fix that and see if things work better.

--
Michael L. Hitch                        mhitch%montana.edu@localhost
Computer Consultant
Information Technology Center
Montana State University        Bozeman, MT     USA



Home | Main Index | Thread Index | Old Index