PCI контроллер. Halcompail и драйвер.

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
mmv
Мастер
Сообщения: 609
Зарегистрирован: 24 май 2016, 21:58
Репутация: 33
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение mmv »

А это всё зачем?
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
astrahard
Опытный
Сообщения: 167
Зарегистрирован: 26 апр 2018, 07:58
Репутация: 1
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение astrahard »

MX_Master писал(а):astrahard, ты там, случаем, нигде не читал, как влияют сервисные процессы ядра Linux на итоговое значение Latency?
Мне представляется, что основная доля Latency, в современных системах, достается от memory controller hub который командует установить LOCK диспетчеру шины PCI. Соответственно все портит процесс виртуальной памяти. Единственный путь победить высокую Latency это отказ от виртуальной памяти, и работа с процессами так, чтобы MCH никогда не запускал поддержку когерентности кеша.
astrahard
Опытный
Сообщения: 167
Зарегистрирован: 26 апр 2018, 07:58
Репутация: 1
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение astrahard »

mmv писал(а):А это всё зачем?
Не знаю, просто интересно.
mmv
Мастер
Сообщения: 609
Зарегистрирован: 24 май 2016, 21:58
Репутация: 33
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение mmv »

Понять как точно работает конкретное железо наверно нереально. Потому что производителей полно, описаний нет, заняться тестированием на низком уровне никому в голову не придёт. Как с этим будет работать система с точностью до такта тоже х.з.
В конце концов нужно будет использовать то что есть.

Из всех интерфейсов РС(RS232, LPT, PCI, ETHERNET, USB) самый быстрый по скорости и времени отклика PCI, но механически он менее удобный по сравнению с ETHERNET, USB, RS232.

А Latency в 100% случаях высокая из-за кривого ПО.
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
astrahard
Опытный
Сообщения: 167
Зарегистрирован: 26 апр 2018, 07:58
Репутация: 1
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение astrahard »

mmv писал(а):А Latency в 100% случаях высокая из-за кривого ПО.
А ПО кривое так как к этому призывает сама концепция современной ОС. Если тестировать на низком уровне, становиться понятно что ОС занимается, в основном, бессмысленной работой с памятью. Бороться с латентностью в такой парадигме бессмысленно - она носит вероятностный характер.
mmv
Мастер
Сообщения: 609
Зарегистрирован: 24 май 2016, 21:58
Репутация: 33
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение mmv »

Есть желание написать собственную ось в которой всё будет правильно работать, а потом весь софт к ней??? :)
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение Serg »

astrahard писал(а):Единственный путь победить высокую Latency это отказ от виртуальной памяти
Во всех совремнных ОС, даже тех, что RealRT вся память виртуальная. :)
astrahard писал(а):А ПО кривое так как к этому призывает сама концепция современной ОС.
Вот только не надо путать концепции современных ОС и бремя наследия древней архитектуры IBM-PC...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
astrahard
Опытный
Сообщения: 167
Зарегистрирован: 26 апр 2018, 07:58
Репутация: 1
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение astrahard »

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 и драйвер.

Сообщение Serg »

Какая-же каша у вас в голове... :wik:
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
astrahard
Опытный
Сообщения: 167
Зарегистрирован: 26 апр 2018, 07:58
Репутация: 1
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение astrahard »

Почему? А разве HAL драйвер RT расширения не старается детерминировать запросы ОС при работе с виртуальной памятью? К примеру VenturCom RTX картинка на это намекает и случай с интегрированным видео, когда результаты Latency Test оказываются неудовлетворительными, поскольку прозрачно для ОС отнимают время и RTX не помогает. Я рассуждаю о Latency которую лимитирует аппаратная платформа. К Latency потока в ОС эти рассуждения имеет косвенное опосредованное отношение.

P.S. Еще о RTX "Обратите внимание: запрашивающая память из Windows связана с активностью SRI (Сигнал соответствующей информации), которая не является детерминированной и не может быть вызвана в обработчике останова." То есть есть проблемы с SRI которые и вызывают повышенное Latency по сравнению с Local Memory Pool. Итого: серьезные :thinking: RTX, имеют этот Local Memory Pool, для которого не действуют принципы руления MCH и MMU, характерные для ОС общего назначения.
Вложения
074-1.jpg (5772 просмотра) <a class='original' href='./download/file.php?id=138503&sid=130cf08b8f9a46c910ccd557906da0b9&mode=view' target=_blank>Загрузить оригинал (28.75 КБ)</a>
mmv
Мастер
Сообщения: 609
Зарегистрирован: 24 май 2016, 21:58
Репутация: 33
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение mmv »

Мне кажется этот разговор выходит далеко за пределы текущей темы
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
mmv
Мастер
Сообщения: 609
Зарегистрирован: 24 май 2016, 21:58
Репутация: 33
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение mmv »

Столкнулся с такой проблемой.
На debian 9.
Драйвер для PCI карты не собирается. Потому что в подключаемой библиотеке linux/pci.h нет почти ничего. Но для всех драйверов PCI она нужна, в ядре или где там она точно есть.
Как это решить?
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение Serg »

Он в пакете linux-libc-dev
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
mmv
Мастер
Сообщения: 609
Зарегистрирован: 24 май 2016, 21:58
Репутация: 33
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение mmv »

скачал linux-libc-dev_....deb,
sudo dpkg -i linux-libc-dev_....deb -
результат тот же. Может что не так делаю?
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение Serg »

mmv писал(а):Может что не так делаю?
Конечно! Как минимум текст ошибки не показываешь, а ведь компилятор старается - пишет про неё всё... :)

И этта, не надо скачивать, ставить (разве что поупражняться в машинописи), можно просто написать "sudo apt-get install linux-libc-dev". :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
mmv
Мастер
Сообщения: 609
Зарегистрирован: 24 май 2016, 21:58
Репутация: 33
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение mmv »

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 КБ) 497 скачиваний
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение ex71 »

mmv писал(а):Так был бы там интернет.....
Так он собирает его, но при запуске LCNC укажет что "такой функции не найдено".
Интернет через телефон 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 и драйвер.

Сообщение Serg »

mmv писал(а):И такой вопрос, что значит неявно определена. Если компилятор знает где она(библиотека), в чем вопрос, а если не знает, то тогда ошибка типа не определена функция...
И как это вы умудрились "поднять" такой проект без знания элементарных вешей?.. :)
Есть ещё один linux/pci.h, но только в исходниках ядра, ибо эти функции "предоставляет" само ядро. Искать надо в пакете с названием kernel-headers, kernel-dev или как-то так, не силён я в дебианах...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
mmv
Мастер
Сообщения: 609
Зарегистрирован: 24 май 2016, 21:58
Репутация: 33
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение mmv »

UAVpilot писал(а):И как это вы умудрились "поднять" такой проект без знания элементарных вешей?
Интересный подход, вопросом на вопрос.
Главное что бы нужные библиотеки были, а код написать каждый может..... Вопрос времени и упорства.
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
mmv
Мастер
Сообщения: 609
Зарегистрирован: 24 май 2016, 21:58
Репутация: 33
Контактная информация:

Re: PCI контроллер. Halcompail и драйвер.

Сообщение mmv »

UAVpilot писал(а):Есть ещё один linux/pci.h, но только в исходниках ядра,
mmv писал(а):Но для всех драйверов PCI она нужна, в ядре или где там она точно есть.
Спасибо кеп.
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
Ответить

Вернуться в «LinuxCNC»