Hexxeh / rpi-firmware

Firmware files for the Raspberry Pi
Other
775 stars 207 forks source link

bad UDP receive performance and stopping of UDP receiving #196

Closed BloodhoundAllfather closed 5 years ago

BloodhoundAllfather commented 5 years ago

Hello eveyone,

I'm trying to develop an application to forward incoming UDP packets. The application will constantly receive UDP data around 22Mbps and send out the same amount. Before testing anything I decided to test RaspberryPi3B+ with iPerf3.1.3 on Raspbian9 4.14.79-v7+ (updated system)

TCP sending and receiving bandwidth is not bad (0 loss). When RPi is the one that sends UDP packets, it is able to send around 90Mbps with 0 loss, fair enough. But when RPi is the one that receives UDP packets, the results are bad. When I run "iperf3 -c 192.168.1.3 -u -b 20M" on my PC, I get around 150 packet loss on RPi. When I change 20M to 60M, UDP receiving stops.

Accepted connection from 192.168.1.5, port 51918
[  5] local 192.168.1.3 port 5201 connected to 192.168.1.5 port 61448
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  5]   0.00-1.00   sec  1.07 MBytes  8.98 Mbits/sec  104.990 ms  615/752 (82%) 
[  5]   1.00-2.00   sec  1.18 MBytes  9.90 Mbits/sec  0.887 ms  765/916 (84%)
[  5]   2.00-3.00   sec   496 KBytes  4.06 Mbits/sec  0.925 ms  305/367 (83%)
[  5]   3.00-4.00   sec  0.00 Bytes  0.00 bits/sec  0.925 ms  0/0 (0%)
[  5]   4.00-5.00   sec  0.00 Bytes  0.00 bits/sec  0.925 ms  0/0 (0%)
[  5]   5.00-6.00   sec  0.00 Bytes  0.00 bits/sec  0.925 ms  0/0 (0%)
[  5]   6.00-7.00   sec  0.00 Bytes  0.00 bits/sec  0.925 ms  0/0 (0%)
[  5]   7.00-8.00   sec  0.00 Bytes  0.00 bits/sec  0.925 ms  0/0 (0%)
[  5]   8.00-9.00   sec  0.00 Bytes  0.00 bits/sec  0.925 ms  0/0 (0%)
[  5]   9.00-10.00  sec  0.00 Bytes  0.00 bits/sec  0.925 ms  0/0 (0%)
[  5]  10.00-10.04  sec  0.00 Bytes  0.00 bits/sec  0.925 ms  0/0 (0%)

And this is 20M right after it:

Accepted connection from 192.168.1.5, port 51919
[  5] local 192.168.1.3 port 5201 connected to 192.168.1.5 port 61449
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  5]   0.00-1.00   sec  0.00 Bytes  0.00 bits/sec  0.000 ms  0/0 (0%)
[  5]   1.00-2.00   sec  0.00 Bytes  0.00 bits/sec  0.000 ms  0/0 (0%)
[  5]   2.00-3.00   sec  0.00 Bytes  0.00 bits/sec  0.000 ms  0/0 (0%)
[  5]   3.00-4.00   sec  0.00 Bytes  0.00 bits/sec  0.000 ms  0/0 (0%)
[  5]   4.00-5.00   sec  0.00 Bytes  0.00 bits/sec  0.000 ms  0/0 (0%)
[  5]   5.00-6.00   sec  0.00 Bytes  0.00 bits/sec  0.000 ms  0/0 (0%)
[  5]   6.00-7.00   sec  0.00 Bytes  0.00 bits/sec  0.000 ms  0/0 (0%)
[  5]   7.00-8.00   sec  0.00 Bytes  0.00 bits/sec  0.000 ms  0/0 (0%)
[  5]   8.00-9.00   sec  0.00 Bytes  0.00 bits/sec  0.000 ms  0/0 (0%)
[  5]   9.00-10.00  sec  0.00 Bytes  0.00 bits/sec  0.000 ms  0/0 (0%)
[  5]  10.00-10.04  sec  0.00 Bytes  0.00 bits/sec  0.000 ms  0/0 (0%)

After a while I was able to send UDP packets with 10M but with 150 packet loss.

I know similar issue was on here before and the issue is closed. Do you know how can I get this work? Any help is appreciated. Thank you

popcornmix commented 5 years ago

This repo is for distributing firmware binaries through rpi-update. If you believe your issue is a linux kernel issue then report here: https://github.com/raspberrypi/linux/issues