Re: [GIT PULL 00/46] perf/core fixes and improvements

From: Ingo Molnar
Date: Thu Jun 07 2018 - 01:22:28 EST



* Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote:

> From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> Test results at the end of this message, as usual.
>
> The following changes since commit 7869e5889477e4e32e4024d665431b35e8b7b693:
>
> Merge remote-tracking branch 'tip/perf/urgent' into perf/core (2018-06-04 10:28:20 -0300)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.18-20180605
>
> for you to fetch changes up to 03ac4e71cd120d2c3411d106d00d266114575f74:
>
> perf intel-pt: Fix "Unexpected indirect branch" error (2018-06-05 12:28:52 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> perf stat:
>
> . Display user and system time for workload targets (Jiri Olsa)
>
> perf record:
>
> . Enable arbitrary event names thru name= modifier (Alexey Budankov)
>
> PowerPC:
>
> . Add a python script for hypervisor call statistics (Ravi Bangoria)
>
> Intel PT: (Adrian Hunter)
>
> . Fix sync_switch INTEL_PT_SS_NOT_TRACING
>
> . Fix decoding to accept CBR between FUP and corresponding TIP
>
> . Fix MTC timing after overflow
>
> . Fix "Unexpected indirect branch" error
>
> perf test:
>
> . record+probe_libc_inet_pton:
>
> . To get the symbol table for dynamic
> shared objects on ubuntu we need to pass the -D/--dynamic command line
> option, unlike with the fedora distros (Arnaldo Carvalho de Melo)
>
> . code-reading:
>
> . Fix perf_env setup for PTI entry trampolines (Adrian Hunter)
>
> . kmod-path:
>
> . Add tests for vdso32 and vdsox32 (Adrian Hunter)
>
> . Use header file util/debug.h (Thomas Richter)
>
> perf annotate:
>
> . Make the various UI backends (stdio, TUI, gtk) use more consistently
> structs with annotation options as specified by the user (Arnaldo Carvalho de Melo)
>
> . Move annotation specific knobs from the symbol_conf global kitchen
> sink to the annotation option structs (Arnaldo Carvalho de Melo)
>
> Core:
>
> . Fix misleading error for some unparsable events mentioning PMUs when
> those are not involved in the problem (Jiri Olsa)
>
> - Fix symbol and object code resolution for vdso32 and vdsox32 (Adrian Hunter)
>
> . No need to check for null when passing pointers to foo__get() style
> refcount grabbing helpers, just like in the kernel and with free(),
> its safe to pass a NULL pointer to avoid having to check it before
> each and every foo__get() call (Arnaldo Carvalho de Melo)
>
> . Remove some dead code (quote.[ch]) (Arnaldo Carvalho de Melo)
>
> . Remove some needless globals, making them local (Arnaldo Carvalho de Melo)
>
> . Reduce usage of symbol_conf.use_callchain, using other means of
> finding out if callchains are in use or available for specific events,
> as we evolved this codebase to allow requesting callchains for just
> a subset of the monitored events. In time it will help polish
> recording and showing mixed sets accross the various tools:
>
> perf record -e cycles/call-graph=fp/,cache-misses/call-graph=dwarf/,instructions
>
> (Arnaldo Carvalho de Melo)
>
> . Consider PTI entry trampolines in map__rip_2objdump() (Adrian Hunter)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> ----------------------------------------------------------------
> Adrian Hunter (8):
> perf tests kmod-path: Add tests for vdso32 and vdsox32
> perf tools: Fix symbol and object code resolution for vdso32 and vdsox32
> perf test code-reading: Fix perf_env setup for PTI entry trampolines
> perf map: Consider PTI entry trampolines in rip_2objdump()
> perf intel-pt: Fix sync_switch INTEL_PT_SS_NOT_TRACING
> perf intel-pt: Fix decoding to accept CBR between FUP and corresponding TIP
> perf intel-pt: Fix MTC timing after overflow
> perf intel-pt: Fix "Unexpected indirect branch" error
>
> Alexey Budankov (1):
> perf record: Enable arbitrary event names thru name= modifier
>
> Arnaldo Carvalho de Melo (33):
> perf tools: Remove dead quote.[ch] code
> perf probe: Use return of map__get() to make code more compact
> perf cgroup: Make evlist__find_cgroup() more compact
> perf tools: No need to check if the argument to __get() function is NULL
> perf annotate: Pass perf_evsel instead of just evsel->idx
> perf annotate: __symbol__acount_cycles doesn't need notes
> perf annotate: Split allocation of annotated_source struct
> perf annotate: Introduce constructor/destructor for annotated_source
> perf annotate: Introduce annotated_source__alloc_histograms
> perf annotate: __symbol__inc_addr_samples() needs just annotated_source
> perf annotate: Introduce symbol__hists()
> perf annotate: Introduce symbol__cycle_hists()
> perf annotate: Stop using symbol_conf.nr_events global in symbol__hists()
> perf annotate: Replace symbol__alloc_hists() with symbol__hists()
> perf tools: Ditch the symbol_conf.nr_events global
> perf annotate: Add comment about annotated_src->nr_histograms
> perf annotate stdio: Use annotation_options consistently
> perf srcline: Introduce map__srcline() to make code more compact
> perf sort: Introduce addr_map_symbol__srcline() to make code more compact
> perf srcline: Make hist_entry srcline helper consistent with map's
> perf annotate: Pass annotation_options to symbol__annotate()
> perf annotate: Adopt anotation options from symbol_conf
> perf annotate: Move disassembler_style global to annotation_options
> perf hists browser: Pass annotation_options from tool to browser
> perf annotate: Move objdump_path to struct annotation_options
> perf report: No need to have report_callchain_help as a global
> perf evsel: Add has_callchain() helper to make code more compact/clear
> perf script: Check if evsel has callchains before trying to use it
> perf sched: Use sched->show_callchain where appropriate
> perf hists: Do not allocate space for callchains for evsels without them
> perf hists: Introduce hist_entry__has_callchain() method
> perf hists: Check if a hist_entry has callchains before using them
> perf test record+probe_libc_inet_pton: Ask 'nm' for dynamic symbols
>
> Jiri Olsa (2):
> perf stat: Display user and system time
> perf tools: Fix pmu events parsing rule
>
> Ravi Bangoria (1):
> perf script powerpc: Python script for hypervisor call statistics
>
> Thomas Richter (1):
> perf test: Use header file util/debug.h
>
> tools/perf/Documentation/perf-list.txt | 6 +-
> tools/perf/Documentation/perf-record.txt | 3 +
> tools/perf/Documentation/perf-stat.txt | 40 +++--
> tools/perf/arch/common.c | 4 +-
> tools/perf/arch/common.h | 4 +-
> tools/perf/builtin-annotate.c | 36 ++--
> tools/perf/builtin-c2c.c | 2 +-
> tools/perf/builtin-kvm.c | 2 -
> tools/perf/builtin-probe.c | 3 +-
> tools/perf/builtin-report.c | 39 ++--
> tools/perf/builtin-sched.c | 14 +-
> tools/perf/builtin-script.c | 12 +-
> tools/perf/builtin-stat.c | 28 ++-
> tools/perf/builtin-top.c | 48 +++--
> tools/perf/builtin-trace.c | 2 +-
> tools/perf/perf.c | 1 -
> .../perf/scripts/python/bin/powerpc-hcalls-record | 2 +
> .../perf/scripts/python/bin/powerpc-hcalls-report | 2 +
> tools/perf/scripts/python/powerpc-hcalls.py | 200 +++++++++++++++++++++
> tools/perf/tests/code-reading.c | 1 +
> tools/perf/tests/kmod-path.c | 16 ++
> tools/perf/tests/parse-events.c | 4 +-
> tools/perf/tests/python-use.c | 3 +-
> .../tests/shell/record+probe_libc_inet_pton.sh | 2 +-
> tools/perf/ui/browsers/annotate.c | 21 ++-
> tools/perf/ui/browsers/hists.c | 43 +++--
> tools/perf/ui/browsers/hists.h | 3 +
> tools/perf/ui/gtk/annotate.c | 2 +-
> tools/perf/ui/gtk/hists.c | 5 +-
> tools/perf/ui/hist.c | 2 +-
> tools/perf/ui/stdio/hist.c | 4 +-
> tools/perf/util/Build | 1 -
> tools/perf/util/annotate.c | 160 ++++++++++-------
> tools/perf/util/annotate.h | 53 ++++--
> tools/perf/util/cgroup.c | 9 +-
> tools/perf/util/dso.c | 2 +
> tools/perf/util/evsel.c | 4 +-
> tools/perf/util/evsel.h | 5 +
> tools/perf/util/header.c | 24 ++-
> tools/perf/util/hist.c | 23 ++-
> tools/perf/util/hist.h | 26 ++-
> .../perf/util/intel-pt-decoder/intel-pt-decoder.c | 23 ++-
> .../perf/util/intel-pt-decoder/intel-pt-decoder.h | 9 +
> tools/perf/util/intel-pt.c | 5 +
> tools/perf/util/map.c | 26 ++-
> tools/perf/util/map.h | 1 +
> tools/perf/util/parse-events.l | 18 +-
> tools/perf/util/parse-events.y | 14 +-
> tools/perf/util/probe-event.c | 3 +-
> tools/perf/util/quote.c | 62 -------
> tools/perf/util/quote.h | 31 ----
> tools/perf/util/session.c | 2 +-
> tools/perf/util/sort.c | 81 +++------
> tools/perf/util/sort.h | 7 +-
> tools/perf/util/symbol.c | 1 -
> tools/perf/util/symbol.h | 3 -
> tools/perf/util/top.h | 3 +-
> 57 files changed, 731 insertions(+), 419 deletions(-)
> create mode 100644 tools/perf/scripts/python/bin/powerpc-hcalls-record
> create mode 100644 tools/perf/scripts/python/bin/powerpc-hcalls-report
> create mode 100644 tools/perf/scripts/python/powerpc-hcalls.py
> delete mode 100644 tools/perf/util/quote.c
> delete mode 100644 tools/perf/util/quote.h

Pulled, thanks a lot Arnaldo!

Ingo