Advice on a multithreaded netisr patch?

Robert Watson rwatson at
Tue Apr 7 05:54:27 PDT 2009

On Tue, 7 Apr 2009, Sepherosa Ziehau wrote:

> On Sun, Apr 5, 2009 at 9:34 PM, Ivan Voras <ivoras at> wrote:
>> Robert Watson wrote:
>>> On Sun, 5 Apr 2009, Ivan Voras wrote:
>>>> I thought this has something to deal with NIC moderation (em) but
>>>> can't really explain it. The bad performance part (not the jump) is
>>>> also visible over the loopback interface.
>>> FYI, if you want high performance, you really want a card supporting 
>>> multiple input queues -- igb, cxgb, mxge, etc.  if_em-only cards are
> PCI-E em(4) supports 2 RX queues.  82571/82572 support 2 TX queues. I have 
> not tested multi-TX queues, but em(4) multi-RX queues work well in dfly 
> (tested with 82573 and 82571)

You may not have seen, but in FreeBSD 7.x and higher, we have a new if_igb 
driver to support more recent Intel gigabit devices, which now probes a few of 
the devices historically associated with if_em.  For example, on one of the 
boxes I use:

igb0: <Intel(R) PRO/1000 Network Connection version - 1.3.0> port 
0x3000-0x301f mem 
0xd8220000-0xd823ffff,0xd8200000-0xd821ffff,0xd8280000-0xd8283fff irq 32 at 
device 0.0 on pci8
igb0: Using MSIX interrupts with 3 vectors
igb0: [ITHREAD]
igb0: [ITHREAD]
igb0: [ITHREAD]
igb0: Ethernet address: 00:30:48:d2:ca:c2
igb1: <Intel(R) PRO/1000 Network Connection version - 1.3.0> port 
0x3020-0x303f mem 
0xd8260000-0xd827ffff,0xd8240000-0xd825ffff,0xd8284000-0xd8287fff irq 46 at 
device 0.1 on pci8
igb1: Using MSIX interrupts with 3 vectors
igb1: [ITHREAD]
igb1: [ITHREAD]
igb1: [ITHREAD]
igb1: Ethernet address: 00:30:48:d2:ca:c3
igb0: RX LRO Initialized
igb1: RX LRO Initialized

Robert N M Watson
Computer Laboratory
University of Cambridge

More information about the freebsd-net mailing list