Re: [PATCH v7 perf, bpf-next 8/8] perf tools: synthesize PERF_RECORD_* for loaded BPF programs
From: Song Liu <hidden>
Date: 2019-01-11 19:24:36
Also in:
lkml
On Jan 11, 2019, at 10:44 AM, Arnaldo Carvalho de Melo [off-list ref] wrote: Em Thu, Jan 10, 2019 at 04:19:33PM -0800, Song Liu escreveu:quoted
This patch synthesize PERF_RECORD_KSYMBOL and PERF_RECORD_BPF_EVENT for BPF programs loaded before perf-record. This is achieved by gathering information about all BPF programs via sys_bpf. Signed-off-by: Song Liu <redacted> --- tools/perf/builtin-record.c | 6 ++ tools/perf/util/bpf-event.c | 205 ++++++++++++++++++++++++++++++++++++ tools/perf/util/bpf-event.h | 5 + 3 files changed, 216 insertions(+)diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index deaf9b902094..88ea11d57c6f 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c@@ -41,6 +41,7 @@#include "util/perf-hooks.h" #include "util/time-utils.h" #include "util/units.h" +#include "util/bpf-event.h" #include "asm/bug.h" #include <errno.h>@@ -1082,6 +1083,11 @@ static int record__synthesize(struct record *rec, bool tail)return err; } + err = perf_event__synthesize_bpf_events(tool, process_synthesized_event, + machine, opts); + if (err < 0) + pr_warning("Couldn't synthesize bpf events.\n"); +There should be no warnings on older systems, I build a kernel and tools with your changes and then, before rebooting, I tried: [root@quaco ~]# perf record ls Couldn't synthesize bpf events. <SNIP> [root@quaco ~]# uname -a Linux quaco 4.19.13-300.fc29.x86_64 #1 SMP Sat Dec 29 22:54:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [root@quaco ~]# At most this should be a pr_debug(), but then it should check if the system is bpf capable and if not only warn if the user explicitely asked for bpf events.
Thanks Arnaldo! I will fix it in the next version. Song