Subject: Re: pmax interrupt problem solved
To: None <port-pmax@netbsd.org>
From: Toru Nishimura <nisimura@itc.aist-nara.ac.jp>
List: port-pmax
Date: 03/09/2000 10:19:12
I'm sorry for the incovenience and impact of 3MAX users.  I should have
consulted the particular important change before I did it.

>> do {} while is a mandory.  ifound variable is for the case in which CSR
>> bit is changed inside any interrupt handlers.

I should have said [1] enclosing do {} while (0) in any
multi-statement macro expansion is mandatory (NetBSD developers are
recommended to follow the convention), and [2] ifound is for CSR
interrupt mask change inside interrupt handlers.  For the latter case,
no NetBSD/pmax interrupt handler actually changes CSR (or IOASIC_IMSK)
register during dispatched processing in current implementation, so
the exisitence of ifound is surplus for this moment.  In the future,
NEWSPL scheme will (ah, is expected to ...) manipulate CSR (or
IOASIC_IMSK) bits in an appropriate way at an approprite timing.  Note
that DECstation CSR (or IOASIC_INTR) bits monitor interrupt signal
conditions all the time and interrupt handler can see the interrupts
requested regardless how CSR (or IOASIC_IMSK) masks posting MIPS
exception.  If NEWSPL scheme can cope with ifound, interrupt latency
found in current NetBSD/pmax would be improved (think about IOASIC
SCSI performace boost).

Tohru Nishimura