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

From: Ingo Molnar
Date: Mon Sep 05 2016 - 09:17:39 EST



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

> 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

Pulled, thanks a lot Arnaldo!

Ingo