From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Song Liu <songliubraving@fb.com>
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
peterz@infradead.org, ast@kernel.org, daniel@iogearbox.net,
kernel-team@fb.com, dsahern@gmail.com
Subject: Re: [PATCH v7 perf, bpf-next 0/8] reveal invisible bpf programs
Date: Fri, 11 Jan 2019 13:26:56 -0300 [thread overview]
Message-ID: <20190111162656.GY22483@kernel.org> (raw)
In-Reply-To: <20190111001933.4153792-1-songliubraving@fb.com>
Em Thu, Jan 10, 2019 at 04:19:25PM -0800, Song Liu escreveu:
> This set catches symbol for all bpf programs loaded/unloaded
> before/during/after perf-record run PERF_RECORD_KSYMBOL and
> PERF_RECORD_BPF_EVENT.
>
> PERF_RECORD_KSYMBOL and PERF_RECORD_BPF_EVENT includes key information
> of a bpf program load and unload. They are sent through perf ringbuffer,
> and stored in perf.data. PERF_RECORD_KSYMBOL includes basic information
> for simple profiling. It is ON by default. PERF_RECORD_BPF_EVENT is
> used to gather more information of the bpf program. It is necessary for
> perf-annotate of bpf programs.
>
> Before this patch, perf-report will not be able to recover symbols of
> bpf programs once the programs are unloaded.
>
> This is to follow up Alexei's early effort [2] to show bpf programs via
> mmap events.
>
> Thanks,
> Song
>
> Changes v6 -> PATCH v7:
> 1. Split "[3/7] introduce PERF_RECORD_BPF_EVENT" into two commits:
> [3/8] introduce PERF_RECORD_BPF_EVENT
> [5/8] emit PERF_RECORD_KSYMBOL for BPF program load/unload
Thanks, I'm trying now to build a kernel/tools combo to test this.
> Changes v5 -> PATCH v6:
> 1. Reduce len in PERF_RECORD_KSYMBOL from u64 to u32. Use the 32 free bits
> for ksym_type (u16) and flags (u16).
>
> Changes v4 -> PATCH v5:
> 1. Fixed build error reported by kbuild test bot.
>
> Changes v3 -> PATCH v4:
> 1. Split information about bpf program into PERF_RECORD_KSYMBOL (with
> name, addr, len); and PERF_RECORD_BPF_EVENT PERF_RECORD_BPF_EVENT
> (with id, tag);
> 2. Split the implementation in kernel and user space.
>
> Changes v2 -> PATCH v3:
> 1. Rebase on bpf-next tree, and on top of BPF sub program tag patches [1]
> for latest information in bpf_prog_info.
> 2. Complete handling and synthesizing PERF_RECORD_BPF_EVENT in perf.
>
> Changes v1 -> PATCH v2:
> 1. Only 3 of the 5 patches in v1, to focus on ABI first;
> 2. Generate PERF_RECORD_BPF_EVENT per bpf sub program instead of per prog;
> 3. Modify PERF_RECORD_BPF_EVENT with more details (addr, len, name),
> so that it can be used for basic profiling without calling sys_bpf.
>
> Changes RFC -> PATCH v1:
> 1. In perf-record, poll vip events in a separate thread;
> 2. Add tag to bpf prog name;
> 3. Small refactorings.
>
> [1] https://patchwork.ozlabs.org/project/netdev/list/?series=81037
> [2] https://www.spinics.net/lists/netdev/msg524232.html
>
> Song Liu (8):
> perf, bpf: Introduce PERF_RECORD_KSYMBOL
> sync tools/include/uapi/linux/perf_event.h
> perf, bpf: introduce PERF_RECORD_BPF_EVENT
> sync tools/include/uapi/linux/perf_event.h
> perf, bpf: emit PERF_RECORD_KSYMBOL for BPF program load/unload
> perf util: handle PERF_RECORD_KSYMBOL
> perf util: handle PERF_RECORD_BPF_EVENT
> perf tools: synthesize PERF_RECORD_* for loaded BPF programs
>
> include/linux/filter.h | 7 +
> include/linux/perf_event.h | 19 +++
> include/uapi/linux/perf_event.h | 53 ++++++-
> kernel/bpf/core.c | 2 +-
> kernel/bpf/syscall.c | 2 +
> kernel/events/core.c | 218 ++++++++++++++++++++++++-
> tools/include/uapi/linux/perf_event.h | 53 ++++++-
> tools/perf/builtin-record.c | 7 +
> tools/perf/perf.h | 1 +
> tools/perf/util/Build | 2 +
> tools/perf/util/bpf-event.c | 220 ++++++++++++++++++++++++++
> tools/perf/util/bpf-event.h | 16 ++
> tools/perf/util/event.c | 41 +++++
> tools/perf/util/event.h | 36 +++++
> tools/perf/util/evsel.c | 19 +++
> tools/perf/util/evsel.h | 2 +
> tools/perf/util/machine.c | 60 +++++++
> tools/perf/util/machine.h | 3 +
> tools/perf/util/session.c | 8 +
> tools/perf/util/tool.h | 5 +-
> 20 files changed, 769 insertions(+), 5 deletions(-)
> create mode 100644 tools/perf/util/bpf-event.c
> create mode 100644 tools/perf/util/bpf-event.h
>
> --
> 2.17.1
--
- Arnaldo
prev parent reply other threads:[~2019-01-11 16:27 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-11 0:19 [PATCH v7 perf, bpf-next 0/8] reveal invisible bpf programs Song Liu
2019-01-11 0:19 ` Song Liu
2019-01-11 0:19 ` [PATCH v7 perf, bpf-next 1/8] perf, bpf: Introduce PERF_RECORD_KSYMBOL Song Liu
2019-01-11 0:19 ` [PATCH v7 perf, bpf-next 2/8] sync tools/include/uapi/linux/perf_event.h Song Liu
2019-01-11 0:19 ` [PATCH v7 perf, bpf-next 3/8] perf, bpf: introduce PERF_RECORD_BPF_EVENT Song Liu
2019-01-11 0:19 ` [PATCH v7 perf, bpf-next 4/8] sync tools/include/uapi/linux/perf_event.h Song Liu
2019-01-11 0:19 ` [PATCH v7 perf, bpf-next 5/8] perf, bpf: emit PERF_RECORD_KSYMBOL for BPF program load/unload Song Liu
2019-01-11 0:19 ` [PATCH v7 perf, bpf-next 6/8] perf util: handle PERF_RECORD_KSYMBOL Song Liu
2019-01-14 17:11 ` Arnaldo Carvalho de Melo
2019-01-15 17:56 ` Arnaldo Carvalho de Melo
2019-01-15 19:58 ` Song Liu
2019-01-11 0:19 ` [PATCH v7 perf, bpf-next 7/8] perf util: handle PERF_RECORD_BPF_EVENT Song Liu
2019-01-14 17:12 ` Arnaldo Carvalho de Melo
2019-01-11 0:19 ` [PATCH v7 perf, bpf-next 8/8] perf tools: synthesize PERF_RECORD_* for loaded BPF programs Song Liu
2019-01-11 18:44 ` Arnaldo Carvalho de Melo
2019-01-11 19:23 ` Song Liu
2019-01-11 16:26 ` Arnaldo Carvalho de Melo [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190111162656.GY22483@kernel.org \
--to=acme@kernel.org \
--cc=ast@kernel.org \
--cc=daniel@iogearbox.net \
--cc=dsahern@gmail.com \
--cc=kernel-team@fb.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=songliubraving@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.