Subject: Re: Interrupt Despatching
To: Todd Whitesel <toddpw@best.com>
From: Bill Studenmund <wrstuden@nas.nasa.gov>
List: port-i386
Date: 02/04/2000 12:05:27
On Thu, 3 Feb 2000, Todd Whitesel wrote:
> Apparently the hardest issue comes from the fact that some hardware on the
> mac assumes that the CPU can "baby sit" certain peripherals with interrupts
> locked out, and periodically call some sort of shortcut routine to watch
> things like the clock and the serial ports while (say) the floppy is
> spinning or the SCSI DMA is going on.
You're right about the floppy driver having hooks to keep up with modem
i/o, but I think that's the only MacOS driver to do that.
I don't think the time spent in SCSI pseudo-DMA is the problem. The
problem is that all too many of our spl levels keep the CPU at spl1. If we
railsed spl, did stuff, dropped it, and raised it again, we'd be fine.
As I understand the mac68k code, all the soft levels, like softnet, etc.,
actually are at spl1. spltty is also at spl1 when it doesn't have to be.
I think you're right that an smp-friendly interrupt handling scheme would
help a lot. :-) That and possibly twiddling via interrupt enables rather
than using spl levels.
Take care,
Bill