[GIT PULL 00/27] perf tools: filtering events using eBPF programs

From: Wang Nan
Date: Mon Aug 10 2015 - 02:17:21 EST


Hi Arnaldo,

This is patches needs to be reviewed after Ingo's pull. In this series,
I made following improvements:

1. Remove all pr_err and introduce bpf__strerror_{prepare_load,probe,load}.
All callers are switched to strerror style;

2. Avoid the global 'struct perf_probe_event' array used by perf__probe(). This
is done by moving config_bpf_program() to bpf__probe().

The following changes since commit 64d3e6a927b9fef30efafc0aacab563a3065db24:

perf tools: Unset perf_event_attr::freq when period term is set (2015-08-08 14:32:00 -0300)

are available in the git repository at:

https://github.com/WangNan0/linux.git ebpf

for you to fetch changes up to 947b8f665e9ad50071ba5e83cbfb54345706ba98:

perf tools: Support attach BPF program on uprobe events (2015-08-09 16:45:16 +0000)

----------------------------------------------------------------
He Kuang (3):
perf tools: Move linux/filter.h to tools/include
perf tools: Introduce arch_get_reg_info() for x86
perf record: Support custom vmlinux path

Wang Nan (24):
perf tools: Make perf depend on libbpf
perf ebpf: Add the libbpf glue
perf tools: Enable passing bpf object file to --event
perf probe: Attach trace_probe_event with perf_probe_event
perf record, bpf: Parse and probe eBPF programs probe points
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: Suppress probing messages when probing by BPF loading
perf record: Add clang options for compiling BPF scripts
perf tools: Infrastructure for compiling scriptlets when passing '.c' to --event
perf tests: Enforce LLVM test for BPF test
perf test: Enable 'perf test' run as test targets
perf test: Add 'perf test BPF'
bpf tools: Load a program with different instances using preprocessor
perf tools: Fix probe-event.h include
perf probe: Reset args and nargs for probe_trace_event when failure
perf tools: Add BPF_PROLOGUE config options for further patches
perf tools: Add prologue for BPF programs for fetching arguments
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: Support attach BPF program on uprobe events

tools/build/Makefile.feature | 6 +-
tools/include/linux/filter.h | 237 ++++++++++++
tools/lib/bpf/libbpf.c | 143 ++++++-
tools/lib/bpf/libbpf.h | 22 ++
tools/perf/MANIFEST | 4 +
tools/perf/Makefile.perf | 19 +-
tools/perf/arch/x86/Makefile | 1 +
tools/perf/arch/x86/util/Build | 2 +
tools/perf/arch/x86/util/dwarf-regs.c | 104 +++--
tools/perf/builtin-probe.c | 4 +-
tools/perf/builtin-record.c | 52 ++-
tools/perf/config/Makefile | 31 +-
tools/perf/tests/Build | 10 +-
tools/perf/tests/bpf-script-example.c | 44 +++
tools/perf/tests/bpf.c | 229 +++++++++++
tools/perf/tests/builtin-test.c | 61 +++
tools/perf/tests/llvm.c | 123 +++++-
tools/perf/tests/llvm.h | 15 +
tools/perf/tests/make | 4 +-
tools/perf/tests/tests.h | 5 +
tools/perf/util/Build | 2 +
tools/perf/util/bpf-loader.c | 707 ++++++++++++++++++++++++++++++++++
tools/perf/util/bpf-loader.h | 82 ++++
tools/perf/util/bpf-prologue.c | 442 +++++++++++++++++++++
tools/perf/util/bpf-prologue.h | 34 ++
tools/perf/util/evlist.c | 41 ++
tools/perf/util/evlist.h | 1 +
tools/perf/util/evsel.c | 17 +
tools/perf/util/evsel.h | 1 +
tools/perf/util/include/dwarf-regs.h | 7 +
tools/perf/util/parse-events.c | 26 ++
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 | 79 ++--
tools/perf/util/probe-event.h | 8 +-
tools/perf/util/probe-file.c | 5 +-
tools/perf/util/probe-finder.c | 4 +
38 files changed, 2512 insertions(+), 99 deletions(-)
create mode 100644 tools/include/linux/filter.h
create mode 100644 tools/perf/tests/bpf-script-example.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

--
1.8.3.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/