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.

UDP sending performance on DM8148

Using EZSDK 5_05_02_00 and omx_05_02_00_48 on DM8148EVM, I have a udp sending performance issue.

My goal is achieving zero errors for 20Mbps udp communication.

Run iperf in a server mode on one DM8148 EVM as follows:

root@dm814x-evm:~# iperf -s -u 

 

On the other DM8148 EVM, run iperf in a client mode as follows:

root@dm814x-evm:~# iperf -u -c [Server Board IP] -b 20M -t 100

The result shows some errors as follows:

[ 3] 0.0-100.0 sec 238 MBytes 20.0 Mbits/sec 0.018 ms 5/170068 (0.0029%)

With the same network environment, running iperf client on my PC shows zero errors in the same test.

My sysctl.conf defines some network parameters as follows:

net.core.rmem_max=33554432
net.core.rmem_default=33554432
net.core.wmem_max=33554432
net.core.wmem_default=33554432
net.ipv4.udp_mem=4096 87380 262144

I'll appreciate any help to improve this 20Mbps UDP error rates.

  • Shiro,

    Please refer to the below e2e thread regarding the UDP performance:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/296001.aspx

    Best regards,
    Pavel

  • Pavel, 

    Thanks for the reply.

    I've looked at your indicated thread.  They are talking about low-speed mode like 10Mbps.

    I'm using 1Gbps Full Duplex mode.  With this mode, 20Mbps is just for 2% of the capacity, and expecting no errors for 100 seconds udp test must be reasonable.

    I've found the errors not always appear with the same test.

    If I connect two DM8148EVM by a cross over cable, then the test shows no errors.
    Maybe the other network traffics affect the test result.  But on the same network, the PC GEthernet always shows no errors.  Even when I'm playing youtube movie on the same network port, the test result on the PC shows no errors.

    Is there any weakness on DM8148 GMAC port from the other network traffic?

  • Shiro,

    Shiro Ninomiya said:
    I'm using 1Gbps Full Duplex mode.

    Have you gone through the below pages?

    http://processors.wiki.ti.com/index.php/TI81XX_UDP_Performance_Improvement

    http://processors.wiki.ti.com/index.php/Iperf

    http://processors.wiki.ti.com/index.php/TI81XX_PSP_04.04.00.02_Feature_Performance_Guide#Performance_and_Benchmarks_5

    Here are some e2e threads that might be in help:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/259459.aspx

    http://e2e.ti.com/support/embedded/linux/f/354/t/152587.aspx

    Regards,
    Pavel

  • Pavel,

    I've checked your indicated pages.

    They don't help my case.  Actually, the performance with a cross cable is good enough, and it is close to the reported information in this page. 

  • Shiro,

    So when you test with two DM8148 EVMs, UDP network is fine (no packet loss). But when you test with DM8148 EVM to Desktop PC, UDP network report packet loss. Is that the issue?

    Regards,
    Pavel

  • Pavel,

    Not exactly that way.

    My test result shows the next:

    • DM8148EVM(sender)  ---> cross cable ---> DM8148EVM(receiver)  : Good
    • DM8148EVM(sender)  ---> switch ---> DM8148EVM(receiver)  : Bad
    • PC(sender)  ---> switch ---> DM8148EVM(receiver)  : Good
    • DM8148EVM(sender)  ---> switch ---> PC(receiver)  : Bad

    As a receiver, DM8148EVM has no issue.
    As a sender, DM8148EVM has some issue when it connects to a switch.

  • Shiro,

    Are you up-to-date with the latest CPSW/Ethernet patches from the ti81xx-master branch?

    http://arago-project.org/git/projects/?p=linux-omap3.git;a=shortlog;h=refs/heads/ti81xx-master

    Please apply all patches related to EMAC/Ethernet/CPSW, patches like:

    drivers: net: ethernet: cpsw: use netif_wake_queue() while restarting tx queue
    http://arago-project.org/git/projects/?p=linux-omap3.git;a=commit;h=7de155d51b23aa119f3c728e060eb16ed8e658f1

    drivers: net: cpsw: remove phy configuration in ndo_open
    http://arago-project.org/git/projects/?p=linux-omap3.git;a=commit;h=439c2869950dcbf985cea06d6088ae41bc04a685

    drivers: net: ethernet: davinci_emac: use netif_wake_queue() while restarting tx queue
    http://arago-project.org/git/projects/?p=linux-omap3.git;a=commit;h=1cd4bc1902290827998462f82f4233f93b4c5072

    Also, make sure you are aligned with the Ethernet switch user guide, where we have info regarding the setup and testing DM814x EVM <-> switch <-> PC

    http://processors.wiki.ti.com/index.php/TI81XX_PSP_ETHERNET_Switch_User_Guide

    Regards,
    Pavel

  • Pavel,

    Thanks for the info.

    There are some patches I've not yet applied, and I've carefully applied on my code.
    They have not made any difference.

  • Hi

    Does the packet loss is in hardware or software network queues?
    Did you tried different switch?
    Did you tried EVM - PC combination?
    Did you tried PC - Switch - PC combination in your testing.

    Since EVM - EVM provides a good performance, we need to focus more on the switch pard.

    Regards
    Mugunthan V N

  • Mugunthan,

    I've tested with two different switches, both are AVB switch.
    The results of the udp test are as follows:

    • EVM ---> AVB Switch ---> EVM: Bad
    • EVM ---> AVB Switch ---> PC: Bad
    • PC ---> AVB Switch ---> PC: Good
    • PC ---> AVB Switch ---> EVM: Good

    Because using a cross cable instead of the AVB Switch had no problem, I've tried to disable AVB function.

    I've found that enabling 802.1AS makes the problem.

    When I disabled 802.1AS function of the switch, the results were consistently good.

    Enabling 802.1AS, there is 802.1AS protocol activities on the network.  It looks making a problem.

    My PC uses Intel 82574L as the NIC, and it has no problem with enabling 802.1AS.

  • Hi

    Does EVM IEEE1588 is enabled?
    If enabled you will see some lag as there will be more CPU interrupts due to PTP feature enabled in hardware.

    can you check whether number of misc interrupts whether it is of large number or less?

    Regards
    Mugunthan V N

  • Mugunthan,

    I've figured out what is the problem.

    When 1588 is enabled, we are adjusting the CPTS reference clock, and this adjustment increases the network error rate.  If the GMAC is designed to work with exact 250MHz, it can be reasonable.

    Because the hardware timestamps of 1588 packets are generated by CPTS clock, for the accurate synchronization we need to make adjustment on the CPTS clock.  But it increases the network error rate.

    This is a difficult issue.

    Don't you have any advice to solve it?

    Shiro

  • Run 802.1AS in a mode that doesn't require the CPTS clock to change frequency.