em0 with latest driver hangs again and again (without "Watchdogtimeout" message!)

Arnaud Lacombe lacombar at gmail.com
Sun Mar 6 21:40:15 UTC 2011


Hi,

On Sun, Mar 6, 2011 at 4:23 PM, Arnaud Lacombe <lacombar at gmail.com> wrote:
> Hi Jack,
>
> On Sun, Mar 6, 2011 at 2:48 PM, Jack Vogel <jfvogel at gmail.com> wrote:
>> Missed packets just mean that some temporary resource shortage or error
>> caused
>> the packet to be dropped. I don't believe this is indicative of a problem,
>> just let it
>> keep running, 2 days is good but 2 weeks is better :)
>>
>> Thanks for testing it!
>>
> I still did not get any feedback from you about the patch I sent the
> list about not ignoring the RX overrun interrupt triggered by the
> card.
>
Just to precise. For what I understood of Beezar Lui "fix", all the
work is done in the RX interrupt context, ie. you rely on the card to
trigger RX interrupt to refresh mbufs. If the resource shortage is too
long, the card stops triggering RX interrupt and "hang", but it
_still_ trigger RX overrun to warn the OS about the situation.
Currently this interrupt is just ignored. Your original fix works for
igb(4) as a single handler is used per queue; igb_rxeof() get called
in both RX and TX context. This is not the case with em(4) as RX and
TX interrupt are independent from each other. So if the hardware
empties the ring and you cannot replenish it while you still get RX
interrupt, you have no other choice than using the RX overrun
interrupt to hope to recover.

 - Arnaud

> Thanks,
>  - Arnaud
>
>> Jack
>>
>>
>> On Sun, Mar 6, 2011 at 4:37 AM, Özkan KIRIK <ozkan.kirik at gmail.com> wrote:
>>>
>>> Hello,
>>>
>>> I've been testing the em.7.2.2 driver as kld. The system is up about 2
>>> days 6 hours.
>>> System has 4 em interfaces, Throughput is about 200Mbit/s. System
>>> didn't hang, but em2 has Input Errors.
>>>
>>> I saw that, dev.em.2.mac_stats.missed_packets is not zero? What could
>>> be the problem?
>>>
>>> # uname -r
>>> 8.2-RELEASE
>>>
>>> # sysctl dev.em.| grep miss
>>> dev.em.0.mac_stats.missed_packets: 0
>>> dev.em.1.mac_stats.missed_packets: 0
>>> dev.em.2.mac_stats.missed_packets: 5886
>>> dev.em.3.mac_stats.missed_packets: 0
>>>
>>> # netstat -nWI em2 | grep Link
>>> Name      Mtu Network       Address              Ipkts Ierrs Idrop
>>> Opkts Oerrs  Coll
>>> em2      1500 <Link#4>      00:23:8b:89:e4:9e 267256324  5886     0
>>> 273081628     0     0
>>>
>>> # sysctl dev.em.2.
>>> dev.em.2.%desc: Intel(R) PRO/1000 Network Connection 7.2.2
>>> dev.em.2.%driver: em
>>> dev.em.2.%location: slot=0 function=0 handle=\_SB_.PCI0.P0P4.BR1E
>>> dev.em.2.%pnpinfo: vendor=0x8086 device=0x105e subvendor=0x108e
>>> subdevice=0x125e class=0x020000
>>> dev.em.2.%parent: pci12
>>> dev.em.2.nvm: -1
>>> dev.em.2.debug: -1
>>> dev.em.2.rx_int_delay: 0
>>> dev.em.2.tx_int_delay: 66
>>> dev.em.2.rx_abs_int_delay: 66
>>> dev.em.2.tx_abs_int_delay: 66
>>> dev.em.2.rx_processing_limit: 100
>>> dev.em.2.flow_control: 3
>>> dev.em.2.eee_control: 0
>>> dev.em.2.link_irq: 0
>>> dev.em.2.mbuf_alloc_fail: 0
>>> dev.em.2.cluster_alloc_fail: 0
>>> dev.em.2.dropped: 0
>>> dev.em.2.tx_dma_fail: 0
>>> dev.em.2.rx_overruns: 7
>>> dev.em.2.watchdog_timeouts: 0
>>> dev.em.2.device_control: 1075577409
>>> dev.em.2.rx_control: 67141634
>>> dev.em.2.fc_high_water: 30720
>>> dev.em.2.fc_low_water: 29220
>>> dev.em.2.queue0.txd_head: 3025
>>> dev.em.2.queue0.txd_tail: 3025
>>> dev.em.2.queue0.tx_irq: 0
>>> dev.em.2.queue0.no_desc_avail: 0
>>> dev.em.2.queue0.rxd_head: 1826
>>> dev.em.2.queue0.rxd_tail: 1825
>>> dev.em.2.queue0.rx_irq: 0
>>> dev.em.2.mac_stats.excess_coll: 0
>>> dev.em.2.mac_stats.single_coll: 0
>>> dev.em.2.mac_stats.multiple_coll: 0
>>> dev.em.2.mac_stats.late_coll: 0
>>> dev.em.2.mac_stats.collision_count: 0
>>> dev.em.2.mac_stats.symbol_errors: 0
>>> dev.em.2.mac_stats.sequence_errors: 0
>>> dev.em.2.mac_stats.defer_count: 0
>>> dev.em.2.mac_stats.missed_packets: 5886
>>> dev.em.2.mac_stats.recv_no_buff: 3407
>>> dev.em.2.mac_stats.recv_undersize: 0
>>> dev.em.2.mac_stats.recv_fragmented: 0
>>> dev.em.2.mac_stats.recv_oversize: 0
>>> dev.em.2.mac_stats.recv_jabber: 0
>>> dev.em.2.mac_stats.recv_errs: 0
>>> dev.em.2.mac_stats.crc_errs: 0
>>> dev.em.2.mac_stats.alignment_errs: 0
>>> dev.em.2.mac_stats.coll_ext_errs: 0
>>> dev.em.2.mac_stats.xon_recvd: 0
>>> dev.em.2.mac_stats.xon_txd: 0
>>> dev.em.2.mac_stats.xoff_recvd: 0
>>> dev.em.2.mac_stats.xoff_txd: 0
>>> dev.em.2.mac_stats.total_pkts_recvd: 265358324
>>> dev.em.2.mac_stats.good_pkts_recvd: 265352438
>>> dev.em.2.mac_stats.bcast_pkts_recvd: 701728
>>> dev.em.2.mac_stats.mcast_pkts_recvd: 4076
>>> dev.em.2.mac_stats.rx_frames_64: 0
>>> dev.em.2.mac_stats.rx_frames_65_127: 140801982
>>> dev.em.2.mac_stats.rx_frames_128_255: 3553397
>>> dev.em.2.mac_stats.rx_frames_256_511: 3418754
>>> dev.em.2.mac_stats.rx_frames_512_1023: 8096866
>>> dev.em.2.mac_stats.rx_frames_1024_1522: 109481439
>>> dev.em.2.mac_stats.good_octets_recvd: 177455051448
>>> dev.em.2.mac_stats.good_octets_txd: 274861571704
>>> dev.em.2.mac_stats.total_pkts_txd: 270439410
>>> dev.em.2.mac_stats.good_pkts_txd: 270439410
>>> dev.em.2.mac_stats.bcast_pkts_txd: 194927
>>> dev.em.2.mac_stats.mcast_pkts_txd: 48
>>> dev.em.2.mac_stats.tx_frames_64: 23050855
>>> dev.em.2.mac_stats.tx_frames_65_127: 54156414
>>> dev.em.2.mac_stats.tx_frames_128_255: 4299280
>>> dev.em.2.mac_stats.tx_frames_256_511: 7837146
>>> dev.em.2.mac_stats.tx_frames_512_1023: 8272014
>>> dev.em.2.mac_stats.tx_frames_1024_1522: 172823701
>>> dev.em.2.mac_stats.tso_txd: 0
>>> dev.em.2.mac_stats.tso_ctx_fail: 0
>>> dev.em.2.interrupts.asserts: 283674059
>>> dev.em.2.interrupts.rx_pkt_timer: 33585
>>> dev.em.2.interrupts.rx_abs_timer: 0
>>> dev.em.2.interrupts.tx_pkt_timer: 11022
>>> dev.em.2.interrupts.tx_abs_timer: 22449
>>> dev.em.2.interrupts.tx_queue_empty: 0
>>> dev.em.2.interrupts.tx_queue_min_thresh: 0
>>> dev.em.2.interrupts.rx_desc_min_thresh: 0
>>> dev.em.2.interrupts.rx_overrun: 0
>>>
>>> Regards,
>>> Ozkan KIRIK
>>
>>
>


More information about the freebsd-stable mailing list