My IXP425 at 533 MHz running Linux 2.4 perfectly bridges 64-byte frames at 7 Mb/s (=10,000 frames/s), except that it loses a couple of 100 frames every hour. Also, whenever I enter a command in the shell (Busybox), it drops some 200 frames instantly and reproducibly.
The hardware frame buffer into which the MAC writes Ethernet frames is hardware-limited to 128 frames, so it would overrun in 13 ms, a bit more than a jiffy (HZ=100).
I suspect that the kernel disables interrupts for a long time and therefore loses frames. Is there any way of reducing the interrupt latency or tracing the offending kernel function?