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.

HUA TCP Benchmark

Hi,

I'm using HUA demo to benchmark tcp bandwith of C6678. but the result is disappointing. The TCP sending speed is only about 13Mbps. The UDP sending speed is about 1Gbps. 

The PC host has i3 CPU and be connected with EVM6678 directly.

Could anyone give some explaniation ? 

Regards,

dp 

  • Hi dp

    What version of MCSDK are you using? What version of CCS are you testing with?

  • Uday, 

    My environment:

    CCSv5.03 MCSDK_2_00_08_20

    dp 

     

     

  • Any updates?

  • Hi dp,

    I checked with the relevant team, and they suggested the following code changes that might help tune the system for better TCP throughput:

    1. Change the default TCP socket Rx and Tx buffer sizes if needed (this might already be done in the version of MCSDK  you are using, but double-check to see if these changes are there):

    /* TCP Transmit buffer size */
    //rc = 8192;
    rc = 64000;
    CfgAddEntry( hCfg, CFGTAG_IP, CFGITEM_IP_SOCKTCPTXBUF,
    CFG_ADDMODE_UNIQUE, sizeof(uint), (uint8_t *)&rc, 0 );

    /* TCP Receive buffer size (copy mode) */
    //rc = 8192;
    rc = 64000;
    CfgAddEntry( hCfg, CFGTAG_IP, CFGITEM_IP_SOCKTCPRXBUF,
    CFG_ADDMODE_UNIQUE, sizeof(uint), (uint8_t *)&rc, 0 );

    2. Make sure NDK is re-built with considerably more buffers. I think the default is 192. You can try 192* 4 or 192 * 5.  This can be experimented with. The place to make this change is in the ndk directory: packages/ti/ndk/src/os/pbm.c. Change this define #define PKT_NUM_FRAMEBUF 192  Instructions on how to rebuild NDK are at http://processors.wiki.ti.com/index.php/Rebuilding_the_NDK_Core

    3. Ensure that the variable NIMU_NUM_RX_DESC is defined as "#define NIMU_NUM_RX_DESC   110u". It is defined in the resource_manager.h file in the PDK directory.

    In addition to the above, the team mentioned that this benchmark example with 6678 hooked to a PC may not generate accurate throughput numbers due to the speed of the PC connection, packet size, and other factors as well. There is another benchmark test that does loopback, which would present more accurate throughput numbers since it eliminates the variability associated with the PC. It requires a SMARTBITS generator. The team will put together instructions on how to run this loopback demo, and provide this in a week. I will provide you with those instructions as soon as I receive them.

  • Thanks Uday.

    I'll try your advice. 

    Regards, 

    dp 

  • Uday, 

    I'm trying to get through the same slow TCP transmit on the C6678. Was there any resolution or update on the suggestions listed above?

    Ryan