[GIT PULL 00/54] perf tools: Bugfix, BPF improvements and overwrite ring buffer support

From: Wang Nan
Date: Mon Jan 25 2016 - 04:58:49 EST

Hi Arnaldo,

The following changes since commit 512e583b2d4a35b644c8ff36e033b90be7e91c2e:

perf hists browser: Offer non-symbol specific menu options for --sort without 'sym' (2016-01-22 14:28:48 -0300)

are available in the git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/pi3orama/linux.git tags/perf-core-for-acme

for you to fetch changes up to 7c8463658d92b82c2a8db9f405b50ae814b91f71:

perf tools: Don't warn about out of order event if write_backward is used (2016-01-25 09:49:15 +0000)

perf improvements:

- Bug fixes:
libbpf relocation checker for a llvm bug
fix symbol searching for offline modules

- Building scripts:
Use feature-dump results for build-test

- BPF related improvements:
Enable indices syntax to support init BPF maps
Support BPF output events support

- perf/core:
Add write_backward attribute bit to support reading from
overwrite ring buffer

- perf record improvements:
Enable perf record dump different output
Support reading from overwrite ring buffer based on write_backward

Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>

He Kuang (1):
perf tools: Support perf event alias name

Wang Nan (53):
perf test: Add libbpf relocation checker
perf bpf: Check relocation target section
tools build: Allow subprojects select all feature checkers
perf build: Select all feature checkers for feature-dump
perf build: Use feature dump file for build-test
perf test: Check environment before start real BPF test
perf tools: Fix symbols searching for offline module in buildid-cache
perf test: Improve bp_signal
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: Support converting data from bpf_perf_event_output()
perf core: Introduce new ioctl options to pause and resume ring buffer
perf core: Set event's default overflow_handler
perf core: Prepare writing into ring buffer from end
perf core: Add backward attribute to perf event
perf core: Reduce perf event output overhead by new overflow handler
perf tools: Introduce API to pause ring buffer
perf tools: Only validate is_pos for tracking evsels
perf tools: Print write_backward value in perf_event_attr__fprintf
perf tools: Move timestamp creation to util
perf tools: Make ordered_events reusable
perf record: Extract synthesize code to record__synthesize()
perf tools: Add perf_data_file__switch() helper
perf record: Turns auxtrace_snapshot_enable into 3 states
perf record: Introduce record__finish_output() to finish a perf.data
perf record: Use OPT_BOOLEAN_SET for buildid cache related options
perf record: Add '--timestamp-filename' option to append timestamp to output filename
perf record: Split output into multiple files via '--switch-output'
perf record: Force enable --timestamp-filename when --switch-output is provided
perf record: Disable buildid cache options by default in switch output mode
perf record: Re-synthesize tracking events after output switching
perf record: Generate tracking events for process forked by perf
perf record: Ensure return non-zero rc when mmap fail
perf record: Prevent reading invalid data in record__mmap_read
perf tools: Add evlist channel helpers
perf tools: Automatically add new channel according to evlist
perf tools: Operate multiple channels
perf tools: Squash overwrite setting into channel
perf record: Don't read from and poll overwrite channel
perf record: Don't poll on overwrite channel
perf tools: Detect avalibility of write_backward
perf tools: Enable overwrite settings
perf tools: Set write_backward attribut bit for overwrite events
perf record: Toggle overwrite ring buffer for reading
perf record: Rename variable to make code clear
perf record: Read from backward ring buffer
perf record: Allow generate tracking events at the end of output
perf tools: Don't warn about out of order event if write_backward is used

include/linux/perf_event.h | 22 +-
include/uapi/linux/perf_event.h | 4 +-
kernel/events/core.c | 73 ++-
kernel/events/internal.h | 11 +
kernel/events/ring_buffer.c | 63 ++-
tools/build/Makefile.feature | 21 +-
tools/lib/bpf/libbpf.c | 34 +-
tools/perf/Makefile.perf | 11 +-
tools/perf/builtin-buildid-cache.c | 14 +-
tools/perf/builtin-record.c | 608 ++++++++++++++++++----
tools/perf/perf.h | 2 +
tools/perf/tests/.gitignore | 1 +
tools/perf/tests/Build | 9 +-
tools/perf/tests/bp_signal.c | 140 +++++-
tools/perf/tests/bpf-script-test-relocation.c | 50 ++
tools/perf/tests/bpf.c | 63 ++-
tools/perf/tests/llvm.c | 17 +-
tools/perf/tests/llvm.h | 5 +-
tools/perf/tests/make | 31 ++
tools/perf/util/bpf-loader.c | 699 ++++++++++++++++++++++++++
tools/perf/util/bpf-loader.h | 59 +++
tools/perf/util/build-id.c | 44 ++
tools/perf/util/build-id.h | 1 +
tools/perf/util/data-convert-bt.c | 112 ++++-
tools/perf/util/data.c | 36 ++
tools/perf/util/data.h | 11 +-
tools/perf/util/evlist.c | 314 ++++++++++--
tools/perf/util/evlist.h | 67 ++-
tools/perf/util/evsel.c | 30 ++
tools/perf/util/evsel.h | 13 +
tools/perf/util/ordered-events.c | 5 +
tools/perf/util/parse-events.c | 139 ++++-
tools/perf/util/parse-events.h | 24 +-
tools/perf/util/parse-events.l | 18 +-
tools/perf/util/parse-events.y | 123 ++++-
tools/perf/util/record.c | 11 +
tools/perf/util/session.c | 22 +-
tools/perf/util/symbol.c | 4 +
tools/perf/util/util.c | 17 +
tools/perf/util/util.h | 1 +
40 files changed, 2689 insertions(+), 240 deletions(-)
create mode 100644 tools/perf/tests/bpf-script-test-relocation.c