Quantcast
Channel: Linux.org.ru: Форум (тех. форум)
Viewing all articles
Browse latest Browse all 74622

Ограничение скорости Ethernet Bridge

$
0
0

Всем привет!

Завел я на своей кастомной плате OpenWRT. На плате 2 Ethernet 100Мбит, объединенные в мост. Все работает на малых скоростях, но как только начинаю тестировать скорость передачи по мосту или перекачивать большие файлы, вся система умирает.

Тестировал iperf3:

  • 10Мбит/полный дуплекс - норм, TCP и UDP по 9,5Мбит дают.
  • 100Мбит/полный дуплекс - UDP прокачивает 95Мбит/с, TCP кладет систему
  • 100Мбит/полудуплекс - UDP прокачивает 95Мбит/с, TCP - 75Мбит

На больших скоростях загруз проца почти 100 (95% обработка sirq)

Здоровенный лог падения приложу, если надо, но суть в том, что переполняется очередь отправки:

WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:303 dev_watchdog+0x198/0x224()
NETDEV WATCHDOG: eth0 (fec): transmit queue 0 timed out
Отсюда вопрос: как можно притормаживать Ethernet(из юзерспейса или в драйвере), чтобы избежать переполнения очереди?

P.S. Как я понял, проблема эта давняя, но нигде не могу найти нормального решения. Размеры очереди и обрезку кадров в драйвере менял - не помогло. Спасает только ограничение скорости да изменение дуплексности, но 10 Мбит или полудуплекс не хочется оставлять(плата тянет где-то 30Мбит).

 , , ,


Viewing all articles
Browse latest Browse all 74622

Latest Images

Trending Articles