Subject: Re: spl naming etc
To: None <thorpej@nas.nasa.gov>
From: Arne H. Juul <arnej@pvv.unit.no>
List: tech-kern
Date: 01/03/1996 08:40:44
> Actually, this is problably machine-dependent. For example, if you have
> an HP-IB controller at ipl3 and a SCSI controller at ipl5 on an hp300,
> blocking HP-IB "disk" interrupts does not block SCSI "disk" interrupts.
> However, some architecures may have interrupt "bitmasks" where each type
> of interrupt (network, disk, serial line) corresponds to a "bit" in the
> mask ... This is guesswork on my part. I'm not about to say I
> completely understand how interrupts work on the i386, alpha, or pmax.
Interesting.
It's not only architecture- but even machine-model dependant; on pmax
the 3100 can block each interrupt in a bitmask (fpu, video, clock, serial,
ethernet, scsi, and two software interrupts). Everything is hardcoded
and there are no options. (A very nice machine for the OS writer :-)
Other DECstation models are much more complex and can't do that, because
many or all types of devices are multiplexed onto a single CPU interrupt
line.
However, here I was mostly talking about possibilities inherent in the
NetBSD machine-independent code; where 'bitmask-like' interrupt masks
are possible the OS doesn't prohibit using them as such.
> Which boxes won't run SLIP or PPP? (Actually, do some ports change
> splimp() if PPP and SLIP are both not present? I thought so...)
Sorry for being unclear: I meant that if you don't have slip or ppp in
your kernel configuration file, you don't need to block serial interrupts
in splimp(). Most of the machines I maintain are ethernet-only and won't
ever run slip or ppp, so I could config that out. Even more radical
would be changing what splimp() does dynamically when slip/ppp is
actually used. As Charles said, this may make for hard-to-find bugs
and seems like it's really asking for threads.
- Arne H. J.