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

From: Ingo Molnar
Date: Thu Aug 20 2015 - 05:50:35 EST



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

> From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> Hi Ingo,
>
> This comes with part of Adrian's latest pull req to support Intel PT
> on tools/perf, with enough to testing it, see the example in the latest
> patch in this series.
>
> More wore patches for BTS and further Intel PT goodies will come soon,
> after some issues with resolving symbols get fixed. This was something that
> wasn't present last time I tested the BTS bits, so I think we should resolve
> it soon, but while we do it, these patches should move things forward wrt
> being able to test the stuff already in the kernel and to have access to this
> hardware feature using perf.
>
> Please consider applying,
>
> - Arnaldo
>
> The following changes since commit a897b5f0393a8a05d230c9248dc5324fb30720a0:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-08-13 09:23:53 +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
>
> for you to fetch changes up to 5efb1d5489520ce72232bbc28e9156f0ebddc44e:
>
> perf tools: Take Intel PT into use (2015-08-17 11:11:37 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> - Support Intel PT in several tools, enabling the use of the processor trace
> feature introduced in Intel Broadwell processors: (Adrian Hunter)
>
> # dmesg | grep Performance
> # [0.188477] Performance Events: PEBS fmt2+, 16-deep LBR, Broadwell events, full-width counters, Intel PMU driver.
> # perf record -e intel_pt//u -a sleep 1
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.216 MB perf.data ]
> # perf script # then navigate in the tool output to some area, like this one:
> 184 1030 dl_main (/usr/lib64/ld-2.17.so) => 7f21ba661440 dl_main (/usr/lib64/ld-2.17.so)
> 185 1457 dl_main (/usr/lib64/ld-2.17.so) => 7f21ba669f10 _dl_new_object (/usr/lib64/ld-2.17.so)
> 186 9f37 _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba677b90 strlen (/usr/lib64/ld-2.17.so)
> 187 7ba3 strlen (/usr/lib64/ld-2.17.so) => 7f21ba677c75 strlen (/usr/lib64/ld-2.17.so)
> 188 7c78 strlen (/usr/lib64/ld-2.17.so) => 7f21ba669f3c _dl_new_object (/usr/lib64/ld-2.17.so)
> 189 9f8a _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba65fab0 calloc@plt (/usr/lib64/ld-2.17.so)
> 190 fab0 calloc@plt (/usr/lib64/ld-2.17.so) => 7f21ba675e70 calloc (/usr/lib64/ld-2.17.so)
> 191 5e87 calloc (/usr/lib64/ld-2.17.so) => 7f21ba65fa90 malloc@plt (/usr/lib64/ld-2.17.so)
> 192 fa90 malloc@plt (/usr/lib64/ld-2.17.so) => 7f21ba675e60 malloc (/usr/lib64/ld-2.17.so)
> 193 5e68 malloc (/usr/lib64/ld-2.17.so) => 7f21ba65fa80 __libc_memalign@plt (/usr/lib64/ld-2.17.so)
> 194 fa80 __libc_memalign@plt (/usr/lib64/ld-2.17.so) => 7f21ba675d50 __libc_memalign (/usr/lib64/ld-2.17.so)
> 195 5d63 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675e20 __libc_memalign (/usr/lib64/ld-2.17.so)
> 196 5e40 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675d73 __libc_memalign (/usr/lib64/ld-2.17.so)
> 197 5d97 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675e18 __libc_memalign (/usr/lib64/ld-2.17.so)
> 198 5e1e __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675df9 __libc_memalign (/usr/lib64/ld-2.17.so)
> 199 5e10 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba669f8f _dl_new_object (/usr/lib64/ld-2.17.so)
> 200 9fc2 _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba678e70 memcpy (/usr/lib64/ld-2.17.so)
> 201 8e8c memcpy (/usr/lib64/ld-2.17.so) => 7f21ba678ea0 memcpy (/usr/lib64/ld-2.17.so)
>
> - Fix annotation of vdso (Adrian Hunter)
>
> - Fix DWARF callchains in 'perf script' (Jiri Olsa)
>
> - Fix adding probes in kernel syscalls and listing which variables can be
> collected at kernel syscall function lines (Masami Hiramatsu)
>
> Build Fixes:
>
> - Fix 32-bit compilation error in util/annotate.c (Adrian Hunter)
>
> - Support static linking with libdw on Fedora 22 (Andi Kleen)
>
> Infrastructure:
>
> - Add a helper function to probe whether cpu-wide tracing is possible (Adrian Hunter)
>
> - Move vfs_getname storage to per thread area in 'perf trace' (Arnaldo Carvalho de Melo)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> ----------------------------------------------------------------
> Adrian Hunter (10):
> perf annotate: Fix 32-bit compilation error in util/annotate.c
> perf symbols: Fix annotation of vdso
> perf tools: Add a helper function to probe whether cpu-wide tracing is possible
> perf auxtrace: Add Intel PT as an AUX area tracing type
> perf tools: Add Intel PT packet decoder
> perf tools: Add Intel PT instruction decoder
> perf tools: Add Intel PT log
> perf tools: Add Intel PT decoder
> perf tools: Add Intel PT support
> perf tools: Take Intel PT into use
>
> Andi Kleen (1):
> perf tools: Support static linking with libdw
>
> Arnaldo Carvalho de Melo (1):
> perf trace: Move vfs_getname storage to per thread area
>
> Jiri Olsa (1):
> perf script: Initialize callchain_param.record_mode
>
> Masami Hiramatsu (1):
> perf probe: Fix to add missed brace around if block
>
> tools/build/Makefile.build | 2 +
> tools/build/feature/Makefile | 7 +-
> tools/perf/.gitignore | 1 +
> tools/perf/Documentation/intel-pt.txt | 588 ++++++
> tools/perf/Makefile.perf | 12 +-
> tools/perf/arch/x86/util/Build | 4 +
> tools/perf/arch/x86/util/auxtrace.c | 38 +
> tools/perf/arch/x86/util/intel-pt.c | 752 ++++++++
> tools/perf/arch/x86/util/pmu.c | 15 +
> tools/perf/builtin-script.c | 17 +
> tools/perf/builtin-trace.c | 38 +-
> tools/perf/config/Makefile | 6 +-
> tools/perf/util/Build | 2 +
> tools/perf/util/annotate.c | 4 +-
> tools/perf/util/auxtrace.c | 6 +-
> tools/perf/util/auxtrace.h | 1 +
> tools/perf/util/dwarf-aux.c | 3 +-
> tools/perf/util/evlist.h | 1 +
> tools/perf/util/intel-pt-decoder/Build | 11 +
> .../util/intel-pt-decoder/gen-insn-attr-x86.awk | 386 ++++
> tools/perf/util/intel-pt-decoder/inat.c | 96 +
> tools/perf/util/intel-pt-decoder/inat.h | 221 +++
> tools/perf/util/intel-pt-decoder/insn.c | 594 ++++++
> tools/perf/util/intel-pt-decoder/insn.h | 201 ++
> .../perf/util/intel-pt-decoder/intel-pt-decoder.c | 1816 +++++++++++++++++++
> .../perf/util/intel-pt-decoder/intel-pt-decoder.h | 104 ++
> .../util/intel-pt-decoder/intel-pt-insn-decoder.c | 246 +++
> .../util/intel-pt-decoder/intel-pt-insn-decoder.h | 65 +
> tools/perf/util/intel-pt-decoder/intel-pt-log.c | 155 ++
> tools/perf/util/intel-pt-decoder/intel-pt-log.h | 52 +
> .../util/intel-pt-decoder/intel-pt-pkt-decoder.c | 400 ++++
> .../util/intel-pt-decoder/intel-pt-pkt-decoder.h | 64 +
> .../perf/util/intel-pt-decoder/x86-opcode-map.txt | 970 ++++++++++
> tools/perf/util/intel-pt.c | 1911 ++++++++++++++++++++
> tools/perf/util/intel-pt.h | 51 +
> tools/perf/util/pmu.c | 4 +-
> tools/perf/util/record.c | 24 +
> tools/perf/util/symbol-elf.c | 11 +
> 38 files changed, 8858 insertions(+), 21 deletions(-)
> create mode 100644 tools/perf/Documentation/intel-pt.txt
> create mode 100644 tools/perf/arch/x86/util/auxtrace.c
> create mode 100644 tools/perf/arch/x86/util/intel-pt.c
> create mode 100644 tools/perf/arch/x86/util/pmu.c
> create mode 100644 tools/perf/util/intel-pt-decoder/Build
> create mode 100644 tools/perf/util/intel-pt-decoder/gen-insn-attr-x86.awk
> create mode 100644 tools/perf/util/intel-pt-decoder/inat.c
> create mode 100644 tools/perf/util/intel-pt-decoder/inat.h
> create mode 100644 tools/perf/util/intel-pt-decoder/insn.c
> create mode 100644 tools/perf/util/intel-pt-decoder/insn.h
> create mode 100644 tools/perf/util/intel-pt-decoder/intel-pt-decoder.c
> create mode 100644 tools/perf/util/intel-pt-decoder/intel-pt-decoder.h
> create mode 100644 tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
> create mode 100644 tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.h
> create mode 100644 tools/perf/util/intel-pt-decoder/intel-pt-log.c
> create mode 100644 tools/perf/util/intel-pt-decoder/intel-pt-log.h
> create mode 100644 tools/perf/util/intel-pt-decoder/intel-pt-pkt-decoder.c
> create mode 100644 tools/perf/util/intel-pt-decoder/intel-pt-pkt-decoder.h
> create mode 100644 tools/perf/util/intel-pt-decoder/x86-opcode-map.txt
> create mode 100644 tools/perf/util/intel-pt.c
> create mode 100644 tools/perf/util/intel-pt.h

Pulled, thanks a lot Arnaldo!

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/