Почему systemtap не генерирует вывод, необходимый для создания пламенного графика?

Почему при выполнении stap для генерации данных пламенного графа в моем файле out.stap-stack отсутствуют данные процесса?

  • ОС: RHEL 5.10.0.2
  • Ядро: 2.6.18-371.11.1.el5
  • СистемныйTap: 1.8-6.el5

Установленные пакеты:

системаtap-sdt-devel-1.8-6.el5

системаtap-devel-1.8-6.el5

системаtap-devel-1.8-6.el5

systemtap-runtime-1.8-6.el5

системаtap-sdt-devel-1.8-6.el5

системный тап-1.8-6.el5

системный тап-инитскрипт-1.8-6.el5

systemtap-клиент-1.8-6.el5

systemtap-сервер-1.8-6.el5

systemtap-testsuite-1.8-6.el5

ядро-разработка-2.6.18-371.11.1.el5

ядро-отладка-devel-2.6.18-371.11.1.el5

Используемая команда:

stap -s 32 -D MAXBACKTRACE=100 -D MAXSTRINGLEN=4096 -D MAXMAPENTRIES=10240 \
    -D MAXACTION=10000 -D STP_OVERLOAD_THRESHOLD=5000000000 --all-modules \
    -ve 'global s; probe timer.profile { s[backtrace()] <<< 1; } 
    probe end { foreach (i in s+) { print_stack(i);
    printf("\t%d\n", @count(s[i])); } } probe timer.s(60) { exit(); }' \
    > out.stap-stacks

Пример файла out.stap-stacks:

0xffffffff8000e81a 0x0 1 0xffffffff8004ab87 0x0 1 0xffffffff8025d15d 0x0 1 0xffffffff80239356 0x0 1 0xffffffff8004219a 0x0 1 0xffffffff8000ca32 0x0 1 0xffffffff8003214e 0x0 1 0xffffffff80013bc8 0x0 1 0xffffffff80232d41 0x0 1 0xffffffff8001a4ca 0x0 1 0xffffffff80011db5 0x0 1 0xffffffff8004aad2 0x0 1 0xffffffff800ec8bb 0x0 1 0xffffffff8003ead5 0x0 1 0xffffffff80234c43 0x0


person Matthew Beason    schedule 02.09.2015    source источник


Ответы (1)


Функция backtrace() ограничена обратными трассировками пространства ядра, а print_stack() сопоставляет только адреса пространства ядра с символами. (Я не могу объяснить, почему адреса 0xffffffff8* не были преобразованы в символы; может быть, это какая-то комбинация древнего systemtap и древнего ядра?)

Если вы хотите также распечатать данные обратной трассировки пользовательского пространства, вам нужно будет использовать семейство u* функций, связанных с обратной трассировкой.

См. также https://sourceware.org/systemtap/examples/#profiling/pf4.stp для аналогичного скрипта, включающего работу с пользовательским пространством.

person fche    schedule 05.09.2015