[PATCH 00/16] perf tools: BPF related update

Wang Nan
2015-11-24T13:40:26Z

This patch set is based on perf/core.

This patch set improves perf's BPF support:

- Support filling BPF array with values

Users are allowed to pass something to BPF program through command
line without changing the program itself.

- Support filling BPF event array with events

BPF program can read PMU counters through BPF's perf_event_read()
helper.

- Support bpf_output_event() helper

BPF program can issue perf event to perf.data.

In this patch set:

Patch 1/16 - 2/16 are two small bugfix related to building;

Patch 3/16 - 13/16 add array filling support. In this 11 patches:

Patch 3/16 - 6/16 are preparation;
Patch 7/16 - 9/16 enables perf cmdline syntax to (basic) support
array filling
Patch 10/16 - 11/16 enables setting perf events to BPF event array
Patch 12/16 - 13/16 enables setting different slots in an array
with different values

Patch 14/16 - 16/16 support bpf_output_event() helper.

In most of the patches I list commands for testing them, both normal
case and error case.

Cc: Wang Nan <wangnan0@huawei.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com

He Kuang (2):
bpf tools: Add helper function for updating bpf maps elements
perf tools: Support perf event alias name

Wang Nan (14):
tools build: Clean CFLAGS and LDFLAGS for fixdep
tools lib bpf: Don't feature check when cleaning
bpf tools: Collect map definition in bpf_object
bpf tools: Extract and collect map names from BPF object file
perf tools: Rename bpf config to program config
perf tools: Add API to config maps in bpf object
perf tools: Enable BPF object configure syntax
perf record: Apply config to BPF objects before recording
perf tools: Enable passing event to BPF object
perf tools: Support setting different slots in a BPF map separately
perf tools: Enable indices setting syntax for BPF maps
perf tools: Introduce bpf-output event
perf data: Add u32_hex data type
perf data: Support converting data from bpf_perf_event_output()

tools/build/Makefile.include | 2 +-
tools/lib/bpf/Makefile | 10 +
tools/lib/bpf/bpf.c | 14 +
tools/lib/bpf/bpf.h | 2 +
tools/lib/bpf/libbpf.c | 251 +++++++++----
tools/lib/bpf/libbpf.h | 24 ++
tools/perf/builtin-record.c | 11 +
tools/perf/util/bpf-loader.c | 753 ++++++++++++++++++++++++++++++++++++--
tools/perf/util/bpf-loader.h | 61 ++-
tools/perf/util/data-convert-bt.c | 117 +++++-
tools/perf/util/evlist.c | 16 +
tools/perf/util/evlist.h | 4 +
tools/perf/util/evsel.c | 7 +
tools/perf/util/evsel.h | 1 +
tools/perf/util/parse-events.c | 129 ++++++-
tools/perf/util/parse-events.h | 20 +-
tools/perf/util/parse-events.l | 16 +-
tools/perf/util/parse-events.y | 123 ++++++-
18 files changed, 1448 insertions(+), 113 deletions(-)

--
1.8.3.4