ixgbe & if_igb RX ring locking
Gleb Smirnoff
glebius at FreeBSD.org
Mon Oct 15 16:32:12 UTC 2012
On Mon, Oct 15, 2012 at 09:04:27AM -0400, John Baldwin wrote:
J> > 3) in practice taskqueue routine is a nightmare for many people since
J> > there is no way to stop "kernel {ix0 que}" thread eating 100% cpu after
J> > some traffic burst happens: once it is called it starts to schedule
J> > itself more and more replacing original ISR routine. Additionally,
J> > increasing rx_process_limit does not help since taskqueue is called with
J> > the same limit. Finally, currently netisr taskq threads are not bound to
J> > any CPU which makes the process even more uncontrollable.
J>
J> I think part of the problem here is that the taskqueue in ixgbe(4) is
J> bogusly rescheduled for TX handling. Instead, ixgbe_msix_que() should
J> just start transmitting packets directly.
J>
J> I fixed this in igb(4) here:
J>
J> http://svnweb.freebsd.org/base?view=revision&revision=233708
The problem Alexander describes in 3) definitely wasn't fixed in r233708.
It is still present in head/, and it prevents me to do good benchmarking
of pf(4) on igb(4).
The problem is related to RX handling, so I don't see how r233708 could
fix it.
--
Totus tuus, Glebius.
More information about the freebsd-net
mailing list