Hi,
following ideas of tweaking NDK found here: http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/148585/539803.aspx#539803
# I've increased the PKT_NUM_FRAMEBUF value 6 times (i.e. to 1152) in ndk/stack/pbm/pbm_data.c and rebuilt the NDK library, no debug, and decreased the size optimization form -ms2 to -ms1 because it was suggested it may harm performance (var c6xOpts = " -mi10 -mo -pdr -pden -pds=238 -pds=880 -pds1110 -ms1 ";)
# I've increased the NIMU_NUM_TX_DESC to 126u (to prevent packet dropping as suggested here: http://e2e.ti.com/support/embedded/bios/f/355/t/253488.aspx) and rebulit the PDK
# I've modified helloworld_evmc6678l example to incorparate TCP_perform_send() function from ndkloopback.c of hua_evmc6678l example. It basically connect to iperf server and pushes data in a loop. TESTSIZE is 7 * 1460 ( 7 times MSS)
for( count = 0; count < PACKETS*1000; count++ )
{
if( ((bytes = send( stcp, pBuf, (int)TESTSIZE, 0 )) < 0) )
{
platform_write( "send failed (%d)\n",fdError());
goto leave;
}
totalBytes += bytes;
}
# I've increased the TCP transmit buffer size to 64000
//TCP Transmit buffer size
rc = 64000;
CfgAddEntry( hCfg, CFGTAG_IP, CFGITEM_IP_SOCKTCPTXBUF,
CFG_ADDMODE_UNIQUE, sizeof(uint), (uint8_t *)&rc, 0 );
packet memory is situated in MSMC:
Program.sectMap[".far:NDK_PACKETMEM"] = {loadSegment: "MSMCSRAM", loadAlign: 128};
with all this tweaking I was able to get only aroung 670Mbit/s TX speed between EVM and PC. When I look at the RTOS object view, the CPU load during the transmit is 99.7%. Since NDK does not support multicore, please could you specify under which configuration is it possible to get TX throughput of ~920 Mbits/sec as mentioned by Jack Manbeck in the first link? Also, no retransmissions are occurring acording to NDK's stats and PC is capable to receive at higher speed.
my configuration:
MCSDK_2_01_02_06
BIOS_6_35_01_29
PDK_C6678_1_1_2_6
NDK_2_22_03_20
thank you for advice,
best regards
karel