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

From: Arnaldo Carvalho de Melo
Date: Tue Jan 26 2016 - 09:11:17 EST


Em Tue, Jan 26, 2016 at 05:11:28PM +0800, Wangnan (F) escreveu:
> Hi Arnaldo,
>
> We didn't make too much progress on this patchset for several weeks.
> Kernel support of bpf-output has already been merged by v4.4, but perf
> side code is still missing in v4.5. Do you have any plan on it?

Yes, I have, I updated my main machine, had to reinstall the clang
environment, figured out the one in fedora doesn't support it, reported
it to the fedora guys, next version will have it, this way we'll have
one less roadblock.

But this is complex code, that needs reviewing, as is several other
fronts, and december I was out, vacations, life got in the way (a son,
heya!).

We'll get there, expect progress in the coming days and weeks.

- Arnaldo

> Brendan asked this feature this month. I think he would be disappointed
> because he still unable to use them on v4.5 kernel...
>
> Thank you.
>
>
> On 2016/1/25 17:55, Wang Nan wrote:
> >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
> > attribute
> >
> >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
> >
>