Отслеживание определенных тем Xenomai: по имени Патерн? - PullRequest
0 голосов
/ 05 апреля 2019

Основная проблема проста: у меня есть приложение реального времени (на основе API Xenomai), которое отвечает за периодический запуск списка исполняемых файлов.Моя цель состоит в том, чтобы контролировать общее выполнение, чтобы увидеть, соответствуют ли эти задачи их срокам, измерить время их выполнения и т. Д. Для проведения некоторого статистического анализа.

Проблема заключается в мониторинге и регистрации этой информации:Я не могу найти, как регистрировать конкретно эти процессы (т. Е. Не все потоки Linux, так как мне нужно запустить тест в течение как минимум 30 минут: слишком много данных ...!) с внешнимспециальный инструмент .

Мой второй вариант - реализовать это непосредственно на моем программном обеспечении, но я не знаю, как это сделать, чтобы избежать недопустимых накладных расходов (помните: яделаю в режиме реального времени).Но, эй, это план B, и он будет задан только в том случае, если текущий вопрос не найдет решения. :)

То, что я уже пробовал

Моими первыми мыслями было использование ftrace с инструментом trace-cmd.Однако у меня есть несколько проблем:

  • Если я запускаю свое приложение с командной строкой trace-cmd

     sudo trace-cmd record -e all -F ./Application.out -c
    

, Xenomai не любитsudo и все заблокировано (первое запущенное задание блокируется и продолжает выполняться ...).

  • Если я запускаю свое приложение с одной стороны, а затем прикрепляю к нему ftrace

    trace-cmd record -e all -P [taskPID] -c
    

, мне удается заставить все работать ... но когда я подключен к нему с помощью PID, мне не удается контролировать все созданные подзадачи, и я получаю толькоосновной след приложения ..!

  • Единственный способ контролировать все - это избавиться от " -P [taskPID] -c ", но затем я отслеживаю все, и мой файл достигает Go за считанные минуты ... ОтНа этом этапе я пытаюсь выяснить, могу ли я использовать фильтр на моем trace-cmd, чтобы использовать последнюю опцию, но фильтровать задачи, чтобы отследить только ту, имя потока которой начинается, например, с «RT_», ноЯ не могу найти это ... и в целом ftrace, кажется, не отвечает моим потребностям на этой стороне.

Итак, в двух словах: 1) Любая подсказка некоторых вариантов ftraceЯ мог бы использовать, чтобы получить данные, которые мне нужны?2) Если нет, любой другой инструмент может это сделать?Я тоже видел Strace, но, похоже, у меня будут точно такие же проблемы ... 3) Если нет, то единственный ли вариант - действительно ли выполнить все измерения внутри моего приложения, и, следовательно, я должен создать еще один вопрос, чтобы увидеть лучшиеспособ сделать это ..? (надеюсь, мы не доберемся до пункта 3) ..!)

Заранее благодарим за любую помощь!

...