Re: [PATCH 00/14] bpf: Add trampoline and dispatcher to /proc/kallsyms
From: Jiri Olsa <hidden>
Date: 2020-02-13 16:23:58
Also in:
bpf
Subsystem:
performance events subsystem, the rest · Maintainers:
Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo, Namhyung Kim, Linus Torvalds
On Mon, Feb 10, 2020 at 04:51:08PM +0100, Björn Töpel wrote:
On Sat, 8 Feb 2020 at 16:42, Jiri Olsa [off-list ref] wrote:quoted
hi, this patchset adds trampoline and dispatcher objects to be visible in /proc/kallsyms. The last patch also adds sorting for all bpf objects in /proc/kallsyms.Thanks for working on this! I'm probably missing something with my perf setup; I've applied your patches, and everything seem to work fine from an kallsyms perspective: # grep bpf_dispatcher_xdp /proc/kallsyms ... ffffffffc0511000 t bpf_dispatcher_xdp [bpf] However, when I run # perf top I still see the undecorated one: 0.90% [unknown] [k] 0xffffffffc0511037 Any ideas?
heya,
the code is little rusty and needs some fixing :-\
with the patch below on top of Arnaldo's perf/urgent branch,
there's one workaround for now:
# perf record --vmlinux /proc/kallsyms
^C[ perf record: Woken up 0 times to write data ]
[ perf record: Captured and wrote 18.954 MB perf.data (348693 samples) ]
# perf report --kallsyms /proc/kallsyms | grep bpf_trampoline_13795
0.01% sched-messaging kallsyms [k] bpf_trampoline_13795
0.00% perf kallsyms [k] bpf_trampoline_13795
0.00% :47547 kallsyms [k] bpf_trampoline_13795
0.00% :47546 kallsyms [k] bpf_trampoline_13795
0.00% :47544 kallsyms [k] bpf_trampoline_13795
with recent kcore/vmlinux changes we neglected kallsyms fallback,
I'm preparing changes that will detect and use it automaticaly
jirka
---diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index fb5c2cd44d30..463ada5117f8 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c@@ -742,6 +742,7 @@ static int machine__process_ksymbol_register(struct machine *machine, map->start = event->ksymbol.addr; map->end = map->start + event->ksymbol.len; maps__insert(&machine->kmaps, map); + dso__set_loaded(dso); } sym = symbol__new(map->map_ip(map, map->start),