Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51
большие потери пакетов - iMX6, UDP и GigE - Embedded Linux - Форум - starterkit.ru
Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
iMX6, UDP и GigE - большие потери пакетов
ask2000
Добавлено 19.10.2018 17:14 Редактировалось 19.10.2018 17:17
0
Сообщение: 1
ask2000
0

Пункты: 2598
Регистрация: 10.08.2016
Подключил цветную камеру 1.3Мпикс через Gigabit Ethernet (RTL8111 на PCIe). Наблюдаю потери UDP-пакетов порядка 60-70% при приеме.
Что показывает iperf (PC-->iMX6)

iperf -c 192.168.221.89 -t 3 -i 1 -u -b 1G
------------------------------------------------------------
Client connecting to 192.168.221.89, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.221.99 port 37338 connected with 192.168.221.89 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 96.7 MBytes 811 Mbits/sec
[ 3] 1.0- 2.0 sec 97.0 MBytes 814 Mbits/sec
[ 3] 2.0- 3.0 sec 96.4 MBytes 809 Mbits/sec
[ 3] 0.0- 3.0 sec 290 MBytes 811 Mbits/sec
[ 3] Sent 206994 datagrams
[ 3] Server Report:
[ 3] 0.0- 3.1 sec 188 MBytes 506 Mbits/sec 0.128 ms 72605/206993 (35%)
[ 3] 0.0- 3.1 sec 1 datagrams received out-of-order

iperf (iMX6-->PC)
iperf -c 192.168.221.99 -t 3 -i 1 -u -b 1G
------------------------------------------------------------
Client connecting to 192.168.221.99, UDP port 5001
Sending 1470 byte datagrams, IPG target: 11.76 us (kalman adjust)
UDP buffer size: 160 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.221.89 port 40154 connected with 192.168.221.99 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 75.7 MBytes 635 Mbits/sec
[ 3] 1.0- 2.0 sec 81.4 MBytes 683 Mbits/sec
[ 3] 0.0- 3.0 sec 239 MBytes 667 Mbits/sec
[ 3] Sent 170200 datagrams
[ 3] Server Report:
[ 3] 0.0- 3.0 sec 239 MBytes 667 Mbits/sec 0.034 ms 0/170200 (0%)

Вот статистика ifconfig: (5.5 Мбайт/с вместо ожидаемых 12 Мбайт/с на небольшом разрешении и FPS)
Every 1s: ifconfig eth1 1970-01-01 00:26:00

eth1 Link encap:Ethernet HWaddr E4:FA:1D:0A:1F:29
inet addr:192.168.221.89 Bcast:0.0.0.0 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2975909 errors:0 dropped:0 overruns:0 frame:0
TX packets:2533947 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4159005874 (3.8 GiB) TX bytes:3824093058 (3.5 GiB)

Every 1s: ifconfig eth1 1970-01-01 00:26:01

eth1 Link encap:Ethernet HWaddr E4:FA:1D:0A:1F:29
inet addr:192.168.221.89 Bcast:0.0.0.0 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2979557 errors:0 dropped:0 overruns:0 frame:0
TX packets:2533947 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4164515470 (3.8 GiB) TX bytes:3824093058 (3.5 GiB)

Every 1s: ifconfig eth1 1970-01-01 00:26:02

eth1 Link encap:Ethernet HWaddr E4:FA:1D:0A:1F:29
inet addr:192.168.221.89 Bcast:0.0.0.0 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2983501 errors:0 dropped:0 overruns:0 frame:0
TX packets:2533948 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4170470328 (3.8 GiB) TX bytes:3824093118 (3.5 GiB)

Вставил мигание светодиодом до и после recfrom():
title
title

В общем не получается реализовать прием с цветной гигабитной камеры

Если есть возможность, покажите ваши результаты iperf на гигабитном канале.
Может у кого есть идеи?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 19.10.2018 17:41 Сообщение: 2
sasamy
4.70

Пункты: 76182
Регистрация: 14.08.2009
Цитата

В общем не получается реализовать прием с цветной гигабитной камеры


https://community.nxp.com/message/613888
Спуститься к концу Подняться к началу
Персональная информация
ask2000
Добавлено 22.10.2018 13:34 Сообщение: 3
ask2000
0

Пункты: 2598
Регистрация: 10.08.2016
Да, я читал еррату. Не думал что это касается тоже PCIe Ethernet. На плате AEEB прогнал iperf туда-сюда, показало за 600 Мбит. Только тест запускал по умолчанию TCP, а там потери не показывает. Только сейчас на UDP пакетах прозрел.
И в камере не могу пока ограничить пиковый битрейт, вроде нужный регистр PACKET DELAY (scpd) есть, данные туда пишу, результата нет
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 22.10.2018 14:47 Редактировалось 22.10.2018 15:04 Сообщение: 4
sasamy
4.70

Пункты: 76182
Регистрация: 14.08.2009
Цитата

Не думал что это касается тоже PCIe Ethernet.


Насколько я понял узкое место - медленный доступ CPU к внешней памяти и обработка сетевого трафика на CPU. Например при захвате и обрабоке видео используя zero copy (CPU используется только для настройки аппаратных устройств с DMA, вся обработка выполняется аппаратно на специальных юнитах) получается вывести на экран 7 потоков с камер PAL с PCIe карты tw6869 без потери кадров

один кадр
720 x 576 x 2 = 829440 байт

25 кадров
829440 х 25 = 20736000 ~ 20 Мбайт/c

7 потоков ~ 140 Мбайт/c
Спуститься к концу Подняться к началу
Персональная информация
ask2000
Добавлено 23.10.2018 10:19 Сообщение: 5
ask2000
0

Пункты: 2598
Регистрация: 10.08.2016
Конечно PCIe не может быть узким местом, иначе бы сертификацию не прошло.
Видел вопрос без ответа на форуме NXP как раскидать обработку прерываний на все ядра, а то только одно используется.
Пока связался с поставщиком камер, попробую выяснить как замедлить камеру, теоретическая возможность есть.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 23.10.2018 11:24 Редактировалось 23.10.2018 11:52 Сообщение: 6
sasamy
4.70

Пункты: 76182
Регистрация: 14.08.2009
Цитата

Видел вопрос без ответа на форуме NXP как раскидать обработку прерываний на все ядра, а то только одно используется.


https://elixir.bootlin.com/linux/latest/source/Documentation/IRQ-affinity.txt

https://community.nxp.com/thread/301130

https://github.com/Irqbalance/irqbalance

make menuconfig
Target packages --->
System tools ---
[*] irqbalance
Спуститься к концу Подняться к началу
Персональная информация
ask2000
Добавлено 24.10.2018 12:33 Сообщение: 7
ask2000
0

Пункты: 2598
Регистрация: 10.08.2016
Спасибо, подсказали нужное напрвление.
irqbalance не помог, помогло следующее:
Код
[b]echo 2 > /sys/class/net/eth1/queues/rx-0/rps_cpus[/b]

теперь картина с iperf радикально лучше
Код
iperf -c 192.168.221.89 -t 10 -i 1 -u -b 1G
------------------------------------------------------------
Client connecting to 192.168.221.89, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.221.99 port 38658 connected with 192.168.221.89 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 96.8 MBytes 812 Mbits/sec
[ 3] 1.0- 2.0 sec 96.5 MBytes 809 Mbits/sec
[ 3] 2.0- 3.0 sec 96.5 MBytes 809 Mbits/sec
[ 3] 3.0- 4.0 sec 96.7 MBytes 811 Mbits/sec
[ 3] 4.0- 5.0 sec 96.3 MBytes 808 Mbits/sec
[ 3] 5.0- 6.0 sec 96.6 MBytes 810 Mbits/sec
[ 3] 6.0- 7.0 sec 96.3 MBytes 808 Mbits/sec
[ 3] 7.0- 8.0 sec 96.4 MBytes 809 Mbits/sec
[ 3] 8.0- 9.0 sec 96.7 MBytes 812 Mbits/sec
[ 3] 9.0-10.0 sec 96.5 MBytes 810 Mbits/sec
[ 3] 0.0-10.0 sec 965 MBytes 810 Mbits/sec
[ 3] Sent 688569 datagrams
[ 3] Server Report:
[ 3] 0.0-10.0 sec 960 MBytes 805 Mbits/sec 0.018 ms 4123/688568 (0.6%)
[ 3] 0.0-10.0 sec 1 datagrams received out-of-order

Потери упали с более 25% до менее 1%
С камерой тоже стало заметно лучше. Но надо убирать узкие места, обработку выносить в отдельные потоки.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux