Hi, 

I got a reception problem using the 82571EB card. My setup is
as follow : 

HW: Two machines are communicating using UDP with direct
link Ethernet. Both have a PCI Ethernet card 82571EB. 

SW: Centos 7
with kernel 3.10.0-rt (patched with PREEMPT-RT) 

I used a simple
application with two peers (https://github.com/vdehors/udptest [1]) :


Peer1: Send 100 UDP packets of 1 byte to Peer2 then wait 100 packets,
and do that every 10ms 

Peer2: Wait 100 UDP packets then send them back
to Peer1. 

Within few seconds, sometime minutes, one of the peers is
stuck waiting the last packet (100th) whereas the other has really sent
100 packets. I found out that this packet is really received by the HW
but the IRQ is sometimes not trigerred so that the e1000e driver don't
try to read it. 

If a new packet arrive after that, my program continue
normally. For example, If I generate at the same time some traffic, my
program don't go stuck. Moreover, when the watchdog task (in e1000e
driver) is run, an IRQ is generated and the pending packet is read. 

I
found out that if I call e1000e_flush_descriptors() at the end of the
polling function (if there were some work) and if I disable DMA_BURST
flag, my problem does not appears. 

Is there someone who already have
this kind of problem ?

Regards, 

Vincent 
 

Links:
------
[1]
https://github.com/vdehors/udptest
------------------------------------------------------------------------------
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to