two problems in dev/e1000/if_lem.c::lem_handle_rxtx()

Adrian Chadd adrian at freebsd.org
Fri Jan 18 20:17:23 UTC 2013


On 18 January 2013 06:30, Barney Cordoba <barney_cordoba at yahoo.com> wrote:

> I don't see the distinction between the rx thread getting re-scheduled
> "immediately" vs introducing another thread. In fact you increase missed
> interrupts by this method. The entire point of interrupt moderation is
> to tune the intervals where a driver is processed.

The problem with interrupt moderation combined with enabling/disabling
interrupts is that if you get it even slightly wrong,
you won't run the packet processing thread(s) until the next interrupt
occurs - even if something is in the queue.

There's been a class of bugs in the em driver that resemble this. Same
as what I found in ath(4) - even the TX watchdog code is broken like
this :(




Adrian


More information about the freebsd-net mailing list