У меня нет ответа, но вы можете найти один среди инструментов, примеров и ресурсов , написанных или перечисленных {{1 }} Брендан Грегг о команде perf
и ftrace и debugfs ядра Linux.
На моем Raspberry Pi эти инструменты были в пакете perf-tools-unstable
. Команда perf
фактически находилась в /usr/bin/perf_3.16
.
Представляет интерес обсуждение и тестового теста переключения контекста Бенуа Сигура, а также тест lat_ctx из довольно старого lmbench ] сюита.
Им может потребоваться некоторая работа для работы на Pi, например, с tsuna / contextwitch
. Я отредактировал timectxswws.c
get_iterations ()
на while (итерации * ws_pages * 4096UL , и удален
-march = native -mno-avx
из Makefile
.
Использование perf record
в течение 10 секунд на Pi по ssh при одновременном выполнении в спящем режиме .1; do echo hi; done
в другом ssh:
sudo timeout -10 perf_3.16 record -e context-switches -a
sudo perf_3.16 script -f time,pid,comm | less
дает следующий результат
sleep 29341 2703976.560357:
swapper 0 2703976.562160:
kworker/u8:2 29163 2703976.564901:
swapper 0 2703976.565737:
echo 29342 2703976.565768:
migration/3 19 2703976.567549:
sleep 29343 2703976.570212:
kworker/0:0 28906 2703976.588613:
rcu_preempt 7 2703976.609261:
sleep 29343 2703976.670674:
bash 29066 2703976.671654:
echo 29344 2703976.675065:
sshd 29065 2703976.675454:
swapper 0 2703976.677757:
предположительно показывает, когда произошло событие переключения контекста, для какого процесса.