Hi,
Jeff Garzik:
>
> Something I was wondering... would the following make sense/be a good
> idea in today's net drivers?
>
I like the general idea, except for ...
> netdev_interrupt()
>
> stop card from generating interrupts (IntrMask &= ~(TX|RX))
> if (status & (TX|RX))
> mark tasklet/softirq
> { handle weird interrupts like RxErr, etc. }
>
... if you do it this way, any weird interrupt will lock out TX/RX.
Also, you increase latency, which is a Bad Thing.
Better:
> if (status & ~(TX|RX))
> { handle weird interrupts like RxErr, etc. }
> if (status & (TX|RX))
> process a number of packets, or until out-of-memory or whatever
> if (packets left)
> stop card from generating interrupts (IntrMask &= ~(TX|RX))
> mark tasklet/softirq
-- Matthias Urlichs | noris network GmbH | smurf@noris.de | ICQ: 20193661 The quote was selected randomly. Really. | http://smurf.noris.de/ -- Who would have predicted... that Dubcek, who brought the tanks in in Czechoslovakia in 1968 is now being proclaimed a hero in Czechoslovakia. Unbelievable. -- Vice President Dan Quayle Actually, Dubcek was the leader of the Prague Spring.- 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/
This archive was generated by hypermail 2b29 : Sun May 07 2000 - 21:00:14 EST