> > Behaviour under 2.2.19 kernel:
> > Time: 1 minute 8 seconds
> > RX packets (aprox): 3 million overruns: 81000
> > Interrupts as mesured by vmstat 1: from 35000 to 40000 (38500 average)
> Big difference from 6500 ;-> This is over 6 times more.
And the userspace throughput was an order of magnitude better. Fascinating.
One could envisage one scenario where a less efficient interrupt
routine results in more throughput: suppose the ISR takes 9 usecs
and frames are arriving at 10 usec intervals. That's one interrupt per
frame and userspace starvation. If you slow the ISR down a bit then
it will end up handling two packets per interrupt and, assuming that
the entry and exit is the majority of the cost, you'll end up actually
yielding more time for userspace processing. But the most this can
possibly account for is a factor of two, not a factor of ten.
The 2.2 and 2.4 drivers aren't significantly different. 2.4 has
max_interrupt_work of 32, whereas it's only 20 in 2.2. But that
doesn't explain much.
Weird stuff. Martin, do you have a URL for udpspam?