Comments 11
Спасибо, можно еще?
+5
программа perf. С её помощью можно посмотреть, какие железные события нам доступны.
perf list hw cache работает с фиксированным набором типов событий и выводит только подмножество событий, для которых архитектура предоставляет мэппинг. Но делать по этому списку вывод о богатстве возможностей аппаратных перфкаунтеров архитектуры неправильно. Полный доступ к аппаратной функциональности можно получить через raw события.
0
Не удивительно, что есть трассировщики, для kernel thread ведь создается task_struct, где есть состояние TASK_TRACED. А так да, принтами трейсить — не очень изящное решение.
+1
TASK_TRACED — это для отладчиков, см. lwn.net/Articles/100092
Ни один из перечисленных в статье механизмов не использует ptrace.
Ни один из перечисленных в статье механизмов не использует ptrace.
+1
Прошу прощения за такой рекламный коментарий, но чтобы было удобнее пользоваться результатами собранными perf, можно использовать VTune, который отобразит ивенты не только относительно всей системы, но и относительно вашего модуля, функции, строчки кода или ассемблерных интрукций, по выбору. Плюс куча инструментария для анализа производительности приложения применима и к perf-трассам.
Кроме того, можно импортировать результаты коллекции ивентов собранных с perf, например:
Импортируем в VTune GUI или command line:
Так же можно и прямо запустить профилировку в VTune с использованием perf в качестве коллектора. В общем инструменты интегрированы.
Кроме того, можно импортировать результаты коллекции ивентов собранных с perf, например:
>perf record -o< trace_file_name>.perf -e cpu-cycles,instructions <application_to_launch>
Импортируем в VTune GUI или command line:
>amplxe-cl -import my_profile.perf -source-search-dir <PATH>
Так же можно и прямо запустить профилировку в VTune с использованием perf в качестве коллектора. В общем инструменты интегрированы.
+1
UFO just landed and posted this here
Начиная с 3.5 в ядре Linux появились uprobe'ы, то есть фактически аналог kprobe для userspace'а. Они тоже местами весьма полезны:
Пример использования uprobe с perf
# perf probe -x /bin/bash 'readline%return +0($retval):string' Added new event: probe_bash:readline (on readline%return in /bin/bash with +0($retval):string) You can now use it in all perf tools, such as: perf record -e probe_bash:readline -aR sleep 1 # perf record -e probe_bash:readline -a ^C[ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.259 MB perf.data (2 samples) ] # perf script bash 26239 [003] 283194.152199: probe_bash:readline: (48db60 <- 41e876) arg1="ls -l" bash 26239 [003] 283195.016155: probe_bash:readline: (48db60 <- 41e876) arg1="date" # perf probe --del probe_bash:readline Removed event: probe_bash:readline
0
Sign up to leave a comment.
Механизмы профилирования Linux