Просмотр сообщений
Страниц: [1] 2 3 ... 6
1  Разработка / Встраиваемые системы / Re: Ethernet отваливается : Сентября 06, 2017, 03:12:18 am
При включении broadcast траффика на соседней машине, мгновенно умирает сетевой интрефейс на qnx 6.6.0 (core i5). Проверял на devnp-e1000.so и devnp-rtl8169.so.
При этом USB Ethernet dongle на этой же машине в этой же сети остается живой.
С него подключаюсь и делаю
ifconfig wm0 down
ifconfig wm0 up
и если снять траффик гигибитный интерфейс начинает отвечать.
Как с этим бороться?


2  Разработка / Встраиваемые системы / Re: задержки в io-pkt-v4 : Октября 14, 2016, 03:49:13 am
Заменил devnp-e1000.so на devnp-i82544.so :
io-pkt-v4 -ptcpip prefix=/alt rx_pulse_prio=65 -P 62 rx_prio=61 -d /lib/dll/devnp-i82544.so receive=1,transmit=1,irq_thresh=0
С этим драйвером ситуация улучшилась RTT max = 60 us.
Жалко только этот драйвер не поддерживает параметр priority, и одна из ниток io-pkt работает с приоритетом по умолчанию - 21.
3  Разработка / Встраиваемые системы / Re: задержки в io-pkt-v4 : Октября 14, 2016, 12:41:20 am
Про lsm-nraw.so встречал не одно упоминание на форуме. К сожалению в свободном доступе я его не нашел.
Интересно было бы узнать за счет чего он работает быстрее? Ему нужен io-pkt? Если да, то он наверное также теряет время на разблокировках нити или передачи сообщений?

По поводу работы с BPF уточнение:
Задержки одинаково выглядят на разных скоростях (packet rate) - 50, 500, 5000 Hz. Время выполнения процедуры write() всегда примерно 6 мкс, время от момента входа в write() до получения пакета (64 байта) контроллером всегда примерно 18 мкс. А вот время от момента отправки пакета контроллером до момента возврата из процедуры read() в программу проходит от 28 мкс до 80 мкс. При этом задержка линейно (насколько это можно судить по осциллографу) нарастает до максимума, потом падает и так циклически. Вот этот огромный jitter и представляет проблему. Странно, на чем можно висеть столь длительное время...

кстати, похожий эффект упомянут здесь:
http://qnx.org.ru/forum/index.php?action=printpage;topic=7992.0

4  Разработка / Встраиваемые системы / задержки в io-pkt-v4 : Октября 12, 2016, 08:18:48 pm
Делаю нехитрый тест round trip time (RTT) на выделенной сетевой карте i82544 на выделенном "io-pkt-v4 -i1". Замер времени произвожу на контроллере с Ethernet 100 Mbit/s, который генерит пакет 64 байта, ждет такой же пакет от компьютера с QNX 6.5.0, выставляя временные отметки на осциллограф.
Программа на компьютере принимает запрос и тут же отправляет ответ (пакеты MAC уровня через /dev/bpf0). Приоритеты выставлены. В результате имеем RTT = 45..120 us, что печально, особенно макс. RTT.
Время на саму передачу в оба конца я оцениваю как T < 20 us.
Вопроса как всегда два: кто виноват и что делать?
Т.е. откуда именно берутся такие задержки и как воспользоваться напрямую функциями приема и передачи самого Ethernet драйвера?
5  Установка и настройка / Поддержка аппаратного обеспечения в QNX / Re: проблема с shared IRQ : Сентября 26, 2013, 10:47:26 pm
Образ со startup-apic не грузится загрузчиком qnxldsys.sys. Это плохо.
Но таки после загрузки startup-apic вместо startup-bios линии прерываний перестали перекрываться и все заработало. Это хорошо.
В VMWare сеть (pcnet32 адаптер) не заработала с новым образом. Это плохо.
6  Установка и настройка / Поддержка аппаратного обеспечения в QNX / Re: проблема с shared IRQ : Сентября 23, 2013, 02:25:02 am
А как это сделать?
7  Установка и настройка / Поддержка аппаратного обеспечения в QNX / проблема с shared IRQ : Сентября 21, 2013, 02:37:46 pm
У меня есть две платы PCIe которые должны работать с высоким irq rate под QNX 6.5.0
Они воткнуты в Asrock Z77M с двумя слотами PCIe. На материнке отключено все короме сети и диска. Но вот беда, сеть и обе эти платы сидят на IRQ-11, при куче свободных линий.
На другой материнке платы работали. На этой - как только разрешаю прерывния система зависает.
irq_remap не работает.
при попытке загрузиться с statup-apic система уходит в рестарт (и на VMWare кстати тоже).
Что делать? выкидывать материнку?
8  Разработка / Программирование под QNX / Re: Надежность UDP : Июня 19, 2013, 03:28:15 pm
1Gbit/(1500 byte * 8 bit) ~= 80000 пакетов в секунду.
если переписывания каждого пакета из буфера платы в DMA идет через прерывание и соответсвенно
требуется участие процессора для ее переинициализации, то машина может не справляться и тогда глюк возможен на уровне драйвера. А какая сетевуха на приемной стороне, каков у нее размер буфера?
9  Разработка / Программирование под QNX / Re: Надежность UDP : Июня 19, 2013, 11:30:31 am
Если проблема не в коммутаторе, то сама плата будет принимать данные в свой кольцевой буффер железно. Дальше она железно будет сливать данные по DMA в оперативку. Значит как вариант возможной ошибки: при высоком packet rate копирование данных из буфера может происходить с наложением. т.е. начинаем копировать один буфер, а продолжам - другой. хотя по идее драйвера должны быть защищены от overrruns.
А сколько пакетов в сек. на максимуме нагрузки?
10  Установка и настройка / Установка и настройка / Re: Удаленная загрузка QNX : Июня 16, 2013, 10:02:42 pm
> и получается, что такой же билдфайл собранный в 6.3 дает образ, который этот pxelinux успешно грузит?
да. меняю только пути в bat файле.
с ключиком игрался.

> тем более, что syslinux с версии 3.62 уже сильно поменялся.
проверял работу с memdisk от syslinux 4.04 и 4.06.
11  Разработка / Программирование под QNX / Re: Надежность UDP : Июня 15, 2013, 03:03:37 pm
вероятность совпадения контрольной суммы при ошибке мала для столь коротких пакетов. Поищите статьи где она оценивается. А при передаче огромных файлов (дистрибутивов на DVD) все равно подверяются отдельной контрольной суммой.
12  Разработка / Программирование под QNX / Re: Надежность UDP : Июня 15, 2013, 12:20:18 pm
Вообще-то по стандарту в пакете UDP подразумевается наличие контрольной суммы в заголовке.
Для прямого соединенения источник-приемник UDP можно условно считать надежным. При использовании коммутаторов - нет, т.к. они могут в случае сильной загрузки делать с пакетами все что угодно, в зависимости от своей аппаратной навороченности.
13  Установка и настройка / Установка и настройка / Re: Удаленная загрузка QNX : Июня 15, 2013, 02:48:38 am
Исходная проблема решилась.
с помощью memdisk (любого syslinux) гружу image dos-диска 2.88МБ
и запускаю ifs-образ с помощью утилиты qnxldsys.sys взятый отсюда:
http://community.qnx.com/sf/frs/do/viewRelease/projects.bazaar/frs.qnxldsys.qnxldsys_1_0_0

С виртуальным флопарем удобно работать с помощью VFD
vfd.exe OPEN a: PXE.img
copy PXE.ifs a:\boot.ifs
vfd.exe CLOSE
14  Установка и настройка / Установка и настройка / Re: Удаленная загрузка QNX : Июня 15, 2013, 12:52:22 am

> Ну собирать надо именно зип архив из этой ветки.

с него и начал. ошибка та же, но спотыкается сначала на файле qnximage.inc

Интересно, а почему floppy загрузчики не работают с дисками 2.88МБ?
При этом, замечу, что даже если образ меньше 1.44МБ и успешно грузиться с диска 1.44МБ,
то с диска 2.88МБ этот образ уже не грузиться.
Кстати, если можно было бы решить эту проблему, то скорее всего задача "допила"
syslinux отпадет сама собой, Т.к. можно будет пользоваться его стандартным memdisk
для загрузки образов 2.88MB. А такого размера кажется уже вполне достаточно для большинства задач.
Хотя... с увеличением размера ядра и\или числа поддерживаемый сетевых
плат может и его не хватить.

> Вопрос: какого размера ifs файл от 6.5 пытаетесь загрузить?

нужно грузить где-то 1.8...2 Мб.

> Можно ли собрать в 6.5 минимальный образ (несколько самых нужных драйверов,
> шел в консоли и никакого фотона) и попробовать его?

попробовал. только ksh и драйвер консоли. размер образа 984580 байт.
так же уходит в рестарт сразу после сообщения
"Loading QNX boot image pxe650.ifs.......ready"

он же, но с дискеты 1.44 - грузиться. 

15  Установка и настройка / Установка и настройка / Re: Удаленная загрузка QNX : Июня 14, 2013, 01:02:44 pm
Мне интересно. Потестировать желаю и могу. Собрать желаю, но не уверен, что могу. Вчера попробовал в VM на Slackware - какие-то версии syslinux до и после версии 3.62 собираются, а 3.62 вылетает с ошибкой:
nasm -O9999 -f bin -DDATE_STR="'0x47c39fbb'" -DHEXDATE="0x47c39fbb" \
        -DMAP=pxelinux.map -l pxelinux.lsr -o pxelinux.bin pxelinux.asm
nasm: fatal: cannot mix real and virtual attributes in nobits section (.bss)
Страниц: [1] 2 3 ... 6