Interrupt Mitigation is common for high speed lan drivers. The DEC chip has
built in support for it. For the chips which do not have the hardware
support, you can always use the kernel timer to poll for packets, you have
to be careful above switching between polling and interrupt though, using
different threshold can make a big difference in different systems. I've
done this under NT(software based interrupt mitigation), it's amazing to see
the difference it makes under heavy load. I am not Linux guy, but I can say
that this has to be done to even have a chance for it to match up against
NT's performance in bench mark tests.
Matthew Wilcox wrote:
> > 1. Interrupt comes in
> > 2. Kernel disables interrupt
> > 3. Driver fetches/sends data.
> > 4. Driver loops back to 3 if there's more data
> > (many drivers do this already).
> > 5. Driver returns.
> > ... timer driven delay ...
> > 6. Kernel reenables interrupt.
> > 7. If interrupt pending, go to 2.
> You could only do this if the interrupt is not shared. But if your
> network is normally being hammered then you probably didn't configure
> your network card to be on the same interrupt as your hard disc.