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

From: Arnaldo Carvalho de Melo
Date: Mon Aug 17 2015 - 15:13:20 EST


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
--
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/