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!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Visitor jflatnwu
Visitor
9,812 Views
Registered: ‎12-22-2015

Ethernet transfer speed

Hi,

 

I'm trying to figure out how can I reach 1 Gbit/s ethernet transfer speed with the ZedBoard (which has Zynq 7020). I booted the ZedBoard with PetaLinux 2015.2.1. Then, I used scp to copy a big file from PetaLinux to my host PC (running Ubuntu). I got a speed of about 7.0 MByte/s = about 56 Mbit/s. I verified using ethtool that both PetaLinux and the host are running on "speed: 1000Mb/s" and "Duplex: Full" mode. Is the 7MB/s transfer speed kind of expected? (I'm not very experienced with embedded Linux.) How can I achieve a better transfer speed? I would like to get 4-5x faster speed.

 

Thanks,

Jia

 

0 Kudos
8 Replies
Scholar trenz-al
Scholar
9,801 Views
Registered: ‎11-09-2013

Re: Ethernet transfer speed

20GB sustained is possible with ZYNQ and linux

 

with some super tweaking maybe 55-60M sustained, but not more. peak can be better of course.

 

zynq has no jumbo frames support, so it kills the performance

 

 

0 Kudos
Explorer
Explorer
9,787 Views
Registered: ‎11-25-2014

Re: Ethernet transfer speed

It's just about impossible to saturate a GbE link from a processor running linux. Your 7MB/s is pretty typical. I think the best I've seen with linux is 10-20MB/s. To really saturate the link you need to get the processor and linux out of the way. It can almost be done from the PL (state machine) using UDP transfers. I work on high-speed video cameras where large video captures (8GB to 16GB) need to be downloaded to a PC in a reasonable amount of time. It's relatively easy to achieve > 100MB/s (800Mbps), but 1Gbps (100% wire throughput) is impossible due to overhead. Jumbo frames help a lot to minimize the overhead.

 

One issue to be aware of when saturating a GbE link is that you have to be sending to something that can catch the traffic. That can require special attention on a PC. And some PCs can't do it at all due to hardware and/or driver limitations.

Scholar trenz-al
Scholar
9,770 Views
Registered: ‎11-09-2013

Re: Ethernet transfer speed

correct zynq PS ETH can do 20MB with some tweaking from linux, anymore is way troublesome and for sustained BW really problem.

 

but this is all the OP has, zedboard has PS ETH PHY only

0 Kudos
Visitor jflatnwu
Visitor
9,756 Views
Registered: ‎12-22-2015

Re: Ethernet transfer speed

Hi,

 

Thanks for answering my question. If 20 MB/s is possible with Linux, I'd happily take that. So, what are some things that I can tweak to get closer to that speed?

 

Thanks,

Jia

 

0 Kudos
Scholar trenz-al
Scholar
9,722 Views
Registered: ‎11-09-2013

Re: Ethernet transfer speed

the tweaking is up to you fiigure out, thats why it is tweaking.

 

optimze everything and then start randomize some settings, and test and test... and maybe you get there.

 

there is no single recipe: do only this any you get so much bw guaranteed.

 

sorry

0 Kudos
Explorer
Explorer
9,698 Views
Registered: ‎11-25-2014

Re: Ethernet transfer speed

If you haven't done it already, make sure you're running the PS memory and core clocks as fast as possible. The defaults are usually not maxed out in my experience, especially if you started with a reference design. This may only help marginally, but every little bit helps.

Visitor jflatnwu
Visitor
9,668 Views
Registered: ‎12-22-2015

Re: Ethernet transfer speed

Hi rjsefton,

 

 

 

0 Kudos
Scholar vanmierlo
Scholar
9,580 Views
Registered: ‎06-10-2008

Re: Ethernet transfer speed

If you run iperf or netperf you can find that you can do much faster than what is described above. The downside is that iperf throws away the data immediately upon reception. And it seems that kernel 4.0 is even faster.

http://www.wiki.xilinx.com/Zynq+Ethernet+Performance

 

The key in my experience is to request and transmit large chunks, use cached memory and sleep a few hundred microseconds before reading the next big chunk of data coming in.

0 Kudos