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