[GIT PULL 00/19] perf/core improvements and fixes

From: Arnaldo Carvalho de Melo
Date: Thu Sep 01 2016 - 12:47:11 EST


Hi Ingo,

Please consider pulling,

- Arnaldo

The following changes since commit 36e674a05164cdbb9d4a5b1b0b279fabae6c13bd:

Merge tag 'perf-core-for-mingo-20160823' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-08-24 11:08:10 +0200)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160901

for you to fetch changes up to 6243b9dc4c991fe8bdc53a0e029908aef3ddb101:

perf probe: Move dwarf specific functions to dwarf-aux.c (2016-09-01 12:42:26 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Support generating cross arch probes, i.e. if you specify a vmlinux
file for different arch than the one in the host machine,

$ perf probe --definition function_name args

will generate the probe definition string needed to append to the
target machine /sys/kernel/debug/tracing/kprobes_events file, using
scripting (Masami Hiramatsu).

- Make 'perf probe' skip the function prologue in uprobes if program
compiled without optimization, using the same strategy as gdb and
systemtap uses, fixing a bug where:

$ perf probe -x ./test 'foo i'

When 'foo(42)' was used on the "./test" executable would produce i=0
instead of the expected i=42 (Ravi Bangoria)

- Demangle symbols for synthesized @plt entries too (Millian Wolff)

Documentation:

- Show default report configuration in 'perf config' example
and docs (Millian Wolff)

Infrastructure:

- Make 'perf test vmlinux' tolerate the symbol aliasing pruning done when
loading kallsyms and vmlinux (Arnaldo Carvalho de Melo)

- Improve output of 'perf test vmlinux' test, to help identify on the verbose
output which lines are warning and which are errors (Arnaldo Carvalho de Melo)

- Prep work to stop having to pass symbol_filter_t to lots of functions,
simplifying symtab loading routines (Arnaldo Carvalho de Melo)

- Honor symbol_conf.allow_aliases when loading kallsyms as well, it was using
it only when loading vmlinux files (Arnaldo Carvalho de Melo)

- Fixup symbol->end before doing alias pruning when loading symbol tables
(Arnaldo Carvalho de Melo)

- Fix error handling of lzma kernel module decompression (Shawn Lin)

Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>

----------------------------------------------------------------
Arnaldo Carvalho de Melo (8):
perf annotate: Initialize the priv are in symbol__new()
perf symbols: Rename ->ignore to ->idle
perf probe: Do not use map_load filters for function
perf test vmlinux: Clarify which -v lines are errors or warning
perf test vmlinux: Avoid printing headers for empty lists
perf test vmlinux: Tolerate symbol aliases
perf symbols: Check symbol_conf.allow_aliases for kallsyms loading too
perf symbols: Fixup symbol sizes before picking best ones

Masami Hiramatsu (5):
perf probe: Remove unused tracing_dir variable
perf probe: Show trace event definition
perf probe: Ignore vmlinux buildid if offline kernel is given
perf probe: Support probing on offline cross-arch binary
perf probe: Ignore vmlinux Build-id when offline vmlinux given

Milian Wolff (2):
perf symbols: Demangle symbols for synthesized @plt entries.
perf config: Show default report configuration in example and docs

Ravi Bangoria (3):
perf probe: Add helper function to check if probe with variable
perf uprobe: Skip prologue if program compiled without optimization
perf probe: Move dwarf specific functions to dwarf-aux.c

Shawn Lin (1):
perf tools: Fix error handling of lzma decompression

tools/perf/Documentation/perf-config.txt | 8 +
tools/perf/Documentation/perf-probe.txt | 9 ++
tools/perf/Documentation/perfconfig.example | 9 ++
tools/perf/arch/arm/include/dwarf-regs-table.h | 9 ++
tools/perf/arch/arm64/include/dwarf-regs-table.h | 13 ++
tools/perf/arch/powerpc/include/dwarf-regs-table.h | 27 ++++
tools/perf/arch/s390/include/dwarf-regs-table.h | 8 +
tools/perf/arch/sh/include/dwarf-regs-table.h | 25 +++
tools/perf/arch/sparc/include/dwarf-regs-table.h | 18 +++
tools/perf/arch/x86/include/dwarf-regs-table.h | 14 ++
tools/perf/arch/xtensa/include/dwarf-regs-table.h | 8 +
tools/perf/builtin-annotate.c | 7 +-
tools/perf/builtin-probe.c | 35 +++-
tools/perf/builtin-report.c | 6 +-
tools/perf/builtin-top.c | 8 +-
tools/perf/tests/vmlinux-kallsyms.c | 44 +++--
tools/perf/util/Build | 1 +
tools/perf/util/annotate.c | 7 -
tools/perf/util/annotate.h | 1 -
tools/perf/util/dwarf-aux.c | 179 +++++++++++++++++++++
tools/perf/util/dwarf-aux.h | 8 +
tools/perf/util/dwarf-regs.c | 59 +++++++
tools/perf/util/evsel_fprintf.c | 4 +-
tools/perf/util/include/dwarf-regs.h | 6 +
tools/perf/util/lzma.c | 15 +-
tools/perf/util/probe-event.c | 101 +++++++++---
tools/perf/util/probe-event.h | 3 +
tools/perf/util/probe-file.c | 5 +-
tools/perf/util/probe-finder.c | 60 +++++--
tools/perf/util/probe-finder.h | 1 +
tools/perf/util/symbol-elf.c | 86 ++++++----
tools/perf/util/symbol.c | 30 +++-
tools/perf/util/symbol.h | 5 +-
33 files changed, 698 insertions(+), 121 deletions(-)
create mode 100644 tools/perf/arch/arm/include/dwarf-regs-table.h
create mode 100644 tools/perf/arch/arm64/include/dwarf-regs-table.h
create mode 100644 tools/perf/arch/powerpc/include/dwarf-regs-table.h
create mode 100644 tools/perf/arch/s390/include/dwarf-regs-table.h
create mode 100644 tools/perf/arch/sh/include/dwarf-regs-table.h
create mode 100644 tools/perf/arch/sparc/include/dwarf-regs-table.h
create mode 100644 tools/perf/arch/x86/include/dwarf-regs-table.h
create mode 100644 tools/perf/arch/xtensa/include/dwarf-regs-table.h
create mode 100644 tools/perf/util/dwarf-regs.c

Build stats:

1 alpine:3.4: Ok
2 android-ndk:r12b-arm: Ok
3 archlinux:latest: Ok
4 centos:5: Ok
5 centos:6: Ok
6 centos:7: Ok
7 debian:7: Ok
8 debian:8: Ok
9 fedora:20: Ok
10 fedora:21: Ok
11 fedora:22: Ok
12 fedora:23: Ok
13 fedora:24: Ok
14 fedora:24-x-ARC-uClibc: Ok
15 fedora:rawhide: Ok
16 mageia:5: Ok
17 opensuse:13.2: Ok
18 opensuse:42.1: Ok
19 opensuse:tumbleweed: Ok
20 ubuntu:12.04.5: Ok
21 ubuntu:14.04.4: Ok
22 ubuntu:15.10: Ok
23 ubuntu:16.04: Ok
24 ubuntu:16.04-x-arm: Ok
25 ubuntu:16.04-x-arm64: Ok
26 ubuntu:16.04-x-powerpc64: Ok
27 ubuntu:16.04-x-powerpc64el: Ok
28 ubuntu:16.10: Ok
29 ubuntu:16.10-x-s390: Ok