AnsweredAssumed Answered

UDP Ethernet bandwidth vs global memory bandwidth usage

Question asked by ericb on Sep 16, 2013
Branched to a new discussion

Dear all,

 

The bandwidth of the Ethernet seems to be limited by the global memory bandwidth usage!

 

Known issue:

The Ethernet bandwidth is limited to 470 Mb/s with the Imx6q.

 

My project description:

With the 3 first cores, I do a video process which uses memory and neon instructions.

With the last core, I send data through the UDP Ethernet.

 

Problem description:

More the video process uses the global memory (200 to 600 MB/s), more the Ethernet bandwidth decreases (430 to 150 Mb/s).

Note: the same video process with small part of memory (in this case, data should be in cache), doesn't decrease the Ethernet bandwidth (always 416 Mb/s) (the same cpu usage, but low global memory usage).

 

Configuration:

BoundaryDevices Nitrogen6X

Memory 1GBytes of 64-bit wide DDR3 @ 532MHz

Ubuntu L3.0.35_4.0.0_UBUNTU_RFS / LTIB 4.0.0 / or LTIB 4.1.0

 

I have written a simple test (code attached):

-    3 cores copy memory: 10 MB of data, by block of 64 kB. The memory bandwidth is measured and limited to a desired value for the test.

-    1 core sends udp packets (1472 bytes) : after 10s, the Ethernet bandwidth is calculated

 

TestUdpCores.jpg

 

1 thread memory bandwidth (MB/s)

Threads count

Total memory bandwidth (MB/s)

Measured Ethernet bandwidth (Mb/s)

Cpu usage (%)

0

3

0

438

5

1

3

3

434

7

5

3

15

429

10

10

3

30

424

11

20

3

60

417

12

50

3

150

400

20

100

3

300

379

35

150

3

450

365

46

200

3

600

341

62

250

3

750

279

73

300

3

900

210

84

400

3

1200

151

94

max

3

max

149

98


 

 

 

 

Result:

The bandwidth of the Ethernet depends of the global memory bandwidth usage.

- No memory usage: Ethernet bandwidth 438 Mb/s

- Max memory usage: Ethernet bandwidth 149 Mb/s

 

For my project, I really need the max of Ethernet bandwidth. I have spent many to time to adjust socket options, threads priority, the BSP versions,…, without improvement.

Is there any idea to help me go on?

Thank you very much.

Original Attachment has been moved to: TestUdp.tar.gz

Outcomes