Проверка процесса пользовательского пространства с помощью systemtap поверх ebpf begin probe не работает

Я пытаюсь исследовать процесс пользовательского пространства с помощью зонда begin, который, похоже, ничего не делает.

начало.stp:

probe process("a.out").begin {
   printf("%s %d\n", execname(), pid())
}

выход стп:

[root@RHEL8 ~]# stap --bpf    -v ~/begin.stp
Pass 1: parsed user script and 56 library scripts using 203356virt/48420res/12256shr/36024data kb, in 100usr/10sys/114real ms.
Pass 2: analyzed script: 2 probes, 3 functions, 0 embeds, 1 global using 204676virt/50128res/12392shr/37344data kb, in 10usr/10sys/11real ms.
Pass 3: pass skipped for stapbpf runtime in 0usr/0sys/0real ms.
Pass 4: compiled BPF into "stap_30984.bo" in 0usr/0sys/2real ms.
Pass 5: starting run.

При смене зонда на функцию main() вроде работает:

функция.stp

probe process("a.out").function("main") {
   printf("%s %d\n", execname(), pid())
}

стэп выход:

[root@RHEL8 ~]# stap --bpf    -v ~/222.stp
Pass 1: parsed user script and 56 library scripts using 203356virt/48364res/12200shr/36024data kb, in 290usr/50sys/404real ms.
Pass 2: analyzed script: 2 probes, 3 functions, 0 embeds, 1 global using 204676virt/50996res/13068shr/37344data kb, in 20usr/0sys/25real ms.
Pass 3: pass skipped for stapbpf runtime in 0usr/0sys/0real ms.
Pass 4: compiled BPF into "stap_31782.bo" in 0usr/0sys/3real ms.
Pass 5: starting run.
a.out 31806
a.out 31821
a.out 31827
a.out 31831

пошаговая версия

[root@RHEL8 ~]# stap --version
Systemtap translator/driver (version 4.2/0.178, rpm 4.2-6.el8)
Copyright (C) 2005-2019 Red Hat, Inc. and others
This is free software; see the source for copying conditions.
tested kernel versions: 2.6.32 ... 5.4-rc6
enabled features: AVAHI BOOST_STRING_REF DYNINST BPF JAVA PYTHON3 LIBRPM LIBSQLITE3 LIBVIRT LIBXML2 NLS NSS READLINE

person Eytan Naim    schedule 12.07.2020    source источник
comment
Видя, что у вас уже есть обходной путь, в чем здесь проблема? Если вы ожидали, что он будет работать с .begin, но это не так, возможно, попробуйте отладить его (я бы начал с strace -e bpf в двух версиях, чтобы увидеть, есть ли разница) или отправить отчет об ошибке, чтобы приостановить работу?   -  person Qeole    schedule 13.07.2020
comment
На самом деле, разработчик systemtap сказал мне, что это, похоже, пробел в поддержке bpf, и они должны по крайней мере выдать какое-то предупреждение.   -  person Eytan Naim    schedule 14.07.2020


Ответы (1)


Посоветовавшись с разработчиками системного крана, они обнаружили новую ошибку.

http://sourceware-org.1504.n7.nabble.com/Bug-bpf-26234-New-utrace-derived-probes-and-others-being-silently-ignored-by-bpf-backend-td642492.html

person Eytan Naim    schedule 14.07.2020