Привет, Электроникс
Завел я на своей кастомной плате c i.MX287 OpenWRT. На плате 2 Ethernet 100Мбит, объединенные в мост.
Все работает на малых скоростях, но как только начинаю тестировать скорость передачи по мосту или перекачивать большие файлы, вся система умирает.
Тестировал iperf3:
10Мбит/полный дуплекс - норм, TCP и UDP по 9,5Мбит дают.
100Мбит/полный дуплекс - UDP прокачивает 95Мбит/с, TCP кладет систему
100Мбит/полудуплекс - UDP прокачивает 95Мбит/с, TCP - 75Мбит
На больших скоростях загруз проца почти 100 (95% sirq)
Лог падения приложу ниже(парсер не срабатывает).
Отсюда вопрос: как можно притормаживать Ethernet, чтобы избежать переполнения очереди?
P.S. Как я понял, проблема эта давняя, но нигде не могу найти нормального решения.
Размеры очереди и обрезку кадров в драйвере менял - не помогло. Спасает только ограничение скорости, но 10 Мбит или полудуплекс не хочется оставлять.