Subject: Re: Interrupt priority levels
To: Dave Huang <khym@bga.com>
From: Allen Briggs <briggs@puma.macbsd.com>
List: port-mac68k
Date: 11/01/1997 08:43:11
> Cool, the MACE driver is much happier now.

Awesome!  It sounds like you get SCSI next, since you're learning so
much about the DMA.  ;-)

Was that 300KB/s to a file or to /dev/null (get /netbsd /dev/null)?
300KB/s sounds a lot like the disk transfer speed.

> Seems that the problem is in /usr/include/machine/intr.h... one problem is
> that splnet() is defined as spl2(). That's probably cool on most Macs, but
> on the AVs, the MACE chip interrupts at IPL 3, and the PSC's DMA
> completion interrupts occur at IPL 4.

Ouch!  I was wondering when we'd hit that.  The Q700 and 900 can readjust
their interrupt priority levels, too, but we've never made use of that
(or bothered to figure out what bit to twiddle to get it to change the
mapping.  It looks like the priority levels need to be configurable.
That will cause some performance hit, but I don't know how much.  It
might be possible to play some preprocessor games to allow some kernels
to be compiled with static levels and GENERIC kernels to be compiled
with more dynamic levels.  I might look into this today (more interesting
than trying to fix the lingering bug in my esp driver changes)-:

> I also made splnet() IPL 4, instead of the 2 that it used to be.  So...
> that seems to work for me, but I don't know how it'll affect other Macs.

That will _kill_ serial if you're using both serial and networking on
other macs.

I've grabbed your patch for if_sn.c, BTW, and I'll try it on my system
here before committing it.  Thanks for the sharp eye!

-allen

-- 
              Allen Briggs - end killing - briggs@macbsd.com