[GIT PULL] perf changes for v4.13
From: Ingo Molnar
Date: Mon Jul 03 2017 - 04:19:44 EST
Linus,
Please pull the latest perf-core-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf-core-for-linus
# HEAD: 23acd3e1a0a377cf3730ccb753aa1fdc50378396 Merge tag 'perf-core-for-mingo-4.13-20170630' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Most of the changes are for tooling, the main changes in this cycle were:
- Improve Intel-PT hardware tracing support, both on the kernel and on the
tooling side: PTWRITE instruction support, power events for C-state tracing,
etc. (Adrian Hunter)
- Add support to measure SMI cost to the x86 architecture, with tooling support
in 'perf stat' (Kan Liang)
- Support function filtering in 'perf ftrace', plus related improvements
(Namhyung Kim)
- Allow adding and removing fields to the default 'perf script' columns,
using + or - as field prefixes to do so (Andi Kleen)
- Allow resolving the DSO name with 'perf script -F brstack{sym,off},dso'
(Mark Santaniello)
- Add perf tooling unwind support for PowerPC (Paolo Bonzini)
- ... and various other improvements as well.
Thanks,
Ingo
------------------>
Adrian Hunter (38):
perf intel-pt: Move decoder error setting into one condition
perf intel-pt: Improve sample timestamp
perf intel-pt: Fix missing stack clear
perf intel-pt: Ensure IP is zero when state is INTEL_PT_STATE_NO_IP
perf intel-pt: Fix last_ip usage
perf intel-pt: Ensure never to set 'last_ip' when packet 'count' is zero
perf intel-pt: Use FUP always when scanning for an IP
perf intel-pt: Clear FUP flag on error
perf intel-pt: Add missing __fallthrough
perf intel-pt: Allow decoding with branch tracing disabled
perf intel-pt: Add default config for pass-through branch enable
perf intel-pt: Add documentation for new config terms
perf intel-pt: Add decoder support for ptwrite and power event packets
perf intel-pt: Add reserved byte to CBR packet payload
perf intel-pt: Add decoder support for CBR events
perf intel-pt: Remove redundant initial_skip checks
perf intel-pt: Fix transactions_sample_type
perf tools: Fix message because cpu list option is -C not -c
perf script: Fix message because field list option is -F not -f
x86/insn: perf tools: Add new ptwrite instruction
perf script: Add 'synth' event type for synthesized events
tools include: Add byte-swapping macros to kernel.h
perf auxtrace: Add itrace option to output ptwrite events
perf auxtrace: Add itrace option to output power events
perf script: Add 'synth' field for synthesized event payloads
perf script: Add synthesized Intel PT power and ptwrite events
perf intel-pt: Factor out common code synthesizing event samples
perf intel-pt: Remove unused instructions_sample_period
perf intel-pt: Join needlessly wrapped lines
perf intel-pt: Tidy Intel PT evsel lookup into separate function
perf intel-pt: Tidy messages into called function intel_pt_synth_event()
perf intel-pt: Factor out intel_pt_set_event_name()
perf intel-pt: Move code in intel_pt_synth_events() to simplify attr setting
perf intel-pt: Synthesize new power and "ptwrite" events
perf intel-pt: Add example script for power events and PTWRITE
perf intel-pt: Update documentation to include new ptwrite and power events
perf intel-pt: Do not use TSC packets for calculating CPU cycles to TSC
perf auxtrace: Add CPU filter support
Andi Kleen (1):
perf script: Allow adding and removing fields
Arnaldo Carvalho de Melo (19):
tools: Adopt __noreturn from kernel sources
tools: Adopt __printf from kernel sources
tools: Adopt __scanf from kernel sources
perf tools: Use __maybe_unused consistently
tools: Adopt noinline from kernel sources
tools: Adopt __packed from kernel sources
tools: Adopt __aligned from kernel sources
perf evsel: Adopt find_process()
perf tools: Do parameter validation earlier on fetch_kernel_version()
perf tools: Remove unused _ALL_SOURCE define
perf help: Introduce exec_failed() to avoid code duplication
perf help: Elliminate dup code for reporting
perf help: Use pr_warning()
perf config: Use pr_warning()
perf event-parse: Use pr_warning()
perf tools: Remove warning()
perf tools: Replace error() with pr_err()
perf config: Do not die when parsing u64 or int config values
perf tools: Kill die()
Colin Ian King (2):
perf jit: fix typo: "incalid" -> "invalid"
perf/x86/intel: Constify the 'lbr_desc[]' array and make a function static
Dan Carpenter (2):
perf/core: Remove some dead code
perf/core: Fix error handling in perf_event_alloc()
Jin Yao (3):
perf report: Remove unnecessary check in annotate_browser_write()
perf annotate browser: Display titles in left frame
perf annotate: Return arch from symbol__disassemble() and save it in browser
Kan Liang (3):
perf/x86: Add sysfs entry to freeze counters on SMI
tools lib api fs: Add sysfs__write_int function
perf stat: Add support to measure SMI cost
Kim Phillips (2):
perf coresight: Remove superfluous check before use
perf intel-pt/bts: Remove unused SAMPLE_SIZE defines and bts priv array
Mark Santaniello (2):
perf script: Support -F brstack,dso and brstacksym,dso
perf script: Support -F brstackoff,dso
Matthias Kaehlcke (1):
perf/core: Remove unused perf_cgroup_event_cgrp_time() function
Namhyung Kim (4):
perf ftrace: Show error message when fails to set ftrace files
perf ftrace: Move setup_pager before opening trace_pipe
perf ftrace: Add option for function filtering
perf ftrace: Add -D option for depth filter
Paolo Bonzini (1):
perf unwind: Support for powerpc
Peter Zijlstra (1):
perf/core: Correct event creation with PERF_FORMAT_GROUP
Taeung Song (3):
perf config: Invert an if statement to reduce nesting in cmd_config()
perf config: Check error cases of {show_spec, set}_config()
perf config: Refactor the code using 'ret' variable in cmd_config()
Thomas Richter (1):
perf tests: Add platform dependency to test 15
Wang Nan (1):
perf test llvm: Avoid error when PROFILE_ALL_BRANCHES is set
arch/x86/events/core.c | 10 +
arch/x86/events/intel/core.c | 63 ++
arch/x86/events/intel/lbr.c | 4 +-
arch/x86/events/perf_event.h | 3 +
arch/x86/include/asm/msr-index.h | 2 +
arch/x86/lib/x86-opcode-map.txt | 2 +-
kernel/events/core.c | 30 +-
tools/include/linux/compiler-gcc.h | 10 +
tools/include/linux/compiler.h | 4 +
tools/include/linux/kernel.h | 35 +-
tools/lib/api/fs/fs.c | 30 +
tools/lib/api/fs/fs.h | 4 +
tools/objtool/arch/x86/insn/x86-opcode-map.txt | 2 +-
tools/perf/Documentation/intel-pt.txt | 78 ++-
tools/perf/Documentation/itrace.txt | 8 +-
tools/perf/Documentation/perf-ftrace.txt | 33 ++
tools/perf/Documentation/perf-script.txt | 18 +-
tools/perf/Documentation/perf-stat.txt | 14 +
tools/perf/Makefile.config | 2 +-
tools/perf/arch/arm/util/cs-etm.c | 29 +-
tools/perf/arch/powerpc/util/Build | 2 +
tools/perf/arch/powerpc/util/unwind-libdw.c | 73 +++
tools/perf/arch/x86/tests/insn-x86-dat-32.c | 12 +
tools/perf/arch/x86/tests/insn-x86-dat-64.c | 30 +
tools/perf/arch/x86/tests/insn-x86-dat-src.c | 30 +
tools/perf/arch/x86/util/intel-bts.c | 4 -
tools/perf/arch/x86/util/intel-pt.c | 9 +-
tools/perf/bench/numa.c | 2 +-
tools/perf/builtin-c2c.c | 4 +-
tools/perf/builtin-config.c | 67 ++-
tools/perf/builtin-diff.c | 5 +-
tools/perf/builtin-ftrace.c | 159 ++++-
tools/perf/builtin-help.c | 48 +-
tools/perf/builtin-kmem.c | 4 +-
tools/perf/builtin-record.c | 4 +-
tools/perf/builtin-report.c | 8 +-
tools/perf/builtin-sched.c | 2 +-
tools/perf/builtin-script.c | 353 +++++++++--
tools/perf/builtin-stat.c | 53 +-
tools/perf/builtin-top.c | 4 +-
tools/perf/jvmti/jvmti_agent.c | 2 +-
tools/perf/jvmti/jvmti_agent.h | 2 -
tools/perf/jvmti/libjvmti.c | 5 +-
tools/perf/pmu-events/jevents.c | 4 -
.../perf/scripts/python/bin/intel-pt-events-record | 13 +
.../perf/scripts/python/bin/intel-pt-events-report | 3 +
tools/perf/scripts/python/intel-pt-events.py | 128 ++++
tools/perf/tests/attr.c | 10 +-
tools/perf/tests/attr.py | 48 ++
tools/perf/tests/bp_signal.c | 3 +-
tools/perf/tests/bp_signal_overflow.c | 3 +-
tools/perf/tests/bpf-script-test-prologue.c | 9 +
tools/perf/tests/dwarf-unwind.c | 15 +-
tools/perf/tests/parse-events.c | 13 -
tools/perf/ui/browsers/annotate.c | 54 +-
tools/perf/ui/gtk/annotate.c | 3 +-
tools/perf/util/annotate.c | 10 +-
tools/perf/util/annotate.h | 4 +-
tools/perf/util/auxtrace.c | 18 +
tools/perf/util/auxtrace.h | 6 +
tools/perf/util/cache.h | 3 +-
tools/perf/util/config.c | 43 +-
tools/perf/util/config.h | 4 +-
tools/perf/util/data-convert-bt.c | 6 +-
tools/perf/util/debug.h | 11 +-
tools/perf/util/event.h | 121 ++++
tools/perf/util/evlist.h | 3 +-
tools/perf/util/evsel.c | 42 +-
tools/perf/util/genelf_debug.c | 5 +-
tools/perf/util/header.c | 3 +-
tools/perf/util/help-unknown-cmd.c | 2 +-
tools/perf/util/intel-bts.c | 2 -
.../perf/util/intel-pt-decoder/intel-pt-decoder.c | 304 +++++++++-
.../perf/util/intel-pt-decoder/intel-pt-decoder.h | 13 +
tools/perf/util/intel-pt-decoder/intel-pt-log.h | 4 +-
.../util/intel-pt-decoder/intel-pt-pkt-decoder.c | 110 +++-
.../util/intel-pt-decoder/intel-pt-pkt-decoder.h | 7 +
.../perf/util/intel-pt-decoder/x86-opcode-map.txt | 2 +-
tools/perf/util/intel-pt.c | 642 +++++++++++++++------
tools/perf/util/pmu.h | 4 +-
tools/perf/util/probe-event.h | 4 +-
.../util/scripting-engines/trace-event-python.c | 3 +-
tools/perf/util/session.c | 2 +-
tools/perf/util/sort.c | 22 +-
tools/perf/util/stat-shadow.c | 33 ++
tools/perf/util/stat.c | 2 +
tools/perf/util/stat.h | 2 +
tools/perf/util/strbuf.h | 4 +-
tools/perf/util/trace-event-parse.c | 4 +-
tools/perf/util/usage.c | 62 +-
tools/perf/util/util.c | 52 +-
tools/perf/util/util.h | 21 +-
92 files changed, 2524 insertions(+), 625 deletions(-)
create mode 100644 tools/perf/arch/powerpc/util/unwind-libdw.c
create mode 100644 tools/perf/scripts/python/bin/intel-pt-events-record
create mode 100644 tools/perf/scripts/python/bin/intel-pt-events-report
create mode 100644 tools/perf/scripts/python/intel-pt-events.py
[ ... diff skipped due to size ... ]