Re: Today Linus redesigns the networking driver interface (was Re: tulip driver in ...)

Linus Torvalds (torvalds@transmeta.com)
Sun, 20 Sep 1998 16:25:16 -0700 (PDT)


On Sun, 20 Sep 1998, Gerard Roudier wrote:
>
> On Sun, 20 Sep 1998, Linus Torvalds wrote:
>
> > This means that in a perfect world we could just do all the network packet
> > handling inside the network device interrupt, and everybody would be
> > happy, because we'd still have good interrupt response times for
> > everything else - because we wouldn't be blocking anything else by running
> > inside the interrupt. We might still want to throttle the rate to make
>
> You would block interrupt handling for all devices that are sharing the
> IRQ with your broken code.

True. So it probably isn't that good a thing to do even in that kind of
"perfect world".

Maybe we should re-define "perfect world" as "each device has exactly one
interrupt, and it is never shared, and we can have nice single-threading
guarantees with no other interrupts locked out while we execute one
interrupt".

However we define that "perfect world" it is very clear that we're not
living in it, and aren't likely to see it in the near future. And that's
why network handling is better done in the bottom half handlers. Even if
that means a lower maximum packet throughput.

> > And btw, for people worrying about SA_INTERRUPT - I'll probably just make
> > it go away. It doesn't have any real redeeming features.
>
> Why?
>
> SA_INTERRUPT + SHIRQ made problems sharing IRQs between the SCSI
> sub-system and the network sub-system for years. This does not mean that
> SA_INTERRUPT is essentially bad.

See the previous mail about why SA_INTERRUPT no longer makes any sense
(and why it _used_ to make sense - I want people to understand why it was
done in the first place and that it had a valid reason that just no longer
makes much of a difference).

Linus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/