Повысить приоритет основного потока io-pkt можно с помощью опции -P, однако для этого потребуется версия io-pkt из QNX 6.5 SP1.
Спасибо, буду пробовать.
Советую разобраться и однозначно определить кто именно вызывает задержку. Исключить из системы всё лишнее и последовательно запускать только необходимые драйверы устройств. Сильно помочь в этом может сбор системной трассы событий (Kernel Event Trace) с помощью IDE или tracelogger.
Трассу собирал через IDE, правда в тестирование сети вмешивается qconn. Из трассы следовало, что на 5 прерывании висели io-pkt и io-usb, io-usb я отключил через slay. Однако, это не помогло. Также io-pkt находится на нулевом прерывании вместе с procnto-smp-inst. Устройства ввода/вывода (клавиатура и тачпад), которые вносят эти задержки находятся на отдельном прерывании.
Вполне вероятно, что задержку может вызывать прерывание от периферии (USB, графика и т.п. вплоть до NMI). Ситуация будет хуже если одно прерывание делится между различными устройствами, например сетью и USB. В этом случае, стоит проверить версию образа с startup-apic и отключить в настройках BIOS всё лишнее (USB legacy и т.п.)
Про данную утилиту ничего не знаю, да и с qnx всего 2 недели знаком, буду разбираться. USB legacy отключил. Хотя отключение io-usb наверное более эффективно.
Если вытеснение происходит всё-таки на уровне прикладных потоков, а не обработчиков прерываний, то можно подключить адаптивный планировщик aps (Adaptive Partitioning) и выделить вашему приложению и io-pkt гарантированный бюджет процессорного времени.
Спасибо за наводку, буду пробовать.
Еще отмечу, что системный тик установлен в 10 мкс, при его увеличении до 50 мкс ситуация немного улучшилась, задежки в среднем стали меньше, по крайней мере при работе в Photon. В Qt почти тоже самое осталось.