On 09/08/16 03:03, Darren Tucker wrote:
On Fri, Aug 05, 2016 at 11:56:15AM +1000, Darren Tucker wrote:
On Thu, Aug 04, 2016 at 02:46:44PM +0200, Momtchil Momtchev wrote:
[...]
What is the problem with software interrupt moderation? That it has a
fixed timer while the hardware one scales with the RX rate?
The hardware moderation can do per-N-packets in addition to a timer.


I just went through the two Linux drivers. There is the GPLd r8169 that is built into the official kernel written by someone at Realtek. This one uses hardware interrupt moderation with the 0x5151 magic. Then there is the r8168 driver distributed by Realtek on their site. It is also GPLd. That one is considered to be of better quality in the Linux world and it is repackaged by some Linux distros (Debian and Ubuntu for example) as a replacement for the built-in driver. This second driver uses a strategy similar to the current OpenBSD driver - schedule an interrupt, then whenever the queue is not empty, reschedule the next interrupt using a hardware timer (register 0x58) on the chip (ie. "simulated" interrupt moderation) and still has exceptional performance. The Realtek timer value in Linux is fixed 0x2600. The OpenBSD driver deduces it from the bus speed. Anyway I think that at least on the PC Engines APU the bottleneck is not CPU- or IRQ-related.

Reply via email to