This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM6548: Ethernet performance

Part Number: AM6548


Hello,

I would like you to confirm about ethernet configuration.

* Now, I confirmed bandwidth performance of ethernet by using AM654x GPEVM when I used dual port ethernet at the same time.

Here is my result.

"eth0" means ethernet port which is related to MCU domain. And "eth2" means ethernet port which is related to PRUICSS.

I believe that CPSW is separated between eth0 and eth2. So, I thought that I can not see decrease of bandwidth even though I use dual port ethernet at the same time.

However, as you can see, bandwidth decreased in fact.

I would like you to confirm idea about why I saw this decrease of bandwidth. Could you please send me your opinion ?

Best Regards,

  • Please post which SDK is running on the AM65x.

  • SDK version is 6.00.00.07(Latest version).

    BR,

  • Hi, 

    That is correct the CPSW and the PRU interfaces are separated but they do share the ARM cores. The reason the bandwidth is decreasing is because the ARM processing is going to support each thread. The throughput will be bound by ARM processing available. If you run top application while there is one iperf thread active, top will show what the total load on the processor is. Then try the same test but with two iperf threads, the processing load that top shows should be somewhat higher. 

    Best Regards,

    Schuyler

  • Hello Schuyler-san,

    Sorry for my late reply.

    I had no chance to operate AM654x GPEVM recently.

    End of last week, I tried to operate AM654x GPEVM to check load average. However, I'm not sure how I can operate "top" command and "iperf" command at the same time on EVM.

    In case of Linux PC, I generate two process(launch two terminals) and operate each command. However, in case of Linux on EVM, i can perform only one command on console.

    So, could you please tell me how i can operate "top" command and "iperf" command at the same time on EVM ?

    Best Regards,

  • Hi,

    Top needs to run in the foreground, the iperf threads in the background. This can be done from the same console.

    To run the iperf threads in the background place this & on end of each line. Here is an example for putting 2 iperf threads into the background.

    iperf <parameters.... >   &

    iperf <parameters.... >   &

    With the iperf threads in the background you can now run top.

    Please note that top refreshes the screen on a regular basis. Iperf will output data if you are using the -i iterative update option and it will print the results to the screen when complete. Top when it is running will overwrite this output pretty quick. So please be aware of where you want to capture the output of iperf in so the top display does not overwrite the iperf data before you see it. Either use the other end of the iperf test for data gathering or add a redirect output to end of each iperf line like so:

    iperf <parameters ....>  >iperf1.out &

    Best Regards,

    Schuyler

  • Schuyler-san,

    Thank you for your reply.

    I could perform "top" command with running "iperf" command at background.

    Here are result.

    *  Here is in case of "only eth0 is used".

    * Here is in case of "both eth0 and eth2 are used".

    Actually, I can see two iperf on log of "top" however it seems that there is no difference.

    Should I use something option command to confirm difference ?

    Best Regards,

  • Hi,

    I apologize as I am not following your question. Are you asking about why there is a difference? The two iperf entries are showing a difference in terms of CPU usage. 

    Best Regards,

    Schuyler

  • Schuyler-san,

    >Are you asking about why there is a difference?

    No, what I want you to confirm is even though there is no difference (rather than result of CPU usage is lighter than one port ethernet usecase) b/w CPU usage of one port ethernet usecase and two port ethernet usecase, why performance of ethernet bandwidth is different.

    According to your previous thread, this difference will be caused by CPU usage, however, it seems that there is no difference CPU usage.

     The reason the bandwidth is decreasing is because the ARM processing is going to support each thread. The throughput will be bound by ARM processing available.

    So, I asked why this difference can be observed again.

    (1, CPSW is separated b/w MCU ethernet and PRU ethernet.  2, According to top command, It seems that there is no CPU usage difference b/w one port ethernet usecase with iperf and two port ethernet usecase with two iperfs.)

    Best Regards,

  • Hi,

    All network traffic does take CPU bandwidth. The sending and receiving of a packet is transferred between the MAC hardware and memory using DMAs once the buffers have been built. Before the packet can be sent it has to built with data, addressing and protocol information. In this example since TCP/IP client mode is being used, each iperf thread builds a packet to send through the network stack. As the packet moves through the network stack the kernel network stack the processor is responsible for completing several portions of the packet so it can be sent, all these steps take processor bandwidth. 

    Because of the processing involved it is expected that throughput per channel will drop. Is there a target throughput you are trying to acheive? What type of use case will be used.  

    Best Regards,

    Schuyler

  • Hello Schuyler,

    Thank you for your reply.

    Because of the processing involved it is expected that throughput per channel will drop. Is there a target throughput you are trying to acheive? What type of use case will be used.

    What I would like to confirm is below.

    * How many through put we can get under multi ethernet communication ?

    According to spec of this device, it seems that each port have capability to realize Gbit Ethernet commuication(Both MCU and PRU).

    As a result of my confirmation, through put on iperf3 decrease when I used two ethernet communication.

    I would like to confirm this result can be improved by checking software configuration(or something) or this result is permanent(limitation of physical).

    Even though TI describe all port have capability to realize Giga bit communication, if user use two ethernet at the same time, though put definitely decrease around half of single case, we need to inform customer who consider to use this device in advance.

    Best Regards,

      

      

  • Hi,

    I agree that the spec for the device does indicate the ports are capable of Gbit speeds but please understand that this network speed capability is not a guarantee of network data throughput from a system perspective. The packets may travel on the wire at Gbit speeds but they all have to be processed on the ARM cores and this is why you are seeing a performance drop when using multiple ports. This is true for all TI Sitara devices such as (AM3/AM4/AM5/AM6).

    TI does not provide a table of max speeds achievable on multiple ports or a combination of them. For this use case there needs to be an analysis done by the application developer who will know what the expected network throughput is needed along with the processing bandwidth needed to run the application. I am suggesting to change the question from what is the max throughput for all channels to what is needed to fulfill the application requirements. 

    To answer your question concerning configuration file that would improve the performance here and to my knowledge there are not any configuration files that will allow the interfaces to support line rate Gbit on all interfaces simultaneously. There might be slight modifications that might show some improvement using cpu affinity technique. 

    At the moment this is all I can comment on without knowing more about the required bit rate, the protocols that are expected to be used, the use case and the network topology. 

    Best Regards,

    Schuyler