Intel 82574L interface wedging on em
7.1.9/7.2.3 when MSIX enabled
Emil Muratov
gpm at hotplug.ru
Thu Oct 27 13:18:38 UTC 2011
>>
>> Hi Hooman
>>
>> Here is what I've got when the script triggered just in time when the
>> interface was locked
>>
>>
>> 11.10.26-23:39:10 ... interface em0 is down...
>>
>> FreeBSD ion.hotplug.ru 8.2-STABLE FreeBSD 8.2-STABLE #0: Thu Oct 20
>> 20:20:25 MSD 2011 root at epia.home
>> .lan:/usr/obj/usr/src/sys/ION6debug amd64
>> 11:39PM up 1:12, 2 users, load averages: 0.26, 0.48, 0.58
>>
>>
>> == vmstat -i ==
>> interrupt total rate
>> irq22: nfe0 16644480 3865
>> cpu0: timer 8610122 1999
>> irq256: ahci0 606705 140
>> irq257: em0:rx 0 3896622 904
>> irq258: em0:tx 0 2762957 641
>> irq259: em0:link 620 0
>> cpu3: timer 8609499 1999
>> cpu1: timer 8609499 1999
>> cpu2: timer 8609499 1999
>> Total 58350003 13550
>>
>> == netstat -ind ==
>> Name Mtu Network Address Ipkts Ierrs Idrop
>> Opkts Oerrs Coll Drop
>> usbus 0 <Link#1> 0 0
>> 0 0 0 0 0
>> usbus 0 <Link#2> 0 0
>> 0 0 0 0 0
>> nfe0 1500 <Link#3> 00:25:22:21:86:89 7157140 0 0
>> 12266747 0 0 0
>> nfe0 1500 fe80::225:22f fe80::225:22ff:fe 0 -
>> - 85 - - -
>> nfe0 1500 10.16.128.0/1 10.16.189.71 0 - -
>> 48135 - - -
>> em0 9000 <Link#4> 00:1b:21:ab:bf:4a 5465087 623 0
>> 2862028 0 0 113
>> em0 9000 192.168.168.0 192.168.168.1 764085 - -
>> 1005078 - - -
>> em0 9000 fe80::21b:21f fe80::21b:21ff:fe 45 - -
>> 252 - - -
>> em0 9000 2002:d58d:871 2002:d58d:8715:1: 73 -
>> - 38 - - -
>> wifi 1500 <Link#7> 00:1b:21:ab:bf:4a 347 0 0
>> 350 0 0 0
>> wifi 1500 192.168.168.6 192.168.168.65 0 -
>> - 0 - - -
>> wifi 1500 fe80::225:x fe80::225:x:x 0 - -
>> 349 - - -
>> wifi 1500 2002:x:x 2002:x:x:2: 0 - - 0
>> - - -
>> wifio 1500 <Link#8> 00:1b:21:ab:bf:4a 59559 0 0
>> 114639 0 0 0
>> wifio 1500 192.168.168.8 192.168.168.81 0 - -
>> 160 - - -
>> wifio 1500 fe80::225:x fe80::225:x:x 0 - -
>> 0 - - -
>> stf0 1280 <Link#9> 5725 0 0
>> 6125 420 0 0
>> stf0 1280 2002:x:x 2002:x:x::1 1878 - - 1121
>> - - -
>> ng0* 1500 <Link#10> 0 0
>> 0 0 0 0 0
>> ng1* 1500 <Link#11> 0 0
>> 0 0 0 0 0
>> ng2 1492 <Link#12> 7143733 0 0
>> 12234436 0 0 0
>> ng2 1492 213.141.x.x 213.141.x.x 4735932 - -
>> 8480089 - - -
>> ng2 1492 fe80::x:x fe80::x:x:x 0 - - 1
>> - - -
>> tun0 1455 <Link#13> 350 0 0
>> 172 0 0 0
>> tun0 1455 fe80::225:x fe80::225:x:x 0 - -
>> 2 - - -
>> tun0 1455 192.168.169.1 192.168.169.1 117 - -
>> 167 - - -
>>
>> Oct 26 23:39:11 ion kernel: em0: hw tdh = 975, hw tdt = 944
>> Oct 26 23:39:11 ion kernel: em0: hw rdh = 960, hw rdt = 959
>> Oct 26 23:39:11 ion kernel: em0: Tx Queue Status = 1
>> Oct 26 23:39:11 ion kernel: em0: TX descriptors avail = 31
>> Oct 26 23:39:11 ion kernel: em0: Tx Descriptors avail failure = 0
>> Oct 26 23:39:11 ion kernel: em0: RX discarded packets = 0
>> Oct 26 23:39:11 ion kernel: em0: RX Next to Check = 960
>> Oct 26 23:39:11 ion kernel: em0: RX Next to Refresh = 959
>>
>> net.inet.ip.intr_queue_maxlen: 4096
>> net.inet.ip.intr_queue_drops: 0
>> dev.em.0.%desc: Intel(R) PRO/1000 Network Connection 7.2.3
>> dev.em.0.%driver: em
>> dev.em.0.%location: slot=0 function=0
>> dev.em.0.%pnpinfo: vendor=0x8086 device=0x10d3 subvendor=0x8086
>> subdevice=0xa01f class=0x020000
>> dev.em.0.%parent: pci2
>> dev.em.0.nvm: -1
>> dev.em.0.debug: -1
>> dev.em.0.rx_int_delay: 200
>> dev.em.0.tx_int_delay: 200
>> dev.em.0.rx_abs_int_delay: 4096
>> dev.em.0.tx_abs_int_delay: 4096
>> dev.em.0.rx_processing_limit: 100
>> dev.em.0.flow_control: 3
>> dev.em.0.eee_control: 0
>> dev.em.0.link_irq: 648
>> dev.em.0.mbuf_alloc_fail: 0
>> dev.em.0.cluster_alloc_fail: 0
>> dev.em.0.dropped: 0
>> dev.em.0.tx_dma_fail: 0
>> dev.em.0.rx_overruns: 0
>> dev.em.0.watchdog_timeouts: 0
>> dev.em.0.device_control: 1477444168
>> dev.em.0.rx_control: 100827170
>> dev.em.0.fc_high_water: 11264
>> dev.em.0.fc_low_water: 9764
>> dev.em.0.queue0.txd_head: 975
>> dev.em.0.queue0.txd_tail: 944
>> dev.em.0.queue0.tx_irq: 2762762
>> dev.em.0.queue0.no_desc_avail: 0
>> dev.em.0.queue0.rxd_head: 960
>> dev.em.0.queue0.rxd_tail: 959
>> dev.em.0.queue0.rx_irq: 3895860
>> dev.em.0.mac_stats.excess_coll: 0
>> dev.em.0.mac_stats.single_coll: 0
>> dev.em.0.mac_stats.multiple_coll: 0
>> dev.em.0.mac_stats.late_coll: 0
>> dev.em.0.mac_stats.collision_count: 0
>> dev.em.0.mac_stats.symbol_errors: 0
>> dev.em.0.mac_stats.sequence_errors: 0
>> dev.em.0.mac_stats.defer_count: 0
>> dev.em.0.mac_stats.missed_packets: 647
>> dev.em.0.mac_stats.recv_no_buff: 0
>> dev.em.0.mac_stats.recv_undersize: 0
>> dev.em.0.mac_stats.recv_fragmented: 0
>> dev.em.0.mac_stats.recv_fragmented: 0
>> dev.em.0.mac_stats.recv_oversize: 0
>> dev.em.0.mac_stats.recv_jabber: 0
>> dev.em.0.mac_stats.recv_errs: 0
>> dev.em.0.mac_stats.crc_errs: 0
>> dev.em.0.mac_stats.alignment_errs: 0
>> dev.em.0.mac_stats.coll_ext_errs: 0
>> dev.em.0.mac_stats.xon_recvd: 438789
>> dev.em.0.mac_stats.xon_txd: 366
>> dev.em.0.mac_stats.xoff_recvd: 438789
>> dev.em.0.mac_stats.xoff_txd: 1013
>> dev.em.0.mac_stats.total_pkts_recvd: 5465524
>> dev.em.0.mac_stats.good_pkts_recvd: 4587299
>> dev.em.0.mac_stats.bcast_pkts_recvd: 1102
>> dev.em.0.mac_stats.mcast_pkts_recvd: 162
>> dev.em.0.mac_stats.rx_frames_64: 325765
>> dev.em.0.mac_stats.rx_frames_65_127: 1029229
>> dev.em.0.mac_stats.rx_frames_128_255: 118432
>> dev.em.0.mac_stats.rx_frames_256_511: 11360
>> dev.em.0.mac_stats.rx_frames_512_1023: 100708
>> dev.em.0.mac_stats.rx_frames_1024_1522: 3001805
>> dev.em.0.mac_stats.good_octets_recvd: 4648591681
>> dev.em.0.mac_stats.good_octets_txd: 2203060494
>> dev.em.0.mac_stats.total_pkts_txd: 3780652
>> dev.em.0.mac_stats.good_pkts_txd: 3779273
>> dev.em.0.mac_stats.bcast_pkts_txd: 89
>> dev.em.0.mac_stats.mcast_pkts_txd: 534
>> dev.em.0.mac_stats.tx_frames_64: 1323163
>> dev.em.0.mac_stats.tx_frames_65_127: 850801
>> dev.em.0.mac_stats.tx_frames_128_255: 193136
>> dev.em.0.mac_stats.tx_frames_256_511: 64088
>> dev.em.0.mac_stats.tx_frames_512_1023: 47149
>> dev.em.0.mac_stats.tx_frames_1024_1522: 1300936
>> dev.em.0.mac_stats.tso_txd: 429804
>> dev.em.0.mac_stats.tso_ctx_fail: 0
>> dev.em.0.interrupts.asserts: 44
>> dev.em.0.interrupts.rx_pkt_timer: 0
>> dev.em.0.interrupts.rx_abs_timer: 0
>> dev.em.0.interrupts.tx_pkt_timer: 0
>> dev.em.0.interrupts.tx_abs_timer: 0
>> dev.em.0.interrupts.tx_queue_empty: 0
>> dev.em.0.interrupts.tx_queue_min_thresh: 0
>> dev.em.0.interrupts.rx_desc_min_thresh: 0
>> dev.em.0.interrupts.rx_overrun: 0
>>
>> ifconfig em0
>> em0: flags=8c43<UP,BROADCAST,RUNNING,OACTIVE,SIMPLEX,MULTICAST>
>> metric 0 mtu 9000
>> description: LAN
>>
>> options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC>
>> ether 00:1b:21:ab:bf:4a
>> inet 192.168.168.1 netmask 0xffffffc0 broadcast 192.168.168.63
>> inet6 fe80::21b:21ff:feab:bf4a%em0 prefixlen 64 scopeid 0x4
>> inet6 2002:x:x:1::1 prefixlen 64
>> nd6 options=1<PERFORMNUD>
>> media: Ethernet autoselect (1000baseT <full-duplex>)
>> status: active
>>
> What device is at the other end of link?
>
Just a simple soho router/switch/wifi AP. I use it as a gigabit switch
with dot1q support and wifi AP.
It's management capabilities and features are very limited. Here is what
I've got form the switch info, it's rather obscure, for ex. I have no
idea what does Dot3StatsFCSErrors means. But at least I had no problems
with this switch and another nic which is nvidia LOM running nfe driver
root at tplink:~# swconfig dev rtl8366rb port 1 show
Port 1:
link: port:1 link:up speed:1000baseT full-duplex tx-pause rx-pause
mib: Port 1 MIB counters
IfInOctets : 7538704547344
EtherStatsOctets : 7538876056305
EtherStatsUnderSizePkts : 0
EtherFragments : 3
EtherStatsPkts64Octets : 662581957
EtherStatsPkts65to127Octets : 2535622995
EtherStatsPkts128to255Octets : 96290375
EtherStatsPkts256to511Octets : 42103721
EtherStatsPkts512to1023Octets : 83464044
EtherStatsPkts1024to1518Octets : 384590702
EtherOversizeStats : 22227404
EtherStatsJabbers : 38641
IfInUcastPkts : 3757127256
EtherStatsMulticastPkts : 69494916
EtherStatsBroadcastPkts : 109605
EtherStatsDropEvents : 69198572
Dot3StatsFCSErrors : 149421
Dot3StatsSymbolErrors : 90698
Dot3InPauseFrames : 68996650
Dot3ControlInUnknownOpcodes : 0
IfOutOctets : 8216482296676
Dot3StatsSingleCollisionFrames : 0
Dot3StatMultipleCollisionFrames : 0
Dot3sDeferredTransmissions : 1474621219
Dot3StatsLateCollisions : 0
EtherStatsCollisions : 0
Dot3StatsExcessiveCollisions : 0
Dot3OutPauseFrames : 1512177530
Dot1dBasePortDelayExceededDiscards : 0
Dot1dTpPortInDiscards : 9143
IfOutUcastPkts : 3920068852
IfOutMulticastPkts : 9715117
IfOutBroadcastPkts : 1006622
> The input errors netstat reports correspond to the missed_packets
> reported by the driver.
> Also the driver has been OACTIVE when the problem occurred.
> There are also a strange number of xon/xoff frames transmitted and
> received by the driver.
>
> You may try these settings and see if they help:
>
> - hw.em.fc_setting=0 (in /boot/loader.conf)
> - hw.em.rxd="4096" (in /boot/loader.conf)
> - hw.em.txd="4096" (in /boot/loader.conf)
> - Fix speed and duplex at both link sides. After doing that, confirm
> on the freebsd
> box (with ifconfig) and the other device (with whatever command it
> provides) that
> the same speed and duplex is used by both devices.
>
Thanks for taking a look at this and for the tips, I'll do the changes
and will see if this helps.
> you also have high values for dev.em.0.rx/tx_[abs]_int_delay. If you
> have set them manually, remove them or replace them with these in
> loader.conf:
>
> hw.em.rx_int_delay=0
> hw.em.tx_int_delay=66
> hw.em.tx_abs_int_delay=66
> hw.em.rx_abs_int_delay=66
>
>
Yes, indeed it was my blind tuning trying to change anything here and
there because of those locks. Will remove this to the default.
More information about the freebsd-net
mailing list