Thread (4 messages) 4 messages, 2 authors, 2014-12-29

Re: Marvell Kirkwood - MV643XX: near 100% UDP RX packet loss

From: Rick Jones <hidden>
Date: 2014-12-29 23:25:21

On 12/27/2014 03:17 AM, Bruno Prémont wrote:
On Thu, 25 December 2014 Rick Jones [off-list ref] wrote:
quoted
quoted
Why are so many packets being discarded?
You should also check the netstat statistics, particularly UDP on the
receiving side.  Look before and after the test and see how they change,
if at all.
Here they go.

Summary of numbers:
iperf UDP run, 5 seconds @ 1Gb/s
  lost 71216/71776 packets

                                   before      after      delta
ethtool:
  rx_packets:                      420001     688424     268423
  rx_bytes:                     433251917  809803463  376551546
  rx_errors:                            0          0          0
  rx_dropped:                           0          0          0
  bad_octets_received:                  0          0          0
  bad_frames_received:                  0          0          0
  rx_discard:                      159691     323123     163432
  rx_overrun:                           0          0          0
netstat, udp:
  packets received                  15559      16137        578
  packets to unknown port received     18         18          0
  packet receive errors             41599      83890      42291
  packets sent                      34697      34770         73
  receive buffer errors                 0          0          0
  send buffer errors                    0          0          0
Well, it certainly looks like a decent fraction of your lost traffic are 
UDP packet receive errors.  Overrunning the SO_RCVBUF on the receiving 
side presumably.  You can either start walking-down the transmission 
rate of the iperf client, or try a larger receive socket buffer size on 
the iperf server, though that will only help if those drops are from the 
receiving side being only occasionally slower than the sending side. 
You might also want to make sure the UDP datagrams being sent are huge 
and so getting fragmented.  All it takes is to lose one fragment of an 
IP datagram to render the entire datagram useless.

As for the rx_discard in the ethtool stats, someone more familiar with 
the hardware will have to describe the various reasons for that stat to 
be incremented.

rick jones
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help