UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 71168

Zynq UltraScale+ MPSoC - PS GEM Flow Control limitation

Description

This article describes the Zynq UltraScale+ MPSoC PS GEM Flow Control limitation, its effects, and mitigation.

Solution

What is the limitation about?

The PS GEM (Gigabit Ethernet MAC) has a hardware restriction where the IP lacks a Flow Control mechanism to detect TX/RX FIFO overflow and to manage packet transfers if this scenario occurs.

This occurs when there is high bi-directional traffic and the chance of the FIFO getting overflown is higher.

How does it impact the overflow system?

In the absence of Flow Control, TCP/UDP packets would get dropped in high bi-directional traffic.

RX packets are dropped more often as TX has a higher priority than RX in the driver.

What is the work-around?

There is no Hardware/IP level work-around which exists.

We do have a Software driver patch which will improve the performance and reduce packet loss, but it will not make it disappear. 

The intent of the patch is to send pause frames after every error that is received.

Please find the patch attached in this Answer Record. You can apply the patch to the existing SW driver.

  • For 2017.x releases, use the patch: 0001-net-macb-Send-pause-frame-on-RX-overrun
  • For 2018.x releases, use the updated patch attached as a zip file: 2018.x_0001-net-macb-Send-pause-frame-on-RX-overrun.zip.

Have we tested the work-around?

Yes, we have tested and validated the patch on a ZCU102 Rev 1.0 board.


  • With existing drivers:
 

For TCP (for 100 msec of bidirectional iperf): 

RX packets:7203990 errors:121659 dropped:2 overruns:782 frame:120877


The error percentage is: 1.69%

 

For UDP (for 100 msec of bidirectional iperf):

[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-100.00 sec  11.1 GBytes   957 Mbits/sec  0.067 ms  136/1460855 (0.0093%)

The error percentage is: 0.0093%

 

  • After applying a patch to the existing drivers:

 

For TCP (for 100 msec of bidirectional iperf):

RX packets:8643316 errors:3640 dropped:0 overruns:62 frame:3578


The error percentage is: 0.042 %.

For UDP (for 100 msec of bidirectional iperf):

[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-100.05 sec  11.1 GBytes   957 Mbits/sec  0.065 ms  22/1460860 (0.0015%)   


The error percentage is: 0.0015%

 

Attachments

Associated Attachments

AR# 71168
Date 08/03/2018
Status Active
Type Known Issues
Devices
Tools
Page Bookmarked