From: Song Liu <songliubraving@fb.com>
To: <linux-kernel@vger.kernel.org>, <netdev@vger.kernel.org>
Cc: <acme@redhat.com>, <ast@kernel.org>, <daniel@iogearbox.net>,
<jolsa@kernel.org>, <kernel-team@fb.com>, <namhyung@kernel.org>,
<peterz@infradead.org>, Song Liu <songliubraving@fb.com>
Subject: [PATCH v2 perf,bpf 00/11] perf annotation of BPF programs
Date: Thu, 14 Feb 2019 15:56:24 -0800 [thread overview]
Message-ID: <20190214235624.2579307-1-songliubraving@fb.com> (raw)
Changes v1 to v2:
1. Fix compilation error with different feature-disassembler-four-args;
2. Fix a segfault in perf-record;
3. Split patches 5/9 and 6/9 so that perf_env changes and perf.data changes
are in separate patches.
This series enables annotation of BPF programs in perf.
perf tool gathers information via sys_bpf and (optionally) stores them in
perf.data as headers.
Patch 1/11 fixes a minor issue in kernel;
Patch 2/11 to 4/11 introduce new helper functions and use them in perf and
bpftool;
Patch 5/11 to 8/11 saves information of bpf program in perf_env;
Patch 9/11 adds --bpf-event options to perf-top;
Patch 10/11 enables annotation of bpf programs based on information
gathered in 5/11 to 8/11;
Patch 11/11 handles information of short living BPF program that are loaded
during perf-record or perf-top.
Commands tested during developments are perf-top, perf-record, perf-report,
and perf-annotate.
===================== Note on patch dependency ========================
This set has dependency in both bpf-next tree and tip/perf/core. Current
version is developed on bpf-next tree with the following commits
cherry-picked from tip/perf/core:
(from 1/10 to 10/10)
commit 76193a94522f ("perf, bpf: Introduce PERF_RECORD_KSYMBOL")
commit d764ac646491 ("tools headers uapi: Sync tools/include/uapi/linux/perf_event.h")
commit 6ee52e2a3fe4 ("perf, bpf: Introduce PERF_RECORD_BPF_EVENT")
commit df063c83aa2c ("tools headers uapi: Sync tools/include/uapi/linux/perf_event.h")
commit 9aa0bfa370b2 ("perf tools: Handle PERF_RECORD_KSYMBOL")
commit 45178a928a4b ("perf tools: Handle PERF_RECORD_BPF_EVENT")
commit 7b612e291a5a ("perf tools: Synthesize PERF_RECORD_* for loaded BPF programs")
commit a40b95bcd30c ("perf top: Synthesize BPF events for pre-existing loaded BPF programs")
commit 6934058d9fb6 ("bpf: Add module name [bpf] to ksymbols for bpf programs")
commit 811184fb6977 ("perf bpf: Fix synthesized PERF_RECORD_KSYMBOL/BPF_EVENT")
========================================================================
This set is also available at:
https://github.com/liu-song-6/linux/tree/bpf-annotation
Thanks!!
Song Liu (11):
perf, bpf: consider events with attr.bpf_event as side-band events
bpf: libbpf: introduce bpf_program__get_prog_info_linear()
bpf: bpftool: use bpf_program__get_prog_info_linear() in
prog.c:do_dump()
perf, bpf: synthesize bpf events with
bpf_program__get_prog_info_linear()
perf, bpf: save bpf_prog_info in a rbtree in perf_env
perf, bpf: save bpf_prog_info information as headers to perf.data
perf, bpf: save btf in a rbtree in perf_env
perf, bpf: save btf information as headers to perf.data
perf-top: add option --bpf-event
perf, bpf: enable annotation of bpf program
perf, bpf: save information about short living bpf programs
kernel/events/core.c | 3 +-
tools/bpf/bpftool/prog.c | 266 ++++++---------------------
tools/lib/bpf/libbpf.c | 251 +++++++++++++++++++++++++
tools/lib/bpf/libbpf.h | 63 +++++++
tools/lib/bpf/libbpf.map | 3 +
tools/perf/Makefile.config | 6 +-
tools/perf/builtin-record.c | 15 +-
tools/perf/builtin-top.c | 15 +-
tools/perf/util/annotate.c | 149 ++++++++++++++-
tools/perf/util/bpf-event.c | 354 +++++++++++++++++++++++++++---------
tools/perf/util/bpf-event.h | 48 ++++-
tools/perf/util/dso.c | 1 +
tools/perf/util/dso.h | 33 ++--
tools/perf/util/env.c | 148 +++++++++++++++
tools/perf/util/env.h | 17 ++
tools/perf/util/evlist.c | 20 ++
tools/perf/util/evlist.h | 2 +
tools/perf/util/header.c | 231 ++++++++++++++++++++++-
tools/perf/util/header.h | 2 +
tools/perf/util/symbol.c | 1 +
20 files changed, 1316 insertions(+), 312 deletions(-)
--
2.17.1
next reply other threads:[~2019-02-14 23:56 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-14 23:56 Song Liu [this message]
2019-02-14 23:58 ` [PATCH v2 perf,bpf 01/11] perf, bpf: consider events with attr.bpf_event as side-band events Song Liu
2019-02-15 14:14 ` Arnaldo Carvalho de Melo
2019-02-15 17:02 ` Song Liu
2019-02-15 18:04 ` Arnaldo Carvalho de Melo
2019-02-15 0:00 ` [PATCH v2 perf,bpf 02/11] bpf: libbpf: introduce bpf_program__get_prog_info_linear() Song Liu
2019-02-15 0:00 ` [PATCH v2 perf,bpf 03/11] bpf: bpftool: use bpf_program__get_prog_info_linear() in prog.c:do_dump() Song Liu
2019-02-15 0:00 ` [PATCH v2 perf,bpf 04/11] perf, bpf: synthesize bpf events with bpf_program__get_prog_info_linear() Song Liu
2019-02-15 0:00 ` [PATCH v2 perf,bpf 05/11] perf, bpf: save bpf_prog_info in a rbtree in perf_env Song Liu
2019-02-15 14:21 ` Arnaldo Carvalho de Melo
2019-02-15 17:04 ` Song Liu
2019-02-15 0:00 ` [PATCH v2 perf,bpf 06/11] perf, bpf: save bpf_prog_info information as headers to perf.data Song Liu
2019-02-15 0:00 ` [PATCH v2 perf,bpf 07/11] perf, bpf: save btf in a rbtree in perf_env Song Liu
2019-02-15 14:30 ` Arnaldo Carvalho de Melo
2019-02-15 0:00 ` [PATCH v2 perf,bpf 08/11] perf, bpf: save btf information as headers to perf.data Song Liu
2019-02-15 14:26 ` Arnaldo Carvalho de Melo
2019-02-15 17:25 ` Song Liu
2019-02-15 17:40 ` Arnaldo Carvalho de Melo
2019-02-15 17:47 ` Song Liu
2019-02-15 18:20 ` Arnaldo Carvalho de Melo
2019-02-15 18:59 ` Song Liu
2019-02-15 0:00 ` [PATCH v2 perf,bpf 09/11] perf-top: add option --bpf-event Song Liu
2019-02-15 14:27 ` Arnaldo Carvalho de Melo
2019-02-15 17:06 ` Song Liu
2019-02-15 18:05 ` Arnaldo Carvalho de Melo
2019-02-15 0:00 ` [PATCH v2 perf,bpf 10/11] perf, bpf: enable annotation of bpf program Song Liu
2019-02-15 0:00 ` [PATCH v2 perf,bpf 11/11] perf, bpf: save information about short living bpf programs Song Liu
2019-02-15 14:41 ` Arnaldo Carvalho de Melo
2019-02-15 17:13 ` Song Liu
2019-02-15 18:09 ` Arnaldo Carvalho de Melo
2019-02-15 18:13 ` Song Liu
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=20190214235624.2579307-1-songliubraving@fb.com \
--to=songliubraving@fb.com \
--cc=acme@redhat.com \
--cc=ast@kernel.org \
--cc=daniel@iogearbox.net \
--cc=jolsa@kernel.org \
--cc=kernel-team@fb.com \
--cc=linux-kernel@vger.kernel.org \
--cc=namhyung@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=peterz@infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).