PCI контроллер. Halcompail и драйвер.
Re: PCI контроллер. Halcompail и драйвер.
А это всё зачем?
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
-
- Опытный
- Сообщения: 167
- Зарегистрирован: 26 апр 2018, 07:58
- Репутация: 1
- Контактная информация:
Re: PCI контроллер. Halcompail и драйвер.
Мне представляется, что основная доля Latency, в современных системах, достается от memory controller hub который командует установить LOCK диспетчеру шины PCI. Соответственно все портит процесс виртуальной памяти. Единственный путь победить высокую Latency это отказ от виртуальной памяти, и работа с процессами так, чтобы MCH никогда не запускал поддержку когерентности кеша.MX_Master писал(а):astrahard, ты там, случаем, нигде не читал, как влияют сервисные процессы ядра Linux на итоговое значение Latency?
-
- Опытный
- Сообщения: 167
- Зарегистрирован: 26 апр 2018, 07:58
- Репутация: 1
- Контактная информация:
Re: PCI контроллер. Halcompail и драйвер.
Не знаю, просто интересно.mmv писал(а):А это всё зачем?
Re: PCI контроллер. Halcompail и драйвер.
Понять как точно работает конкретное железо наверно нереально. Потому что производителей полно, описаний нет, заняться тестированием на низком уровне никому в голову не придёт. Как с этим будет работать система с точностью до такта тоже х.з.
В конце концов нужно будет использовать то что есть.
Из всех интерфейсов РС(RS232, LPT, PCI, ETHERNET, USB) самый быстрый по скорости и времени отклика PCI, но механически он менее удобный по сравнению с ETHERNET, USB, RS232.
А Latency в 100% случаях высокая из-за кривого ПО.
В конце концов нужно будет использовать то что есть.
Из всех интерфейсов РС(RS232, LPT, PCI, ETHERNET, USB) самый быстрый по скорости и времени отклика PCI, но механически он менее удобный по сравнению с ETHERNET, USB, RS232.
А Latency в 100% случаях высокая из-за кривого ПО.
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
-
- Опытный
- Сообщения: 167
- Зарегистрирован: 26 апр 2018, 07:58
- Репутация: 1
- Контактная информация:
Re: PCI контроллер. Halcompail и драйвер.
А ПО кривое так как к этому призывает сама концепция современной ОС. Если тестировать на низком уровне, становиться понятно что ОС занимается, в основном, бессмысленной работой с памятью. Бороться с латентностью в такой парадигме бессмысленно - она носит вероятностный характер.mmv писал(а):А Latency в 100% случаях высокая из-за кривого ПО.
Re: PCI контроллер. Halcompail и драйвер.
Есть желание написать собственную ось в которой всё будет правильно работать, а потом весь софт к ней???
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: PCI контроллер. Halcompail и драйвер.
Во всех совремнных ОС, даже тех, что RealRT вся память виртуальная.astrahard писал(а):Единственный путь победить высокую Latency это отказ от виртуальной памяти
Вот только не надо путать концепции современных ОС и бремя наследия древней архитектуры IBM-PC...astrahard писал(а):А ПО кривое так как к этому призывает сама концепция современной ОС.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Опытный
- Сообщения: 167
- Зарегистрирован: 26 апр 2018, 07:58
- Репутация: 1
- Контактная информация:
Re: PCI контроллер. Halcompail и драйвер.
Я не согласен, все наследие давно побеждено и забыто это просто расхожее мнение. На мой взгляд, дело в том, что, так называемые, атомарные операции сильно пожирнели в современной архитектуре, и в смысле аппаратных атомарных, и в смысле атомарных каковыми их считает логика ОС. Их нельзя прерывать и, поскольку они жирные, занимают много времени. Но, можно, путем конкурирования, заставить их значительно похудеть.UAVpilot писал(а):Вот только не надо путать концепции современных ОС и бремя наследия древней архитектуры IBM-PC...
P.S. Если смысл и наполнение транзакции с точки зрения PCI прост и понятен, то смысл транзакции MCH (memory controller hub) туманен и плохо документирован, а вместе с тем транзакция MCH это атомарная операция, в процессе которой блокируются нижележащие шины, например PCI (MCH заставляет арбитр PCI выставить сигнал LOCK на время атомарной операции MCH, что, на мой взгляд, делается зачастую на всякий случай, нежели по необходимости). По моим наблюдениям атомарная операция MCH, по соглашению, может длиться 30мксек, а для PII соглашение было 6 мксек. Если больше, значит несколько элементарных транзакций MCH объединяются подряд, а вот это непорядок. Что касается RT расширения, не очень то тщательно оно выполнено, есть заявления, что от RT патча становиться только хуже.
Итого. Соглашусь больше с мнением mmv, это кривое ПО в большей степени, чем претензии к аппаратуре, которые тоже есть. Резюмируя свои рассуждения, причина бед в том, когда атомарные операции объединяются в цепочку без перерыва на арбитраж нижележащих шин, и причина некачественный RT патч, а может быть и BIOS, в смысле конфигурации аппаратуры так, что атомарные операции MCH также, безосновательно объединяются в цепочки, без перерыва на арбитраж нижележащих шин.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: PCI контроллер. Halcompail и драйвер.
Какая-же каша у вас в голове...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Опытный
- Сообщения: 167
- Зарегистрирован: 26 апр 2018, 07:58
- Репутация: 1
- Контактная информация:
Re: PCI контроллер. Halcompail и драйвер.
Почему? А разве HAL драйвер RT расширения не старается детерминировать запросы ОС при работе с виртуальной памятью? К примеру VenturCom RTX картинка на это намекает и случай с интегрированным видео, когда результаты Latency Test оказываются неудовлетворительными, поскольку прозрачно для ОС отнимают время и RTX не помогает. Я рассуждаю о Latency которую лимитирует аппаратная платформа. К Latency потока в ОС эти рассуждения имеет косвенное опосредованное отношение.
P.S. Еще о RTX "Обратите внимание: запрашивающая память из Windows связана с активностью SRI (Сигнал соответствующей информации), которая не является детерминированной и не может быть вызвана в обработчике останова." То есть есть проблемы с SRI которые и вызывают повышенное Latency по сравнению с Local Memory Pool. Итого: серьезные RTX, имеют этот Local Memory Pool, для которого не действуют принципы руления MCH и MMU, характерные для ОС общего назначения.
P.S. Еще о RTX "Обратите внимание: запрашивающая память из Windows связана с активностью SRI (Сигнал соответствующей информации), которая не является детерминированной и не может быть вызвана в обработчике останова." То есть есть проблемы с SRI которые и вызывают повышенное Latency по сравнению с Local Memory Pool. Итого: серьезные RTX, имеют этот Local Memory Pool, для которого не действуют принципы руления MCH и MMU, характерные для ОС общего назначения.
Re: PCI контроллер. Halcompail и драйвер.
Мне кажется этот разговор выходит далеко за пределы текущей темы
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
Re: PCI контроллер. Halcompail и драйвер.
Столкнулся с такой проблемой.
На debian 9.
Драйвер для PCI карты не собирается. Потому что в подключаемой библиотеке linux/pci.h нет почти ничего. Но для всех драйверов PCI она нужна, в ядре или где там она точно есть.
Как это решить?
На debian 9.
Драйвер для PCI карты не собирается. Потому что в подключаемой библиотеке linux/pci.h нет почти ничего. Но для всех драйверов PCI она нужна, в ядре или где там она точно есть.
Как это решить?
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: PCI контроллер. Halcompail и драйвер.
Он в пакете linux-libc-dev
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Re: PCI контроллер. Halcompail и драйвер.
скачал linux-libc-dev_....deb,
sudo dpkg -i linux-libc-dev_....deb -
результат тот же. Может что не так делаю?
sudo dpkg -i linux-libc-dev_....deb -
результат тот же. Может что не так делаю?
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: PCI контроллер. Halcompail и драйвер.
Конечно! Как минимум текст ошибки не показываешь, а ведь компилятор старается - пишет про неё всё...mmv писал(а):Может что не так делаю?
И этта, не надо скачивать, ставить (разве что поупражняться в машинописи), можно просто написать "sudo apt-get install linux-libc-dev".
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Re: PCI контроллер. Halcompail и драйвер.
Так был бы там интернет.....UAVpilot писал(а):И этта, не надо скачивать, ставить (разве что поупражняться в машинописи), можно просто написать "sudo apt-get install linux-libc-dev".
пишит implicit declaration function, на все функции из pci.h
Код: Выделить всё
sudo halcompile -i to_pci.c
Compiling realtime to_pci.c
to_pci.c: In function ‘rtapi_app_main’:
to_pci.c:172:13: warning: implicit declaration of function ‘pci_get_device’ [-Wimplicit-function-declaration]
to_io = pci_get_device(VENDORID_dev, num_dev, to_io);
^~~~~~~~~~~~~~
to_pci.c:172:11: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
to_io = pci_get_device(VENDORID_dev, num_dev, to_io);
^
to_pci.c:180:28: warning: implicit declaration of function ‘pci_resource_start’ [-Wimplicit-function-declaration]
device_data->io_base = pci_resource_start(to_io, 0);
^~~~~~~~~~~~~~~~~~
to_pci.c:182:24: warning: implicit declaration of function ‘pci_resource_len’ [-Wimplicit-function-declaration]
device_data->len = pci_resource_len(to_io, 0);
^~~~~~~~~~~~~~~~
to_pci.c:186:29: warning: implicit declaration of function ‘ioremap_nocache’ [-Wimplicit-function-declaration]
device_data->mem_base = ioremap_nocache( device_data->io_base,device_data->len);
^~~~~~~~~~~~~~~
to_pci.c:186:27: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
device_data->mem_base = ioremap_nocache( device_data->io_base,device_data->len);
^
to_pci.c:198:2: warning: implicit declaration of function ‘writel’ [-Wimplicit-function-declaration]
writel(0x600000A0,(device_data->mem_base)+(control_reg*4));
^~~~~~
to_pci.c:344:1: warning: implicit declaration of function ‘iounmap’ [-Wimplicit-function-declaration]
iounmap((void*)device_data->mem_base);
^~~~~~~
to_pci.c: In function ‘update_port’:
to_pci.c:405:8: warning: implicit declaration of function ‘readl’ [-Wimplicit-function-declaration]
tmp = readl((port->mem_base)+(reg_in*4));
^~~~~
Linking to_pci.so
cp to_pci.so /usr/lib/linuxcnc/modules/
- Вложения
-
- to_pci.c
- то что компилится
- (12.87 КБ) 501 скачивание
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
-
- Мастер
- Сообщения: 705
- Зарегистрирован: 18 май 2019, 13:23
- Репутация: 96
- Настоящее имя: Андрей
- Контактная информация:
Re: PCI контроллер. Halcompail и драйвер.
Так он собирает его, но при запуске LCNC укажет что "такой функции не найдено".mmv писал(а):Так был бы там интернет.....
Интернет через телефон USB кабелем подключи.
Проблема не в этом пакете, он установлен.UAVpilot писал(а):можно просто написать "sudo apt-get install linux-libc-dev".
Файлы есть, но в них нет этих функций. Непомню сейчас точно, но я находил переопределения этих функций на "rtai_" версии. То есть просто "#define rtai_pci_get_device pci_get_device". Но даже если заменить вызов pci_resource_len на rtai_pci_resource_len, то вот функции pci_get_device вообще нету.
При этом если смотреть в исходниках ядра - там эти функции есть.
Их нет в заголовках которые лежат в подключаемых файлах.. Ну и при компиляции модуля естестна функций нет.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: PCI контроллер. Halcompail и драйвер.
И как это вы умудрились "поднять" такой проект без знания элементарных вешей?..mmv писал(а):И такой вопрос, что значит неявно определена. Если компилятор знает где она(библиотека), в чем вопрос, а если не знает, то тогда ошибка типа не определена функция...
Есть ещё один linux/pci.h, но только в исходниках ядра, ибо эти функции "предоставляет" само ядро. Искать надо в пакете с названием kernel-headers, kernel-dev или как-то так, не силён я в дебианах...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Re: PCI контроллер. Halcompail и драйвер.
Интересный подход, вопросом на вопрос.UAVpilot писал(а):И как это вы умудрились "поднять" такой проект без знания элементарных вешей?
Главное что бы нужные библиотеки были, а код написать каждый может..... Вопрос времени и упорства.
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
Re: PCI контроллер. Halcompail и драйвер.
UAVpilot писал(а):Есть ещё один linux/pci.h, но только в исходниках ядра,
Спасибо кеп.mmv писал(а):Но для всех драйверов PCI она нужна, в ядре или где там она точно есть.
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407