Re: [announce] [patch] limiting IRQ load, irq-rewrite-2.4.11-B5

Robert Olsson
2001-10-05T14:50:04Z

Andreas Dilger writes:

> If you get to the stage where you are turning off IRQs and going to a
> polling mode, then don't turn IRQs back on until you have a poll (or
> two or whatever) that there is no work to be done. This will at worst
> give you 50% polling success, but in practise you wouldn't start polling
> until there is lots of work to be done, so the real success rate will
> be much higher.
>
> At this point (no work to be done when polling) there are clearly no
> interrupts would be generated (because no packets have arrived), so it
> should be reasonable to turn interrupts back on and stop polling (assuming
> non-broken hardware). You now go back to interrupt-driven work until
> the rate increases again. This means you limit IRQ rates when needed,
> but only do one or two excess polls before going back to IRQ-driven work.

Hello!

Yes this has been considered and actually I think Jamal did this in one of
the pre NAPI patch. I tried something similar... but instead of using a number
of excess polls I was doing excess polls for a short time (a jiffie). This
was the showstopper mentioned the previous mails. :-)

Anyway it up to driver to decide this policy. If the driver returns
"not_done" it is simply polled again. So low-rate network drivers can have
a different policy compared to an OC-48 driver. Even continues polling is
therefore possible and even showstoppers. :-) There are protection for
polling livelocks.

Cheers.
--ro