Rating@Mail.ru

Форум по операционной системе GNU/Linux и свободному программному обеспечению


Текущее время: 25 май 2018, 17:49

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Xenomai и real-time Linux
Непрочитанное сообщениеДобавлено: 31 мар 2018, 11:08 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10719
Откуда: Харьков
Только ссылки...

Adeos (Adaptive Domain Environment for Operating Systems)
Цитата:
Adeos (англ. Adaptive Domain Environment for Operating Systems) - наноядерный слой аппаратных абстракций (hardware abstraction layer, HAL) или гипервизор, находящийся между физическим уровнем аппаратного обеспечения и программным обеспечением, запускаемом на этом компьютере. В отличие от других наноядер, Adeos позволяет запускать несколько ядер одновременно, что делает его похожим на средства виртуализации.

Цитата:
Adeos Interrupt Pipe.
Adeos использует очередь прерываний для их распространения через различные домены, запущенные на одном оборудовании. Adeos предоставляет механизм приоритетов для обработки прерываний различными доменами. В результате Adeos размещает обработчик прерывания запрашивающего домена и соответствующие таблицы на первых этапах конвейера обработки прерывания. Домены контролируют приём и завершение прерываний. Каждое из них имеет различный эффект и контролируется по-разному.


Adaptive Domain Environment for Operating Systems


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Xenomai и real-time
Непрочитанное сообщениеДобавлено: 31 мар 2018, 13:31 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10719
Откуда: Харьков
How fast is fast enough? Choosing between Xenomai and Linux for real-time applications
Цитата:
Dr. Jeremy H. Brown
Rep Invariant Systems, Inc.
38 Cameron Ave, Suite 100, Cambridge, MA, 02140, USA
jhbrown@repinvariant.com
Brad Martin
Rep Invariant Systems, Inc.
38 Cameron Ave, Suite 100, Cambridge, MA, 02140, USA
bmartin@repinvariant.com

17 стр., с результатами тестирования


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Xenomai и real-time
Непрочитанное сообщениеДобавлено: 31 мар 2018, 13:39 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10719
Откуда: Харьков
Установка Xenomai в Debian
Цитата:
На данный момент последними версиями были:
Debian 7.2.0;
Xenomai 2.6.3.


Installation steps for xenomai 3 on Ubuntu 16.04
Цитата:
Notes on Installing the Cobalt core


Installing Xenomai 3.x - оригинальное руководство с сайта Xenomai (вообще то, документация скудная, рваная и не вовремя обновляемая).
Цитата:
Installing the Cobalt core


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Xenomai и real-time
Непрочитанное сообщениеДобавлено: 31 мар 2018, 13:57 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10719
Откуда: Харьков
Olej писал(а):
(вообще то, документация скудная, рваная и не вовремя обновляемая).

Это, похоже, единственное внятное описание Adeos патча для ядра Linux, которое требует и использует Xenomai:
index : ipipe-noarch.git
Цитата:
author Philippe Gerum <rpm@xenomai.org> 2018-03-27 16:24:56 +0200
committer Philippe Gerum <rpm@xenomai.org> 2018-03-27 18:43:28 +0200

Которое они (Xenomai), похоже, начали писать только 3 дня назад (пока это только черновик).
Цитата:
The Interrupt Pipeline (aka I-pipe)


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Xenomai и real-time
Непрочитанное сообщениеДобавлено: 08 апр 2018, 12:34 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10719
Откуда: Харьков
Раз уж здесь затронуты вопросы real time, то здесь же уместно говорить о латентности разных событий + её тестировании :

1. латентность реакции на аппаратное прерывание, IRQ - дёргаем какой-то кнопкой IRQ и тестируем реакцию на каком-то I/O выходе ... например, средствами GPIO в Linux;

2. латентность эхо-ответа сетевого стека Ethernet/IP на поступление запроса;

3. временная равномерность последовательности событий ... например, отправки тех же Ethernet/IP пульсов через равные детерминированные интервалы времени;

Это очень любопытные вещи!
Аппаратчики (разработики устройств) иногда предполагают, что волшебные слова real time, RT, ... "серебряная пуля" ;-) - означают "быстрее": быстрее реакция на прерывание, быстрее доставка сетевого пакета UDP и т.п.
Это категорически не так ... от слова "с точностью до наоборот": real time - это, зачастую медленнее, ... например, микроядерные real time ОС QNX и др. при прочих равных медленнее, но реакции детерминированнее! Разброс, дисперсия времени реакции при большом числе повторений измерений меньше, и реакция обязательно завершается в определённый период времени.

Вот это и предстоит померять.
Но как?


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Xenomai и real-time
Непрочитанное сообщениеДобавлено: 08 апр 2018, 12:40 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10719
Откуда: Харьков
Olej писал(а):
Это очень любопытные вещи!
Аппаратчики (разработики устройств) иногда предполагают, что волшебные слова real time, RT, ... "серебряная пуля" ;-) - означают "быстрее": быстрее реакция на прерывание, быстрее доставка сетевого пакета UDP и т.п.
Это категорически не так ... от слова "с точностью до наоборот": real time - это, зачастую медленнее, ... например, микроядерные real time ОС QNX и др. при прочих равных медленнее, но реакции детерминированнее! Разброс, дисперсия времени реакции при большом числе повторений измерений меньше, и реакция обязательно завершается в определённый период времени.


Об этом всём как нельзя лучше рассказывают картинки (графики) в большенькой такой публикации How fast is fast enough? Choosing between Xenomai and Linux for real-time applications (Кембриджский университет).
(даже приложу файл, чтобы не потерялся)


Вложения:
1dbe38fb23034e80b8664d8281996d2a5ef6.pdf [1.2 МБ]
Скачиваний: 8
Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Xenomai и real-time
Непрочитанное сообщениеДобавлено: 08 апр 2018, 13:03 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10719
Откуда: Харьков
Olej писал(а):
2. латентность эхо-ответа сетевого стека Ethernet/IP на поступление запроса;

Это можно, в простейшем случае, посмотреть как клиент-серверную UDP пару, где:
- сервер только тупо но быстро ретранслирует пакет обратно клиенту;
- клиент шлёт серию с большой интенсивностью UDP-пакетов, содержащих значение своего аппаратного счётчика частоты процессора RDTSC ...
- получив обратно ретранслированный пакет, измеряет разницу из текущего RDTSC и извлечённого из тела пакета;
- это позволит вычислять задержки с наносекундной точностью;

Это грубо, но в 1-м приближении...
Вот как это выглядит при а). по localhost, б). исполнении клиента и сервера на разных процессорах/ядрах, в). при запуске процессов с приоритетами реал-тайм диспетчирования:
Код:
[olej@dell udptest]$ sudo chrt -f 70 taskset -c 0 ./udpserv -v
[sudo] пароль для olej:
прослушивается UDP порт 55555

[olej@dell udptest]$ sudo chrt -f 70 taskset -c 2 ./udpcli -v -t 100 -s 127.0.0.1
[sudo] пароль для olej:
server: 127.0.0.1, interval=100 мкс.
для нормального завершения: Ctrl+C!
результат счёта:
число пульсов = 368947
средняя задержка: 159485 тактов | 99.93 мкс.
с СКО отклонением = 37754.81 (23.7%)

[olej@dell udptest]$ sudo chrt -f 70 taskset -c 2 ./udpcli -v -t 20 -s 127.0.0.1
server: 127.0.0.1, interval=20 мкс.
для нормального завершения: Ctrl+C!
результат счёта:
число пульсов = 1984322
средняя задержка: 61578 тактов | 38.58 мкс.
с СКО отклонением = 12782.63 (20.8%)


Вложения:
udptest.2.tgz [9.75 КБ]
Скачиваний: 6
Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Xenomai и real-time
Непрочитанное сообщениеДобавлено: 08 апр 2018, 13:17 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10719
Откуда: Харьков
Olej писал(а):
3. временная равномерность последовательности событий ... например, отправки тех же Ethernet/IP пульсов через равные детерминированные интервалы времени;

Периодическую последовательность событий (например, отправки тех же Ethernet/IP пульсов) можно создать (синхронизировать), как вариант, от аппаратного таймера RTC.
Который можно запрограммировать на частоту периодических прерываний до 8192 hz:
Код:
[olej@dell udptest]$ sudo ./rtcser -r2000 
период RTC заказан 122.07 us [122070 ns]
допустимые пределы: 61035...244140 ns
накопление...   
число выбросов: вниз = 17 | вверх = 735
n=1248 : 38.41/99.33/152.92 us [+/-21.8%]

[olej@dell udptest]$ sudo ./rtcser -r2000 -f4096
период RTC заказан 244.14 us [244140 ns]
допустимые пределы: 122070...488280 ns
накопление...   
число выбросов: вниз = 2 | вверх = 46
n=1952 : 78.75/242.41/305.76 us [+/-8.4%]

[olej@dell udptest]$ sudo ./rtcser -r2000 -f6000
период RTC заказан 166.67 us [166666 ns]
допустимые пределы: 83333...333332 ns
накопление...   
число выбросов: вниз = 41 | вверх = 887
n=1072 : 55.97/102.20/208.77 us [+/-37.0%]

[olej@dell udptest]$ sudo ./rtcser -r2000 -f2048
период RTC заказан 488.28 us [488281 ns]
допустимые пределы: 244140...976562 ns
накопление...   
n=2000 : 370.34/488.06/610.34 us [+/-3.9%]

[olej@dell udptest]$ sudo ./rtcser -r2000 -f1024
период RTC заказан 976.56 us [976562 ns]
допустимые пределы: 488281...1953124 ns
накопление...   
n=2000 : 843.55/976.37/1110.87 us [+/-4.0%]
[olej@dell udptest]$ sudo ./rtcser -r2000 -f512
период RTC заказан 1953.12 us [1953125 ns]
допустимые пределы: 976562...3906250 ns
накопление...   
n=2000 : 1476.41/1952.87/2375.98 us [+/-1.6%]

[olej@dell udptest]$ sudo ./rtcser -r2000 -f256
период RTC заказан 3906.25 us [3906250 ns]
допустимые пределы: 1953125...7812500 ns
накопление...   
n=2000 : 3489.39/3906.00/4321.75 us [+/-0.9%]


Вложения:
rtcser.tgz [25.58 КБ]
Скачиваний: 7
Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Xenomai и real-time
Непрочитанное сообщениеДобавлено: 08 май 2018, 15:12 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10719
Откуда: Харьков
В итоге (опуская сделанные за это время опыты) ... будет вам realtime (с действительно очень хорошим детерминизмом), для этого:

1. пересобираем ядро Linux с патчем;
2. скачиваем, собираем и устанавливаем дистрибутив Xenomai (библиотеки, include и т.д.);
3. можем писать свои пользовательские приложения в нативном API Xenomai (это ранние наработки Xenomai);
4. можем писать realtime приложения в стандартном API POSIX, когда Xenomai маскирует многие системные вызовы Linux;
5. но если вам нужна обработка своих IRQ, драйвер собственных устройств (или не из числа немногих, реализуемых Xenomai) - то вам нужно писать собственные драйверы (kernel space), реализующие модель RTDM (RealTime Drivers Model);
4. точно так так же, для реализации realtime для Ethernet, TCP/IP, поскольку они сидят на IRQ от Ethernet адаптера, нужно использовать RTDM драйверы сетевых карт (которых совсем немного, около 10 моделей, в составе Xenomai);
5. и для обеспечения realtime для UDP/TCP они используют ещё один open-проект - RTnet, заменяющий способ доступа Ethernet к физ. среде на TDMA (каждый хост использует свой временной слот и не конкурирует за канал);

Всё это вместе очень непросто (в подготовке и использовании), но стоит того (по результатам тестирования).


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Xenomai и real-time
Непрочитанное сообщениеДобавлено: 08 май 2018, 15:39 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10719
Откуда: Харьков
Olej писал(а):
1. пересобираем ядро Linux с патчем;
2. скачиваем, собираем и устанавливаем дистрибутив Xenomai (библиотеки, include и т.д.);

Документация про это здесь: Installing Xenomai 3.x.

Сначала имеет скачать инсталляцию последней версии Xenomai.
Хотя начинать нужно со сборки ядра с патчем. Но для патченья используется скрипт из дистрибутива Xenomai (ещё до какой-то бы ни было установки Xenomai).
Выбираем версию Xenomai (последнюю?) с GIT здесь: index : xenomai-3.git.
Код:
olej@Cobalt ~/2018_WORKS/Triol $ git clone https://git.xenomai.org/xenomai-3.git
Клонирование в «xenomai-3»…
remote: Counting objects: 145000, done.
remote: Compressing objects: 100% (22853/22853), done.
remote: Total 145000 (delta 117817), reused 144843 (delta 117678)
Получение объектов: 100% (145000/145000), 339.91 MiB | 2.27 MiB/s, готово.
Определение изменений: 100% (117817/117817), готово.
Проверка соединения… готово.

Разархивирование:
Код:
olej@Cobalt ~/2018_WORKS/Triol $ tar -jxf xenomai-3-3.0.6.tar.bz2

olej@Cobalt ~/2018_WORKS/Triol $ du -hs xenomai-3-3.0.6
14M     xenomai-3-3.0.6

Конфигурирование:
Код:
$ cd xenomai-3
$ scripts/bootstrap
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'config'.
libtoolize: copying file 'config/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'config'.
libtoolize: copying file 'config/libtool.m4'
libtoolize: copying file 'config/ltoptions.m4'
libtoolize: copying file 'config/ltsugar.m4'
libtoolize: copying file 'config/ltversion.m4'
libtoolize: copying file 'config/lt~obsolete.m4'
configure.ac:81: installing 'config/compile'
configure.ac:67: installing 'config/config.guess'
configure.ac:67: installing 'config/config.sub'
configure.ac:69: installing 'config/install-sh'
configure.ac:106: installing 'config/missing'
demo/alchemy/Makefile.am: installing 'config/depcomp'

Если к этому месту всё произошло без ошибок, то вам повезло, если нет - то нужно установить из пакетной системы все требуемое для инструментария Autoconf:
Код:
$ sudo apt install git
...

Код:
$ sudo apt install autoconf
...

Код:
$ sudo apt install libtool-bin
...

Код:
$ sudo apt install automake
...

Код:
$ sudo apt install libltdl-dev
...


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
[ Time : 0.577s | 16 Queries | GZIP : On ]