NetBSD-Bugs archive

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

Re: port-pmax/53611: NetBSD/pmax 8.0 RAMDISK kernel hang on 3MIN (5000/125)



The following reply was made to PR port-pmax/53611; it has been noted by GNATS.

From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
To: mrg%eterna.com.au@localhost
Cc: gnats-bugs%NetBSD.org@localhost, tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: port-pmax/53611: NetBSD/pmax 8.0 RAMDISK kernel hang on 3MIN (5000/125)
Date: Mon, 17 Sep 2018 11:14:40 +0900

 > >  -		/* it's an option slot */
 > >  -		{
 > >  -		int s = splhigh();
 > >  -		s |= mask;
 > >  -		splx(s);
 > >  -		}
 > >  +		/* it's an option slot and handled via MIPS_INT_MASK_[012] */
 
 > this code is very mind boggling, but it's clearly wrong in the modern
 > mips interrupt world, compared to what 'mask' is set to.  even then,
 > why does intr_establish change the ipl!?
 
 It looks enabling interrupts for MIPS_INT_MASK_[012] for TC slots.
 Maybe they are disabled even on spl0() if no interrupt handler
 is established.
 
 It means if sfb(4) and tfb(4) drivers (or other TC devices) are
 disabled (i.e. no handler is registered) with -current code
 the kernel still hangs by unhandled stray interrupts once after
 interrupts are enabled.
 
 I'm not sure how I can enable/disable MIPS_INT_[012] in intr_establish()
 and intr_disestablish() functions, though..
 
 ---
 Izumi Tsustui
 


Home | Main Index | Thread Index | Old Index