Intel 82574L Gigabit Ethernet Controller

Shtorm admin at shtorm.com
Mon Jul 5 11:58:45 UTC 2010


I just got Supermicro SuperServer 5016I-MRF server with two 82574L
controllers on board. According to specs this controller can do two
msi-x vectors for tx and rx, but only one tx-rx pair is used on
8.1-prerelease.

uname -a
FreeBSD router 8.1-PRERELEASE FreeBSD 8.1-PRERELEASE #0: Tue Jun 29
00:42:32 UTC 2010     root at releng_8:/usr/obj/usr/src/sys/ROUTER  amd64

Here is pciconf

em0 at pci0:1:0:0:	class=0x020000 card=0x10d315d9 chip=0x10d38086 rev=0x00
hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Intel 82574L Gigabit Ethernet Controller (82574L)'
    class      = network
    subclass   = ethernet
em1 at pci0:2:0:0:	class=0x020000 card=0x10d315d9 chip=0x10d38086 rev=0x00
hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Intel 82574L Gigabit Ethernet Controller (82574L)'
    class      = network
    subclass   = ethernet

Checking procstat shows 5 interrupts per interface 

procstat -at | grep em\[01\]
    0 100035 kernel     em0 rxq            0   16 sleep   -         
    0 100037 kernel     em0 txq            6   16 sleep   -         
    0 100039 kernel     em0 rxq            0   16 sleep   -         
    0 100041 kernel     em0 txq            0   16 sleep   -         
    0 100044 kernel     em1 rxq            0   16 sleep   -         
    0 100046 kernel     em1 txq            1   16 sleep   -         
    0 100048 kernel     em1 rxq            0   16 sleep   -         
    0 100050 kernel     em1 txq            0   16 sleep   -         
   11 100034 intr       irq256: em0        7   16 wait    -         
   11 100036 intr       irq257: em0        0   16 wait    -         
   11 100038 intr       irq258: em0        0   16 wait    -         
   11 100040 intr       irq259: em0        0   16 wait    -         
   11 100042 intr       irq260: em0        3   16 wait    -         
   11 100043 intr       irq261: em1        4   16 wait    -         
   11 100045 intr       irq262: em1        5   16 wait    -         
   11 100047 intr       irq263: em1        0   16 wait    -         
   11 100049 intr       irq264: em1        0   16 wait    -         
   11 100051 intr       irq265: em1        2   16 wait    -         


but vmstat -i shows only one pair is used

%vmstat -i
interrupt                          total       rate
irq1: atkbd0                         391          0
irq18: ehci0 uhci5                     2          0
irq19: uhci2 uhci4                    27          0
irq23: uhci3 ehci1                  8463          0
cpu0: timer                    107412943       7864
irq256: em0                     93311951       6832
irq257: em0                     90479067       6624
irq260: em0                            2          0
irq261: em1                     92966894       6806
irq262: em1                     80298240       5879
irq265: em1                            1          0
cpu1: timer                    107412607       7864
cpu2: timer                    107412785       7864
cpu3: timer                    107412830       7864
cpu5: timer                    107413210       7864
cpu4: timer                    107413389       7864
cpu7: timer                    107407337       7864
cpu6: timer                    107413132       7864
Total                         1216363271      89058


Here is my loader.conf

%cat /boot/loader.conf | grep em
if_em_load=YES
hw.em.rxd=4096
hw.em.txd=4096
hw.em.tx_int_delay=512
hw.em.rx_int_delay=512
hw.em.tx_abs_int_delay=1024
hw.em.rx_abs_int_delay=1024
hw.em.enable_msix=1
hw.em.msix_queues=2
hw.em.rx_process_limit=100
hw.em.fc_setting=0


Is it ever possible to activate second tx-rx pair on this card? 







More information about the freebsd-net mailing list