Мониторинг переключения контекста - PullRequest
2 голосов
/ 26 мая 2010

Я хотел бы отслеживать поведение переключения контекста в многопоточном приложении pthread.

В других ОС RTOS (ОС Micro C) я смог зарегистрировать обратный вызов переключения контекста для каждого потока в приложении, а затем войти (или переключить gpio) и наблюдать переключение контекста потока в реальном времени. Это был ценный инструмент для отладки поведения в реальном времени и взаимодействия нескольких потоков.

Моя текущая среда - встроенный Linux, использующий API pthread. Есть ли способ контролировать каждый из переключателей контекста?

1 Ответ

2 голосов
/ 27 мая 2010

Не так, как вы описываете, однако существуют различные инструменты профилирования для Linux, такие как oprofile, SystemTap и perf events, хотя я не уверен, насколько хорошо они вписались бы во встроенную разработку.

РЕДАКТИРОВАТЬ: perf, вероятно, лучше (если вы используете достаточно свежее ядро, чтобы использовать его), так как оно в основной строке, так что вам просто нужно включить его, и это действительно просто.

РЕДАКТИРОВАТЬ: если ни один из них не работает для вас, вы всегда можете изменить код переключения контекста ядра ...

РЕДАКТИРОВАТЬ: я пропустил одну из платформ трассировки, есть также LTTng

Если вы используете busybox и можете скомпилировать свое собственное ядро, возможно, perf - это самый минимальный путь, он состоит из включения событий perf в ядре и компиляции инструмента perf, который поставляется с исходным кодом ядра (он есть в tools / перфорация)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...