Как стать автором
Обновить

Комментарии 11

Спасибо, можно еще?
Конечно, можно. Я скоро буду ковырять сам perf, думаю что-нибудь про него написать.
программа perf. С её помощью можно посмотреть, какие железные события нам доступны.

perf list hw cache работает с фиксированным набором типов событий и выводит только подмножество событий, для которых архитектура предоставляет мэппинг. Но делать по этому списку вывод о богатстве возможностей аппаратных перфкаунтеров архитектуры неправильно. Полный доступ к аппаратной функциональности можно получить через raw события.
perf сложновато запустить на системах виртуализации типа xen, т.к. хостовая система может иметь кустомное ядро.
Не удивительно, что есть трассировщики, для kernel thread ведь создается task_struct, где есть состояние TASK_TRACED. А так да, принтами трейсить — не очень изящное решение.
TASK_TRACED — это для отладчиков, см. lwn.net/Articles/100092
Ни один из перечисленных в статье механизмов не использует ptrace.
Прошу прощения за такой рекламный коментарий, но чтобы было удобнее пользоваться результатами собранными perf, можно использовать 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 в качестве коллектора. В общем инструменты интегрированы.
НЛО прилетело и опубликовало эту надпись здесь
Valgrind — это динамический отладчик для пользовательских приложений, про него информации уйма, в том числе на хабре. Про остальное я впервые слышу и не могу ничего нагуглить. Можно поподробнее, что такое NOP и SWAP?
НЛО прилетело и опубликовало эту надпись здесь
Начиная с 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


Зарегистрируйтесь на Хабре, чтобы оставить комментарий