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