reproduced on current c93a19aaf3f7eae9d6c9070309cc785c18575767
$ doas ./btrfsslower
libbpf: prog 'file_read_entry': failed to create kprobe 'btrfs_file_read_iter+0x0' perf event: No such file or directory
failed to attach kprobe: -2
failed to attach BPF programs: -2
$ doas cat /proc/kallsyms | grep btrfs_file_read_iter
ffffffffc142eb60 t btrfs_file_read_iter.llvm.3433979326929198294 [btrfs]
..but this fix is not involved in the codepath that at least *slower takes (all *slower tools fail like this), so there must be something else too.
i don't know what else to debug (most tools work fine, the manual bcc btrfsslower.py works if you replace the symbol name with the full name from kallsyms, ..) so i assume there is just something that is missing this suffix handling.
reproduced on current c93a19aaf3f7eae9d6c9070309cc785c18575767
as far as i can tell this is because the symbols contain the llvm suffix which is what happens when
CONFIG_LTO_CLANG_THIN=y
. libbpf seems to have a similar fix for something like this https://github.com/libbpf/libbpf/commit/d2f83fb976fb4685fdec174ea5be57ae38bb960c..but this fix is not involved in the codepath that at least
*slower
takes (all*slower
tools fail like this), so there must be something else too.i don't know what else to debug (most tools work fine, the manual bcc
btrfsslower.py
works if you replace the symbol name with the full name from kallsyms, ..) so i assume there is just something that is missing this suffix handling.the tail of an strace looks like
if you want a full one (-s 1000000), here you go (26M) https://img.ayaya.dev/g12f7mUpOvSP
in case some kernel feature is missing, this is the full Kconfig: https://img.ayaya.dev/rowG70D7QFK8