Subject: Re: Repeatable crashes
To: None <port-sh3@netbsd.org>
From: Valeriy E. Ushakov <uwe@ptc.spbu.ru>
List: port-dreamcast
Date: 03/31/2005 04:33:44
On Tue, Mar 08, 2005 at 23:16:59 +0900, Izumi Tsutsui wrote:

> In article <20050308021025.GH14713@snark.ptc.spbu.ru>
> uwe@ptc.spbu.ru wrote:
> 
> > > Does your kernel have a recent MMU fix?
> > > http://mail-index.netbsd.org/source-changes/2004/12/30/0019.html
> > 
> > The problem seems to go away after I *reverted* those changes!  We
> > were taking an exception with exceptions blocked, which caused the
> > reset.  Any suggestions on debugging this further?
> 
> Umm.
> 
> It obviously shows that an exception (maybe TLB miss) happens
> during _cpu_exception_suspend(), which causes reboot immediately.
> 
> I don't know if such TLB miss allowed during updating TLB
> in sh3_tlb_*() functions, but anyway it can not be blocked
> and maybe the problem on dreamcast was caused by interrupt
> during sh4_tlb_*() functions, which can be blocked.
> 
> How about to use _cpu_intr_suspend()/_cpu_intr_resume(s)
> instead of _cpu_exception_*()?
> (or it's better to remove them from mmu_sh3.c?)

So, what's the action plan?

I'd like to remove the _cpu_exception_*() from mmu_sh3.c.

I will test if keeping it in mmu.c doesn't cause problems for sh3, but
can someone please also test if removing it from mmu.c doesn't cause
problems for sh4?  I wonder how _cpu_exception_*() helps a single

    _reg_write_4(SH_(PTEH), asid);


I will request pullup for 3.x then.

SY, Uwe
-- 
uwe@ptc.spbu.ru                         |       Zu Grunde kommen
http://www.ptc.spbu.ru/~uwe/            |       Ist zu Grunde gehen