реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Не работает драйвер сетевого устройства
k000858
сообщение Jun 15 2018, 03:27
Сообщение #31


Местный
***

Группа: Участник
Сообщений: 316
Регистрация: 31-01-12
Пользователь №: 69 978



Цитата(winniethepooh @ Jun 14 2018, 16:26) *
ничего не знаю про тест openwrt, но сомневаюсь что он может показать в каком слое стека застревают пакеты.

самый банальный тест пропускной способности с помощью iperf (v3.13), трафик из Lan'а в Wan (хардварного NAT'а нет).
При этом родной драйвер пропускает ~ гигабит, но загружает ЦПУ на 80%, мой драйвер пропускает лишь ~300Мбит/с, упираясь в 100% загрузку ЦПУ. очевидно что он выдал бы гигабит, если б хватило производительность ЦПУ.
Думаю сокет тут непричем, сам драйвер менее производительный. Возможно какая то его настройка (считай - дефайн или ключ компиляции) так влияет.

Повторюсь, драйвер работает по можели napi. Может есть мысли на что может тратиться процессорное время?
Go to the top of the page
 
+Quote Post
winniethepooh
сообщение Jun 15 2018, 07:17
Сообщение #32


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 3-06-15
Пользователь №: 86 995



Цитата(k000858 @ Jun 15 2018, 04:27) *
самый банальный тест пропускной способности с помощью iperf (v3.13), трафик из Lan'а в Wan (хардварного NAT'а нет).
При этом родной драйвер пропускает ~ гигабит, но загружает ЦПУ на 80%, мой драйвер пропускает лишь ~300Мбит/с, упираясь в 100% загрузку ЦПУ. очевидно что он выдал бы гигабит, если б хватило производительность ЦПУ.
Думаю сокет тут непричем, сам драйвер менее производительный. Возможно какая то его настройка (считай - дефайн или ключ компиляции) так влияет.

Повторюсь, драйвер работает по можели napi. Может есть мысли на что может тратиться процессорное время?

логика работы драйвера построена так что бы не отвлекать проц(используя dma разместить пакеты. ну вы должны это знать сами..)
у меня тоже проблема с медленной обработкой пакетов, я думаю это в уровне между стеком и пользовательским приложением(обработка совтовых прерываний, переключение из режима ядра в режим пользователя). я потратил много времени просматривая движение пакетов вверх по стеку и видел что они передаются без задержки. На уровне где расположены сокеты перестал работат printk и посмотреть где точно происходит задержка и потеря пакетов не удалось.
я предполагаю учитывая тяжеловесность слоя сокетов (я использую ARM Cortex-M3 144 Мгц, 16Мб ОЗУ uClinux) что задержка происходит в этом слое.

Сообщение отредактировал winniethepooh - Jun 15 2018, 07:43
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2018 - 19:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.0086 секунд с 7
ELECTRONIX ©2004-2016