> >...
> >After a little bit of kernel reading I found the reason: IRQ 7 is
> >disabled by pointing it's vector to a routine that simply IRETs (in the
> >comment it says that there were problems with stray interrupts).
>
> Yes, I'm afraid you have headed down the Wrong Path. Not only does IRQ 7
> provide interrupts spuriously, it also does not deliver printer interrupts
> reliably. This is why 386BSD's (and, I believe, Linux's and FreeBSD's) LP
> drivers usually are the so-called "interruptless" versions. they use timing
> loops and polling instead.
I think this tends to depend on the hardware you have available - a couple
of years back I came across this problem and wrote a test program that
looked for the spurious interrupts. I found that only one type of machine I
had available showed the problem, whereas all of the other types I used
never showed anything. The first type of system also became notorious for
causing problems with a lot of SoundBlaster type cards which default to
using IRQ7 as the spurious interrupts used to upset them!
The Linux code (last time I looked) can support an interrupt driven version
of the lp code (and is apparently much faster this way), but defaults to
using polled mode. There's a util to kick it into interrupt driven mode.
When I asked Linus Torvalds about this last year, his response was that
autoprobing for IRQs on some AT bus systems resulted in crashes, and that in
this sort of case Linux would default to the safest possible behaviour (the
serial code which also used to autoprobe now doesn't).
It would be nice if there was a way of getting an IRQ based version running
as well as a polled version (an ideal case for a "stat" field perhaps?).
Thinking about it, I'm pretty sure that IRQ7 (and IRQ5 for lp2) must be
pretty reliable on a lot of systems, otherwise there'd be no chance of
getting PLIP links to work. I suspect that if Tommy Thorn's reading this he
can probably give some more details.
Regards,
Dave
Received on Sun Mar 13 16:25:13 1994
This archive was generated by hypermail 2.1.8 : Wed Sep 21 2005 - 21:02:16 PDT