From: Wang Nan <wangnan0@huawei.com>
To: <acme@redhat.com>, <ast@plumgrid.com>,
<masami.hiramatsu.pt@hitachi.com>, <namhyung@kernel.org>
Cc: <a.p.zijlstra@chello.nl>, <brendan.d.gregg@gmail.com>,
<daniel@iogearbox.net>, <dsahern@gmail.com>, <hekuang@huawei.com>,
<jolsa@kernel.org>, <lizefan@huawei.com>, <paulus@samba.org>,
<wangnan0@huawei.com>, <xiakaixu@huawei.com>, <pi3orama@163.com>,
<linux-kernel@vger.kernel.org>
Subject: [GIT PULL 00/27] perf tools: filtering events using eBPF programs
Date: Sun, 6 Sep 2015 07:13:16 +0000 [thread overview]
Message-ID: <1441523623-152703-1-git-send-email-wangnan0@huawei.com> (raw)
(I forget to CC mailing list when sending previous pull req. Sorry for the noisy.)
Hi Arnaldo,
I rebased my code on your perf/core and send a new pull request. You
can find main changes in the tag message. The most biggest changes
are the resesigning of dummy placeholder and the new testcase for BPF
prologue. They are patch 10, patch 11, patch 26 and patch 27. Please
have a look at them.
The following changes since commit 0959e527b1593e662cb99639a587eac39ea1232d:
perf stat: Move sw clock metrics printout to stat-shadow (2015-09-04 20:30:01 -0300)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/pi3orama/linux tags/perf-ebpf-for-acme
for you to fetch changes up to 3af1c7f44478d1545f202bd0054e767d3f0f8130:
perf test: Test BPF prologue (2015-09-06 06:10:12 +0000)
----------------------------------------------------------------
BPF related bugfix and improve
1. Enforce the assumption that event parser never return empty list.
2. Reuse code and API from kernel's regs_query_register_offset().
3. Totally redesign dummy placeholder. Reuse existing dummy event instead
of creating a new one.
4. Introduce new testcases, test LLVM kbuild searching and BPF prologue.
5. Adding a missing '!' in add_perf_probe_events.
6. Use new API ({convert,apply,cleanup}_perf_probe_events) to probe events.
(while fix a bug that non-root user can't trace non-BPF events, like cycles)
Signed-off-by: Wang Nan <wangnan0@huawei.com>
----------------------------------------------------------------
He Kuang (2):
perf tools: Add prologue for BPF programs for fetching arguments
perf record: Support custom vmlinux path
Wang Nan (25):
perf tools: Don't write to evsel if parser doesn't collect evsel
perf tools: Make perf depend on libbpf
perf ebpf: Add the libbpf glue
perf tools: Enable passing bpf object file to --event
perf record, bpf: Parse and create probe points for BPF programs
perf bpf: Collect 'struct perf_probe_event' for bpf_program
perf record: Load all eBPF object into kernel
perf tools: Add bpf_fd field to evsel and config it
perf tools: Attach eBPF program to perf event
perf tools: Allow BPF placeholder dummy events to collect --filter
options
perf tools: Sync setting of real bpf events with placeholder
perf record: Add clang options for compiling BPF scripts
perf tools: Compile scriptlets to BPF objects when passing '.c' to
--event
perf test: Enforce LLVM test for BPF test
perf test: Add 'perf test BPF'
bpf tools: Load a program with different instances using preprocessor
perf probe: Reset args and nargs for probe_trace_event when failure
perf tools: Add BPF_PROLOGUE config options for further patches
perf tools: Introduce regs_query_register_offset() for x86
perf tools: Generate prologue for BPF programs
perf tools: Use same BPF program if arguments are identical
perf probe: Init symbol as kprobe
perf tools: Allow BPF program attach to uprobe events
perf test: Enforce LLVM test, add kbuild test
perf test: Test BPF prologue
tools/build/Makefile.feature | 6 +-
tools/lib/bpf/libbpf.c | 143 +++++-
tools/lib/bpf/libbpf.h | 22 +
tools/perf/MANIFEST | 3 +
tools/perf/Makefile.perf | 19 +-
tools/perf/arch/x86/Makefile | 1 +
tools/perf/arch/x86/util/Build | 1 +
tools/perf/arch/x86/util/dwarf-regs.c | 122 +++--
tools/perf/builtin-record.c | 58 ++-
tools/perf/builtin-stat.c | 8 +-
tools/perf/builtin-top.c | 10 +-
tools/perf/builtin-trace.c | 6 +-
tools/perf/config/Makefile | 36 +-
tools/perf/tests/Build | 24 +-
tools/perf/tests/bpf-script-example.c | 48 ++
tools/perf/tests/bpf-script-test-kbuild.c | 21 +
tools/perf/tests/bpf-script-test-prologue.c | 35 ++
tools/perf/tests/bpf.c | 229 +++++++++
tools/perf/tests/builtin-test.c | 12 +
tools/perf/tests/llvm.c | 210 +++++++-
tools/perf/tests/llvm.h | 29 ++
tools/perf/tests/make | 4 +-
tools/perf/tests/tests.h | 3 +
tools/perf/util/Build | 2 +
tools/perf/util/bpf-loader.c | 756 ++++++++++++++++++++++++++++
tools/perf/util/bpf-loader.h | 94 ++++
tools/perf/util/bpf-prologue.c | 443 ++++++++++++++++
tools/perf/util/bpf-prologue.h | 34 ++
tools/perf/util/evlist.c | 115 +++++
tools/perf/util/evlist.h | 1 +
tools/perf/util/evsel.c | 49 ++
tools/perf/util/evsel.h | 24 +
tools/perf/util/include/dwarf-regs.h | 8 +
tools/perf/util/parse-events.c | 82 ++-
tools/perf/util/parse-events.h | 4 +
tools/perf/util/parse-events.l | 6 +
tools/perf/util/parse-events.y | 29 +-
tools/perf/util/probe-event.c | 2 +-
tools/perf/util/probe-finder.c | 4 +
39 files changed, 2618 insertions(+), 85 deletions(-)
create mode 100644 tools/perf/tests/bpf-script-example.c
create mode 100644 tools/perf/tests/bpf-script-test-kbuild.c
create mode 100644 tools/perf/tests/bpf-script-test-prologue.c
create mode 100644 tools/perf/tests/bpf.c
create mode 100644 tools/perf/tests/llvm.h
create mode 100644 tools/perf/util/bpf-loader.c
create mode 100644 tools/perf/util/bpf-loader.h
create mode 100644 tools/perf/util/bpf-prologue.c
create mode 100644 tools/perf/util/bpf-prologue.h
--
2.1.0
next reply other threads:[~2015-09-06 7:16 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-06 7:13 Wang Nan [this message]
2015-09-06 7:13 ` [PATCH 01/27] perf tools: Don't write to evsel if parser doesn't collect evsel Wang Nan
2015-09-23 8:43 ` [tip:perf/core] perf tools: Don' t assume that the parser returns non empty evsel list tip-bot for Wang Nan
2015-09-06 7:13 ` [PATCH 02/27] perf tools: Make perf depend on libbpf Wang Nan
2015-09-06 7:13 ` [PATCH 03/27] perf ebpf: Add the libbpf glue Wang Nan
2015-09-06 7:13 ` [PATCH 04/27] perf tools: Enable passing bpf object file to --event Wang Nan
2015-09-06 7:13 ` [PATCH 05/27] perf record, bpf: Parse and create probe points for BPF programs Wang Nan
2015-09-16 21:43 ` Arnaldo Carvalho de Melo
2015-09-17 2:04 ` Wangnan (F)
2015-09-06 7:13 ` [PATCH 06/27] perf bpf: Collect 'struct perf_probe_event' for bpf_program Wang Nan
2015-09-06 7:13 ` [PATCH 07/27] perf record: Load all eBPF object into kernel Wang Nan
2015-09-06 7:13 ` [PATCH 08/27] perf tools: Add bpf_fd field to evsel and config it Wang Nan
2015-09-06 7:13 ` [PATCH 09/27] perf tools: Attach eBPF program to perf event Wang Nan
2015-09-06 7:13 ` [PATCH 10/27] perf tools: Allow BPF placeholder dummy events to collect --filter options Wang Nan
2015-09-06 7:13 ` [PATCH 11/27] perf tools: Sync setting of real bpf events with placeholder Wang Nan
2015-09-06 7:13 ` [PATCH 12/27] perf record: Add clang options for compiling BPF scripts Wang Nan
2015-09-06 7:13 ` [PATCH 13/27] perf tools: Compile scriptlets to BPF objects when passing '.c' to --event Wang Nan
2015-09-06 7:13 ` [PATCH 14/27] perf test: Enforce LLVM test for BPF test Wang Nan
2015-09-06 7:13 ` [PATCH 15/27] perf test: Add 'perf test BPF' Wang Nan
2015-09-06 7:13 ` [PATCH 16/27] bpf tools: Load a program with different instances using preprocessor Wang Nan
2015-09-06 7:13 ` [PATCH 17/27] perf probe: Reset args and nargs for probe_trace_event when failure Wang Nan
2015-09-06 7:13 ` [PATCH 18/27] perf tools: Add BPF_PROLOGUE config options for further patches Wang Nan
2015-09-16 7:30 ` [tip:perf/core] perf tools: regs_query_register_offset() infrastructure tip-bot for Wang Nan
2015-09-06 7:13 ` [PATCH 19/27] perf tools: Introduce regs_query_register_offset() for x86 Wang Nan
2015-09-14 21:37 ` Arnaldo Carvalho de Melo
2015-09-15 1:36 ` Wangnan (F)
2015-09-16 7:30 ` [tip:perf/core] perf tools: Introduce regs_query_register_offset( ) " tip-bot for Wang Nan
2015-09-06 7:13 ` [PATCH 20/27] perf tools: Add prologue for BPF programs for fetching arguments Wang Nan
2015-09-06 7:13 ` [PATCH 21/27] perf tools: Generate prologue for BPF programs Wang Nan
2015-09-06 7:13 ` [PATCH 22/27] perf tools: Use same BPF program if arguments are identical Wang Nan
2015-09-06 7:13 ` [PATCH 23/27] perf record: Support custom vmlinux path Wang Nan
2015-09-06 7:13 ` [PATCH 24/27] perf probe: Init symbol as kprobe Wang Nan
2015-09-06 7:13 ` [PATCH 25/27] perf tools: Allow BPF program attach to uprobe events Wang Nan
2015-09-06 7:13 ` [PATCH 26/27] perf test: Enforce LLVM test, add kbuild test Wang Nan
2015-09-06 7:13 ` [PATCH 27/27] perf test: Test BPF prologue Wang Nan
-- strict thread matches above, loose matches on Subject: below --
2015-08-10 6:15 [GIT PULL 00/27] perf tools: filtering events using eBPF programs Wang Nan
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=1441523623-152703-1-git-send-email-wangnan0@huawei.com \
--to=wangnan0@huawei.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@redhat.com \
--cc=ast@plumgrid.com \
--cc=brendan.d.gregg@gmail.com \
--cc=daniel@iogearbox.net \
--cc=dsahern@gmail.com \
--cc=hekuang@huawei.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lizefan@huawei.com \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=namhyung@kernel.org \
--cc=paulus@samba.org \
--cc=pi3orama@163.com \
--cc=xiakaixu@huawei.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®