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

From: Ingo Molnar
Date: Fri Sep 09 2016 - 01:47:43 EST



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

> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit c0b172e5b6770048751b2c0a4fe44346c2080c5d:
>
> Merge tag 'perf-core-for-mingo-20160901' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-09-05 15:15:49 +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-20160908
>
> for you to fetch changes up to 25b8592e912f085ce2ff736a2927584ddeab238c:
>
> perf powerpc: Fix build-test failure (2016-09-08 13:44:07 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Add branch stack / basic block info to 'perf annotate --stdio', where for
> each branch, we add an asm comment after the instruction with information on
> how often it was taken and predicted. See example with color output at:
>
> http://vger.kernel.org/~acme/perf/annotate_basic_blocks.png
>
> (Peter Zijlstra)
>
> - Only open an evsel in CPUs in its cpu map, fixing some use cases in
> systems with multiple PMUs with different CPU maps (Mark Rutland)
>
> - Fix handling of huge TLB maps, recognizing it as anonymous (Wang Nan)
>
> Infrastructure:
>
> - Remove the symbol filtering code, i.e. the callbacks passed to all functions
> that could end up loading a DSO symtab, simplifying the code, eventually
> allowing what we should have had since day one: removing the 'map' parameter
> from dso__load() functions (Arnaldo Carvalho de Melo)
>
> Arch specific build fixes:
>
> - Fix detached tarball build on powerpc, where we were still accessing a
> file outside tools/ (Ravi Bangoria)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (5):
> perf symbols: Mark if a symbol is idle in the library
> perf top: Remove old kernel-only symbol filter
> perf machine: Remove machine->symbol_filter and friends
> perf test vmlinux: Remove dead symbol_filter_t code
> perf symbols: Remove symbol_filter_t machinery
>
> Mark Rutland (2):
> perf evlist: Only open events on CPUs an evsel permits
> perf pmu: Support alternative sysfs cpumask
>
> Peter Zijlstra (1):
> perf annotate: Add branch stack / basic block
>
> Ravi Bangoria (1):
> perf powerpc: Fix build-test failure
>
> Wang Nan (3):
> perf tools: Recognize hugetlb mapping as anon mapping
> tools lib api fs: Add hugetlbfs filesystem detector
> perf record: Mark MAP_HUGETLB when synthesizing mmap events
>
> tools/lib/api/fs/fs.c | 15 ++
> tools/lib/api/fs/fs.h | 1 +
> tools/perf/arch/powerpc/util/sym-handling.c | 2 +-
> tools/perf/builtin-annotate.c | 104 +++++++++
> tools/perf/builtin-inject.c | 2 +-
> tools/perf/builtin-kmem.c | 10 +-
> tools/perf/builtin-script.c | 4 +-
> tools/perf/builtin-top.c | 30 ---
> tools/perf/perf-sys.h | 1 -
> tools/perf/tests/code-reading.c | 4 +-
> tools/perf/tests/vmlinux-kallsyms.c | 17 +-
> tools/perf/ui/browsers/annotate.c | 2 +-
> tools/perf/ui/browsers/map.c | 4 +-
> tools/perf/util/Build | 1 +
> tools/perf/util/annotate.c | 95 +++++++-
> tools/perf/util/annotate.h | 1 +
> tools/perf/util/block-range.c | 328 ++++++++++++++++++++++++++++
> tools/perf/util/block-range.h | 71 ++++++
> tools/perf/util/event.c | 21 +-
> tools/perf/util/evlist.c | 8 +-
> tools/perf/util/intel-bts.c | 2 +-
> tools/perf/util/intel-pt.c | 4 +-
> tools/perf/util/machine.c | 38 +---
> tools/perf/util/machine.h | 34 +--
> tools/perf/util/map.c | 50 ++---
> tools/perf/util/map.h | 32 +--
> tools/perf/util/pmu.c | 15 +-
> tools/perf/util/probe-event.c | 17 +-
> tools/perf/util/symbol-elf.c | 32 +--
> tools/perf/util/symbol-minimal.c | 4 +-
> tools/perf/util/symbol.c | 134 ++++++------
> tools/perf/util/symbol.h | 20 +-
> 32 files changed, 817 insertions(+), 286 deletions(-)
> create mode 100644 tools/perf/util/block-range.c
> create mode 100644 tools/perf/util/block-range.h
>
> Build stats:
>
> [root@jouet ~]# time dm
> 1 69.078 alpine:3.4: Ok
> 2 24.055 android-ndk:r12b-arm: Ok
> 3 71.911 archlinux:latest: Ok
> 4 41.209 centos:5: Ok
> 5 58.240 centos:6: Ok
> 6 67.238 centos:7: Ok
> 7 62.040 debian:7: Ok
> 8 69.061 debian:8: Ok
> 9 38.124 debian:experimental: Ok
> 10 67.623 fedora:20: Ok
> 11 71.458 fedora:21: Ok
> 12 70.807 fedora:22: Ok
> 13 71.013 fedora:23: Ok
> 14 73.330 fedora:24: Ok
> 15 30.062 fedora:24-x-ARC-uClibc: Ok
> 16 77.616 fedora:rawhide: Ok
> 17 73.663 mageia:5: Ok
> 18 69.264 opensuse:13.2: Ok
> 19 71.532 opensuse:42.1: Ok
> 20 76.282 opensuse:tumbleweed: Ok
> 21 54.666 ubuntu:12.04.5: Ok
> 22 37.170 ubuntu:14.04: Ok
> 23 66.101 ubuntu:14.04.4: Ok
> 24 68.881 ubuntu:15.10: Ok
> 25 62.698 ubuntu:16.04: Ok
> 26 53.046 ubuntu:16.04-x-arm: Ok
> 27 51.609 ubuntu:16.04-x-arm64: Ok
> 28 51.842 ubuntu:16.04-x-powerpc64: Ok
> 29 53.347 ubuntu:16.04-x-powerpc64el: Ok
> 30 72.280 ubuntu:16.10: Ok
> 31 54.078 ubuntu:16.10-x-s390: Ok
>
> real 31m19.919s
> user 0m1.890s
> sys 0m2.201s
> [root@jouet ~]#

Pulled, thanks a lot Arnaldo!

Ingo