I have a performance problem with the NDK 1.93 stack running a TCP application task on DSP BIOS 5.32.02.
I have some results from the spraaq5 tests, using a Windows PC to talk with my target C6455/EMAC board which embeds a 1Gbit PHY. The PHY is correctly configured through EMAC/MDIO and is clearly in 1Gb mode. To summarise the test results, for a frame size of 8192 (and scaling for the other sizes), when spraaq5 runs at full rate (i.e. no sleep) a rate of about 20MB/sec is achieved - less than I would think from a 1Gb link but quite satisfactory; but when spraaq5 runs with any frame rate delay (I tried the given 10mS as well as 5mS and 1mS) the rate falls off to about 0.5MB/sec for any frame rate - this is unacceptable for my application. The spraaq5 test adequately simulates my multi-threaded application, so that the TCP stream is not continuous.
Yet more information - It is some time since I worked with TCP, but recall Nagle holdoffs and have tested NDK configuration, NC_SystemOpen options and socket options (TCP_NOPUSH, SO_SNDBUF...). I have also tested the .tcf configuration for CACHE allocation and DSP BIOS task priorities to no avail. The runtime EMAC stats registers look good. EMAC interrupts arrive and are enqueued at the STKEVENT_ETHERNET fine enough. And we use CAT6 cabling appropriate for 1Gb ethernet.
Question: Could this be related to NDK or TCP, or to some other C6455 configuration like PRI_ALLOC? Or...? Many thanks in advance for any hints :-)