[GIT PULL] perf changes for v4.17

From: Ingo Molnar
Date: Mon Apr 02 2018 - 04:22:21 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: 1159e09476536250c2a0173d4298d15114df7a89 perf/x86/intel: Enable C-state residency events for Cannon Lake

The main kernel side changes were:

- Modernize the kprobe and uprobe creation/destruction tooling ABIs:

The existing text based APIs (kprobe_events and uprobe_events in tracefs),
are naive, limited ABIs in that they require user-space to clean up after
themselves, which is both difficult and fragile if the tool is buggy or exits
unexpectedly. In other words they are not really suited for modern, robust
tooling.

So introduce a modern, file descriptor based ABI that does not have these
limitations: introduce the 'perf_kprobe' and 'perf_uprobe' PMUs and extend
the perf_event_open() syscall to create events with a kprobe/uprobe
attached to them. These [k,u]probe are associated with this file descriptor,
so they are not available in tracefs.

(Song Liu)

- Intel Cannon Lake CPU support (Harry Pan)

- Intel PT cleanups (Alexander Shishkin)

- Improve the performance of pinned/flexible event groups by using RB trees
(Alexey Budankov)

- Add PERF_EVENT_IOC_MODIFY_ATTRIBUTES which allows the modification of hardware
breakpoints, which new ABI variant massively speeds up existing tooling that
uses hardware breakpoints to instrument (and debug) memory usage.

(Milind Chabbi, Jiri Olsa)

- Various Intel PEBS handling fixes and improvements, and other Intel PMU
improvements (Kan Liang)

- Various perf core improvements and optimizations (Peter Zijlstra)

- ... misc cleanups, fixes and updates.

There's over 200 tooling commits, here's an (imperfect) list of highlights:

- 'perf annotate' improvements:

- Recognize and handle jumps to other functions as calls,
which improves the navigation along jumps and back.

(Arnaldo Carvalho de Melo)

- Add the 'P' hotkey in TUI annotation to dump annotation output
into a file, to ease e-mail reporting of annotation details.

(Arnaldo Carvalho de Melo)

- Add an IPC/cycles column to the TUI (Jin Yao)

- Improve s390 assembly annotation (Thomas Richter)

- Refactor the output formatting logic to better separate it into
interactive and non-interactive features and add the --stdio2
output variant to demonstrate this.
(Arnaldo Carvalho de Melo)

- 'perf script' improvements:
- Add Python 3 support (Jaroslav Åkarvada)
- Add --show-round-event (Jiri Olsa)

- 'perf c2c' improvements:
- Add NUMA analysis support (Jiri Olsa)

- 'perf trace' improvements:
- Improve PowerPC support (Ravi Bangoria)

- 'perf inject' improvements:
- Integrate ARM CoreSight traces (Robert Walker)

- 'perf stat' improvements:
- Add the --interval-count option (yuzhoujian)
- Add the --timeout option (yuzhoujian)

- 'perf sched' improvements (Changbin Du)

- Vendor events improvements :
- Add IBM s390 vendor events (Thomas Richter)
- Add and improve arm64 vendor events (John Garry, Ganapatrao Kulkarni)
- Update POWER9 vendor events (Sukadev Bhattiprolu)

- Intel PT tooling improvements (Adrian Hunter)

- PMU handling improvements (Agustin Vega-Frias)

- Record machine topology in perf.data (Jiri Olsa)

- Various overwrite related cleanups (Kan Liang)

- Add arm64 dwarf post unwind support (Kim Phillips, Jean Pihet)

- ... and lots of other changes, cleanups and fixes, see the shortlog and
Git history for details.

Thanks,

Ingo

------------------>
Adrian Hunter (13):
perf record: Combine some auxtrace initialization into a single function
perf auxtrace: Add missing parameters from kernel-doc comments
perf auxtrace: Rename some buffer-queuing functions
perf auxtrace: Make auxtrace_queues__add_buffer() return buffer_ptr
perf intel-pt: Fix overlap detection to identify consecutive buffers correctly
perf intel-pt: Fix sync_switch
perf intel-pt: Fix error recovery from missing TIP packet
perf intel-pt: Fix timestamp following overflow
perf intel-pt/bts: In auxtrace_record__init_intel() evlist is never NULL
perf intel-pt: Get rid of intel_pt_use_buffer_pid_tid()
perf intel-pt: Tidy old_buffer handling in intel_pt_get_trace()
perf intel-pt: Remove a check for sampling mode
perf intel-pt: Adjust overlap-checking to support sampling mode

Agustin Vega-Frias (3):
perf pmu: Support wildcards on pmu name in dynamic pmu events
perf pmu: Display pmu name when printing unmerged events in stat
perf pmu: Auto-merge PMU events created by prefix or glob match

Alexander Shishkin (1):
perf/x86/pt, coresight: Clean up address filter structure

Alexey Budankov (1):
perf/cor: Use RB trees for pinned/flexible groups

Andi Kleen (2):
perf report: Fix description for --mem-mode
perf stat: Use xyarray dimensions to iterate fds

Arnaldo Carvalho de Melo (66):
perf tests shell lib: Use a wildcard to remove the vfs_getname probe
perf python: Make twatch.py work with both python2 and python3
perf annotate browser: Be more robust when drawing jump arrows
perf record: Allow asking for the maximum allowed sample rate
perf top browser: Show sample_freq in browser title line
perf top: Allow asking for the maximum allowed sample rate
perf record: Throttle user defined frequencies to the maximum allowed
perf annotate: Find 'call' instruction target symbol at parsing time
perf cgroup: Remove misplaced __maybe_unused
perf cgroup: Rename 'struct cgroup_sel' to 'struct cgroup'
perf cgroup: Introduce cgroup__delete()
perf cgroup: Rename close_cgroup() to cgroup__put()
perf cgroup: Introduce cgroup__get()
perf cgroup: Introduce find_cgroup() method
perf cgroup: Introduce cgroup__new() out of open coded equivalent
perf cgroup: Add evlist__findnew_cgroup()
perf cgroup: Add evlist__add_default_cgroup()
perf cgroup: Make the cgroup name be const char *
perf trace: Support setting cgroups as targets
perf annotate: Use asprintf when formatting objdump command line
perf top: Document --ignore-vmlinux
perf annotate: Use ops->target.name when available for unresolved call targets
perf tests bp_account: Fix build with clang-6
perf annotate: Move annotation_options out of the TUI browser
perf annotate: Move cycles/IPC formatting width constants outside TUI
perf annotate tui: Use annotate_browser__cycles_width() mroe
perf annotate tui: Move have_cycles to struct annotation
perf annotate: Move annotation_line array from TUI to generic code
perf annotate: Move compute_ipc() to annotation library
perf annotate: Move nr_events from annotate_browser to annotation struct
perf annotate: Stop using a global config struct
perf annotate: Move pcnt_with() to the annotation library
perf annotate tui: Add browser__annotation() helper
perf annotate: Move max_jump_sources to struct annotation
perf annotate: Move jumps_percent_color to ui_browser
perf annotate: Move nr_jumps to struct annotation
perf annotate: Move mark_jump_targets from the TUI to the annotation library
perf annotate: Nuke struct browser_line
perf annotate: Move 'start' to struct annotation
perf annotate: Move nr_{asm_}entries to struct annotation
perf annotate: Introduce set_offsets() method out of TUI code
perf annotate: Move the column widths from the TUI to generic lib
perf annotate: Move update_column_widths() to the generic lib
perf annotate: Introduce init_column_widths() method out of TUI code
perf annotate: Introduce symbol__annotate2 method
perf annotate: Introduce annotation_line__max_percent()
perf ui browser: Add vprintf() method
perf annotate: Introduce annotation_line__print_start() out of TUI code
perf annotate: Finish the generalization of annotate_browser__write()
perf annotate: Use a ops table for annotation_line__write()
perf annotate: Introduce annotation_line__filter()
perf annotate: Introduce the --stdio2 output mode
perf annotate: Move the default annotate options to the library
perf annotate: Use the default annotation options for --stdio2
perf annotate: Add function header to --stdio2
perf annotate: Introduce --ignore-vmlinux command line option
perf report: Introduce --ignore-vmlinux command line option
perf annotate browser: Add 'P' hotkey to dump annotation to file
perf annotate: No need to calculate notes->start twice
perf annotate: Pass function descriptor to its instruction parsing routines
perf annotate: Mark jumps to outher functions with the call arrow
perf annotate: Add "_local" to jump/offset validation routines
perf annotate: Support jumping from one function to another
perf annotate: Defer searching for comma in raw line till it is needed
perf annotate: Use absolute addresses to calculate jump target offsets
perf mmap: Be consistent when checking for an unmaped ring buffer

Changbin Du (3):
perf ftrace: Append an EOL when write tracing files
perf sched: Move thread::shortname to thread_runtime
perf sched map: Re-annotate shortname if thread comm changed

Colin Ian King (1):
perf tests: Fix out of bounds access on array fd when cnt is 100

Davidlohr Bueso (1):
perf/x86: Update rdpmc_always_available static key to the modern API

Ganapatrao Kulkarni (1):
perf vendor events arm64: Enable JSON events for ThunderX2 B0

Harry Pan (2):
perf/x86/intel: Add Cannon Lake support for RAPL profiling
perf/x86/intel: Enable C-state residency events for Cannon Lake

Ingo Molnar (1):
perf report: Show zero counters as well in 'perf report --stat'

Jaecheol Shin (1):
perf annotate: Add missing arguments in Man page

Jaroslav Åkarvada (1):
perf tools: Add Python 3 support

Jin Yao (4):
perf tools: Use target->per_thread and target->system_wide flags
perf report: Fix wrong jump arrow
perf stat: Ignore error thread when enabling system-wide --per-thread
perf annotate: Support to display the IPC/Cycle in TUI mode

Jiri Olsa (55):
perf record: Put new line after target override warning
perf script: Add --show-round-event to display PERF_RECORD_FINISHED_ROUND
tools lib api fs: Add filename__read_xll function
tools lib api fs: Add sysfs__read_xll function
perf tests: Fix dwarf unwind for stripped binaries
perf tools: Fix comment for sort__* compare functions
perf report: Ask for ordered events for --tasks option
perf report: Add support to display group output for non group events
tools lib symbol: Skip non-address kallsyms line
perf symbols: Check if we read regular file in dso__load()
perf machine: Free root_dir in machine__init() error path
perf machine: Move kernel mmap name into struct machine
perf machine: Generalize machine__set_kernel_mmap()
perf machine: Don't search for active kernel start in __machine__create_kernel_maps
perf machine: Remove machine__load_kallsyms()
perf tools: Do not create kernel maps in sample__resolve()
perf tests: Use arch__compare_symbol_names to compare symbols
perf report: Fix memory corruption in --branch-history mode --branch-history
perf tests: Switch trace+probe_libc_inet_pton to use record
perf tests: Rename trace+probe_libc_inet_pton to record+probe_libc_inet_pton
perf record: Fix crash in pipe mode
perf report: Fix the output for stdio events list
perf report: Display perf.data header info
perf record: Move machine variable down the function
perf record: Remove progname from struct record
perf tools: Add refcnt into struct mem_info
perf c2c: Use mem_info refcnt logic
perf tools: Add MEM_TOPOLOGY feature to perf data file
perf tools: Update tags with .cpp files
perf build: Add llvm/clang/cxx make tests into FEATURE_TESTS_EXTRA
perf build: Add llvm/clang make targets to FILES
perf build: Force llvm/clang test compile output to .make.output
hw_breakpoint: Pass bp_type directly as find_slot_idx() argument
hw_breakpoint: Pass bp_type argument to __reserve_bp_slot|__release_bp_slot()
hw_breakpoint: Add modify_bp_slot() function
hw_breakpoint: Factor out __modify_user_hw_breakpoint() function
hw_breakpoint: Add perf_event_attr fields check in __modify_user_hw_breakpoint()
perf/core: Move perf_event_attr::sample_max_stack into perf_copy_attr()
perf tests: Add breakpoint accounting/modify test
perf env: Free memory nodes data
perf tools: Add mem2node object
perf tests: Add mem2node object test
perf c2c record: Record physical addresses in samples
perf c2c report: Make calc_width work with struct c2c_hist_entry
perf c2c report: Call calc_width() only for displayed entries
perf c2c report: Display node for cacheline address
perf c2c report: Add span header over cacheline data
perf c2c report: Add cacheline address count column
perf llvm: Display eBPF compiling command in debug output
perf machine: Fix mmap name setup
perf record: Synthesize features before events in pipe mode
perf report: Support forced leader feature in pipe mode
perf tools: Fix snprint warnings for gcc 8
perf tools: Fix python extension build for gcc 8
perf build: Fix check-headers.sh opts assignment

John Garry (11):
perf vendor events: Drop incomplete multiple mapfile support
perf vendor events: Fix error code in json_events()
perf vendor events: Drop support for unused topic directories
perf vendor events: Add support for pmu events vendor subdirectory
perf vendor events arm64: Relocate ThunderX2 JSON to cavium subdirectory
perf vendor events arm64: Relocate Cortex A53 JSONs to arm subdirectory
perf vendor events: Add support for arch standard events
perf vendor events arm64: Add armv8-recommended.json
perf vendor events arm64: Fixup ThunderX2 to use recommended events
perf vendor events arm64: fixup A53 to use recommended events
perf vendor events arm64: add HiSilicon hip08 JSON file

Josh Poimboeuf (1):
objtool, perf: Fix GCC 8 -Wrestrict error

Kan Liang (31):
perf top: Fix annoying fallback message on older kernels
perf kvm: Switch to new perf_mmap__read_event() interface
perf trace: Switch to new perf_mmap__read_event() interface
perf python: Switch to new perf_mmap__read_event() interface
perf test: Switch to new perf_mmap__read_event() interface for bpf
perf test: Switch to new perf_mmap__read_event() interface for 'code reading' test
perf test: Switch to new perf_mmap__read_event() interface for "keep tracking" test
perf test: Switch to new perf_mmap__read_event() interface for mmap-basic
perf test: Switch to new perf_mmap__read_event() interface for tp fields
perf test: Switch to new perf_mmap__read_event() interface for perf-record
perf test: Switch to new perf_mmap__read_event() interface for time-to-tsc
perf test: Switch to new perf_mmap__read_event() interface for sw-clock
perf test: Switch to new perf_mmap__read_event() interface for switch-tracking
perf test: Switch to new perf_mmap__read_event() interface for task-exit
perf mmap: Discard legacy interfaces for mmap read forward
perf evlist: Store 'overwrite' in struct perf_mmap
perf mmap: Store mmap scope in struct perf_mmap()
perf mmap: Use the stored scope data in perf_mmap__push()
perf mmap: Use the stored data in perf_mmap__read_event()
perf mmap: Use stored 'overwrite' in perf_mmap__consume()
perf mmap: Simplify perf_mmap__consume()
perf mmap: Simplify perf_mmap__read_event()
perf mmap: Simplify perf_mmap__read_init()
perf/x86/intel: Fix large period handling on Broadwell CPUs
perf/x86/intel: Properly save/restore the PMU state in the NMI handler
perf/x86/intel: Fix event update for auto-reload
perf/x86: Introduce a ->read() callback in 'struct x86_pmu'
perf/x86/intel/ds: Introduce ->read() function for auto-reload events and flush the PEBS buffer there
perf/x86/intel: Fix PMU read for auto-reload
perf/x86/intel: Disable userspace RDPMC usage for large PEBS
perf mmap: Fix accessing unmapped mmap in perf_mmap__read_done()

Kim Phillips (1):
perf tools arm64: Add libdw DWARF post unwind support for ARM64

Mark Rutland (2):
perf/core: Clear sibling list of detached events
perf/core: Clear sibling list of detached events

Martin Vuille (2):
perf unwind: Unwind with libdw doesn't take symfs into account
perf unwind: Report error from dwfl_attach_state

Masami Hiramatsu (1):
perf probe: Use right type to access array elements

Mathieu Poirier (3):
perf cs-etm: Freeing allocated memory
perf auxtrace arm: Fixing uninitialised variable
perf cs-etm: Properly deal with cpu maps

Milind Chabbi (1):
perf/core: Implement fast breakpoint modification via _IOC_MODIFY_ATTRIBUTES

Namhyung Kim (1):
perf machine: Fix paranoid check in machine__set_kernel_mmap()

Peter Zijlstra (10):
perf/core: Fix perf_output_read_group()
perf/core: Cleanup the rb-tree code
perf/core: Fix event schedule order
perf/core: Remove perf_event::group_entry
perf/core: Optimize ctx_sched_out()
perf/core: Simpify perf_event_groups_for_each()
perf/core: Fix tree based event rotation
perf/core: Optimize perf_rotate_context() event scheduling
perf: Fix sibling iteration
perf: Fix sibling iteration

Petr Machata (1):
perf python: Reference Py_None before returning it

Ravi Bangoria (3):
tools include powerpc: Grab a copy of arch/powerpc/include/uapi/asm/unistd.h
perf powerpc: Generate system call table from asm/unistd.h
perf trace powerpc: Use generated syscall table

Robert Walker (3):
perf cs-etm: Inject capabilitity for CoreSight traces
perf inject: Emit instruction records on ETM trace discontinuity
coresight: Update documentation for perf usage

Sandipan Das (1):
perf test: Fix exit code for record+probe_libc_inet_pton.sh

Sangwon Hong (3):
perf kmem: Document a missing option & an argument
perf mem: Document a missing option
perf kallsyms: Fix the usage on the man page

Song Liu (4):
perf/core: Prepare perf_event.h for new types: 'perf_kprobe' and 'perf_uprobe'
perf/headers: Sync new perf_event.h with the tools/include/uapi version
perf/core: Implement the 'perf_kprobe' PMU
perf/core: Implement the 'perf_uprobe' PMU

Stephane Eranian (1):
perf tools: Update quipper information

Sukadev Bhattiprolu (1):
perf vendor events: Update POWER9 events

Takashi Iwai (1):
perf tools: Correct title markers for asciidoctor

Thomas Richter (15):
perf record: Provide detailed information on s390 CPU
perf annotate: Scan cpuid for s390 and save machine type
perf cpuid: Introduce a platform specific cpuid compare function
perf test: Fix test case 23 for s390 z/VM or KVM guests
perf test: Fix test case inet_pton to accept inlines.
perf s390: Fix reading cpuid model information
perf annotate: Fix s390 target function disassembly
perf annotate: Handle s390 PC relative load and store instruction.
perf stat: Fix core dump when flag T is used
perf stat: Make function perf_stat_evsel_id_init static
perf vendor events s390: Add JSON files for IBM z10EC z10BC
perf vendor events s390: Add JSON files for IBM z196
perf vendor events s390: Add JSON files for IBM zEC12 zBC12
perf vendor events s390: Add JSON files for IBM z13
perf vendor events s390: Add JSON files for IBM z14

Wang YanQing (1):
perf report: Provide libtraceevent with a kernel symbol resolver

Yisheng Xie (4):
perf record: Avoid duplicate call of perf_default_config()
perf top: Fix top.call-graph config option reading
perf mmap: Discard head in overwrite_rb_find_range()
perf debug: Avoid setting 'quiet' to 'true' unnecessarily

leilei.lin (1):
perf/core: Fix installing cgroup events on CPU

weiping zhang (1):
perf cgroup: Simplify arguments when tracking multiple events

yuzhoujian (2):
perf stat: Add support to print counts for fixed times
perf stat: Add support to print counts after a period of time


Documentation/trace/coresight.txt | 51 ++
arch/alpha/kernel/perf_event.c | 2 +-
arch/arm/mach-imx/mmdc.c | 2 +-
arch/arm/mm/cache-l2x0-pmu.c | 2 +-
arch/mips/kernel/perf_event_mipsxx.c | 2 +-
arch/powerpc/perf/core-book3s.c | 2 +-
arch/powerpc/perf/core-fsl-emb.c | 2 +-
arch/sparc/kernel/perf_event.c | 2 +-
arch/x86/events/core.c | 25 +-
arch/x86/events/intel/core.c | 21 +-
arch/x86/events/intel/cstate.c | 44 +-
arch/x86/events/intel/ds.c | 101 ++-
arch/x86/events/intel/pt.c | 13 +-
arch/x86/events/intel/rapl.c | 2 +
arch/x86/events/intel/uncore.c | 2 +-
arch/x86/events/perf_event.h | 5 +-
arch/x86/include/asm/mmu_context.h | 5 +-
drivers/bus/arm-cci.c | 2 +-
drivers/bus/arm-ccn.c | 4 +-
drivers/hwtracing/coresight/coresight-etm-perf.c | 59 +-
drivers/perf/arm_dsu_pmu.c | 2 +-
drivers/perf/arm_pmu.c | 2 +-
drivers/perf/hisilicon/hisi_uncore_pmu.c | 3 +-
drivers/perf/qcom_l2_pmu.c | 7 +-
drivers/perf/qcom_l3_pmu.c | 2 +-
drivers/perf/xgene_pmu.c | 4 +-
include/linux/hw_breakpoint.h | 7 +
include/linux/perf_event.h | 44 +-
include/linux/trace_events.h | 8 +
include/uapi/linux/perf_event.h | 27 +-
kernel/events/core.c | 779 ++++++++++++++++-----
kernel/events/hw_breakpoint.c | 100 ++-
kernel/trace/trace_event_perf.c | 102 +++
kernel/trace/trace_kprobe.c | 91 ++-
kernel/trace/trace_probe.h | 11 +
kernel/trace/trace_uprobe.c | 86 ++-
tools/arch/powerpc/include/uapi/asm/unistd.h | 402 +++++++++++
tools/build/Makefile.feature | 6 +-
tools/build/feature/Makefile | 14 +-
tools/include/linux/bitmap.h | 2 +-
tools/include/uapi/linux/perf_event.h | 27 +-
tools/lib/api/fs/fs.c | 44 +-
tools/lib/api/fs/fs.h | 2 +
tools/lib/str_error_r.c | 2 +-
tools/lib/symbol/kallsyms.c | 4 +
tools/perf/Documentation/perf-annotate.txt | 11 +-
tools/perf/Documentation/perf-c2c.txt | 2 +-
tools/perf/Documentation/perf-data.txt | 2 +-
tools/perf/Documentation/perf-ftrace.txt | 2 +-
tools/perf/Documentation/perf-kallsyms.txt | 2 +-
tools/perf/Documentation/perf-kmem.txt | 6 +-
tools/perf/Documentation/perf-list.txt | 8 +-
tools/perf/Documentation/perf-mem.txt | 4 +
tools/perf/Documentation/perf-record.txt | 15 +-
tools/perf/Documentation/perf-report.txt | 8 +-
tools/perf/Documentation/perf-sched.txt | 2 +-
tools/perf/Documentation/perf-script-perl.txt | 2 +-
tools/perf/Documentation/perf-script.txt | 3 +
tools/perf/Documentation/perf-stat.txt | 33 +-
tools/perf/Documentation/perf-top.txt | 7 +-
tools/perf/Documentation/perf-trace.txt | 25 +
tools/perf/Documentation/perf.data-file-format.txt | 7 +-
tools/perf/Makefile.config | 27 +-
tools/perf/Makefile.perf | 10 +-
tools/perf/arch/arm/util/auxtrace.c | 2 +-
tools/perf/arch/arm/util/cs-etm.c | 51 +-
tools/perf/arch/arm64/include/arch-tests.h | 12 +
tools/perf/arch/arm64/tests/Build | 2 +
tools/perf/arch/arm64/tests/arch-tests.c | 16 +
tools/perf/arch/arm64/util/Build | 1 +
tools/perf/arch/arm64/util/unwind-libdw.c | 60 ++
tools/perf/arch/powerpc/Makefile | 25 +
.../perf/arch/powerpc/entry/syscalls/mksyscalltbl | 37 +
tools/perf/arch/s390/annotate/instructions.c | 144 +++-
tools/perf/arch/s390/util/header.c | 148 +++-
tools/perf/arch/x86/tests/perf-time-to-tsc.c | 10 +-
tools/perf/arch/x86/util/auxtrace.c | 14 +-
tools/perf/builtin-annotate.c | 109 ++-
tools/perf/builtin-c2c.c | 247 ++++++-
tools/perf/builtin-ftrace.c | 18 +-
tools/perf/builtin-kvm.c | 16 +-
tools/perf/builtin-record.c | 82 ++-
tools/perf/builtin-report.c | 65 +-
tools/perf/builtin-sched.c | 133 ++--
tools/perf/builtin-script.c | 39 +-
tools/perf/builtin-stat.c | 116 ++-
tools/perf/builtin-top.c | 19 +-
tools/perf/builtin-trace.c | 60 +-
tools/perf/check-headers.sh | 2 +
tools/perf/perf.h | 3 +
tools/perf/pmu-events/Build | 2 +
tools/perf/pmu-events/README | 15 +-
.../arch/arm64/{ => arm}/cortex-a53/branch.json | 14 +-
.../pmu-events/arch/arm64/arm/cortex-a53/bus.json | 8 +
.../arch/arm64/arm/cortex-a53/cache.json | 27 +
.../arch/arm64/{ => arm}/cortex-a53/memory.json | 14 +-
.../arch/arm64/arm/cortex-a53/other.json | 28 +
.../arch/arm64/{ => arm}/cortex-a53/pipeline.json | 20 +-
.../pmu-events/arch/arm64/armv8-recommended.json | 452 ++++++++++++
.../arch/arm64/cavium/thunderx2-imp-def.json | 62 --
.../arch/arm64/cavium/thunderx2/core-imp-def.json | 32 +
.../perf/pmu-events/arch/arm64/cortex-a53/bus.json | 22 -
.../pmu-events/arch/arm64/cortex-a53/cache.json | 27 -
.../pmu-events/arch/arm64/cortex-a53/other.json | 32 -
.../arch/arm64/hisilicon/hip08/core-imp-def.json | 122 ++++
tools/perf/pmu-events/arch/arm64/mapfile.csv | 6 +-
.../perf/pmu-events/arch/powerpc/power9/cache.json | 25 -
.../pmu-events/arch/powerpc/power9/frontend.json | 10 -
.../pmu-events/arch/powerpc/power9/marked.json | 5 -
.../pmu-events/arch/powerpc/power9/memory.json | 5 -
.../perf/pmu-events/arch/powerpc/power9/other.json | 241 ++++---
.../pmu-events/arch/powerpc/power9/pipeline.json | 50 +-
tools/perf/pmu-events/arch/powerpc/power9/pmc.json | 5 -
.../arch/powerpc/power9/translation.json | 10 +-
tools/perf/pmu-events/arch/s390/cf_z10/basic.json | 74 ++
tools/perf/pmu-events/arch/s390/cf_z10/crypto.json | 98 +++
.../perf/pmu-events/arch/s390/cf_z10/extended.json | 110 +++
tools/perf/pmu-events/arch/s390/cf_z13/basic.json | 74 ++
tools/perf/pmu-events/arch/s390/cf_z13/crypto.json | 98 +++
.../perf/pmu-events/arch/s390/cf_z13/extended.json | 338 +++++++++
tools/perf/pmu-events/arch/s390/cf_z14/basic.json | 50 ++
tools/perf/pmu-events/arch/s390/cf_z14/crypto.json | 98 +++
.../perf/pmu-events/arch/s390/cf_z14/extended.json | 320 +++++++++
tools/perf/pmu-events/arch/s390/cf_z196/basic.json | 74 ++
.../perf/pmu-events/arch/s390/cf_z196/crypto.json | 98 +++
.../pmu-events/arch/s390/cf_z196/extended.json | 146 ++++
.../perf/pmu-events/arch/s390/cf_zec12/basic.json | 74 ++
.../perf/pmu-events/arch/s390/cf_zec12/crypto.json | 98 +++
.../pmu-events/arch/s390/cf_zec12/extended.json | 212 ++++++
tools/perf/pmu-events/arch/s390/mapfile.csv | 6 +
tools/perf/pmu-events/jevents.c | 291 ++++++--
tools/perf/python/twatch.py | 8 +-
.../perf/scripts/python/Perf-Trace-Util/Context.c | 34 +-
tools/perf/tests/Build | 2 +
tools/perf/tests/attr.c | 4 +-
tools/perf/tests/backward-ring-buffer.c | 5 +-
tools/perf/tests/bp_account.c | 193 +++++
tools/perf/tests/bpf.c | 8 +-
tools/perf/tests/builtin-test.c | 8 +
tools/perf/tests/code-reading.c | 43 +-
tools/perf/tests/dwarf-unwind.c | 46 +-
tools/perf/tests/keep-tracking.c | 9 +-
tools/perf/tests/mem.c | 2 +-
tools/perf/tests/mem2node.c | 75 ++
tools/perf/tests/mmap-basic.c | 11 +-
tools/perf/tests/openat-syscall-tp-fields.c | 10 +-
tools/perf/tests/perf-record.c | 10 +-
tools/perf/tests/pmu.c | 2 +-
tools/perf/tests/shell/lib/probe_vfs_getname.sh | 2 +-
...inet_pton.sh => record+probe_libc_inet_pton.sh} | 33 +-
tools/perf/tests/sw-clock.c | 11 +-
tools/perf/tests/switch-tracking.c | 10 +-
tools/perf/tests/task-exit.c | 11 +-
tools/perf/tests/tests.h | 2 +
tools/perf/tests/vmlinux-kallsyms.c | 4 +-
tools/perf/ui/browser.c | 9 +-
tools/perf/ui/browser.h | 3 +-
tools/perf/ui/browsers/annotate.c | 702 ++++---------------
tools/perf/ui/browsers/hists.c | 11 +-
tools/perf/ui/stdio/hist.c | 6 +-
tools/perf/util/Build | 1 +
tools/perf/util/annotate.c | 739 +++++++++++++++++--
tools/perf/util/annotate.h | 103 ++-
tools/perf/util/auxtrace.c | 37 +-
tools/perf/util/auxtrace.h | 2 +
tools/perf/util/build-id.c | 10 +-
tools/perf/util/cgroup.c | 128 +++-
tools/perf/util/cgroup.h | 13 +-
tools/perf/util/cs-etm-decoder/cs-etm-decoder.c | 74 +-
tools/perf/util/cs-etm-decoder/cs-etm-decoder.h | 2 +
tools/perf/util/cs-etm.c | 478 +++++++++++--
tools/perf/util/debug.c | 1 -
tools/perf/util/env.c | 4 +
tools/perf/util/env.h | 9 +
tools/perf/util/event.c | 16 +-
tools/perf/util/evlist.c | 54 +-
tools/perf/util/evlist.h | 4 -
tools/perf/util/evsel.c | 26 +-
tools/perf/util/evsel.h | 6 +-
tools/perf/util/header.c | 323 ++++++++-
tools/perf/util/header.h | 2 +
tools/perf/util/hist.c | 8 +-
tools/perf/util/hist.h | 1 -
.../perf/util/intel-pt-decoder/intel-pt-decoder.c | 64 +-
.../perf/util/intel-pt-decoder/intel-pt-decoder.h | 2 +-
tools/perf/util/intel-pt.c | 110 ++-
tools/perf/util/llvm-utils.c | 14 +
tools/perf/util/machine.c | 139 ++--
tools/perf/util/machine.h | 6 +-
tools/perf/util/mem2node.c | 134 ++++
tools/perf/util/mem2node.h | 19 +
tools/perf/util/mmap.c | 114 ++-
tools/perf/util/mmap.h | 16 +-
tools/perf/util/parse-events.c | 25 +-
tools/perf/util/parse-events.h | 2 +-
tools/perf/util/parse-events.l | 2 +-
tools/perf/util/parse-events.y | 18 +-
tools/perf/util/pmu.c | 49 +-
tools/perf/util/probe-finder.c | 13 +-
tools/perf/util/python.c | 110 ++-
tools/perf/util/record.c | 43 +-
.../util/scripting-engines/trace-event-python.c | 147 ++--
tools/perf/util/setup.py | 8 +-
tools/perf/util/sort.c | 7 +-
tools/perf/util/stat.c | 2 +-
tools/perf/util/stat.h | 4 +-
tools/perf/util/symbol.c | 35 +-
tools/perf/util/symbol.h | 19 +-
tools/perf/util/syscalltbl.c | 8 +
tools/perf/util/thread.h | 1 -
tools/perf/util/thread_map.c | 5 +-
tools/perf/util/thread_map.h | 3 +-
tools/perf/util/unwind-libdw.c | 5 +-
213 files changed, 9434 insertions(+), 2231 deletions(-)
create mode 100644 tools/arch/powerpc/include/uapi/asm/unistd.h
create mode 100644 tools/perf/arch/arm64/include/arch-tests.h
create mode 100644 tools/perf/arch/arm64/tests/arch-tests.c
create mode 100644 tools/perf/arch/arm64/util/unwind-libdw.c
create mode 100755 tools/perf/arch/powerpc/entry/syscalls/mksyscalltbl
rename tools/perf/pmu-events/arch/arm64/{ => arm}/cortex-a53/branch.json (76%)
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a53/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a53/cache.json
rename tools/perf/pmu-events/arch/arm64/{ => arm}/cortex-a53/memory.json (50%)
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a53/other.json
rename tools/perf/pmu-events/arch/arm64/{ => arm}/cortex-a53/pipeline.json (97%)
create mode 100644 tools/perf/pmu-events/arch/arm64/armv8-recommended.json
delete mode 100644 tools/perf/pmu-events/arch/arm64/cavium/thunderx2-imp-def.json
create mode 100644 tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
delete mode 100644 tools/perf/pmu-events/arch/arm64/cortex-a53/bus.json
delete mode 100644 tools/perf/pmu-events/arch/arm64/cortex-a53/cache.json
delete mode 100644 tools/perf/pmu-events/arch/arm64/cortex-a53/other.json
create mode 100644 tools/perf/pmu-events/arch/arm64/hisilicon/hip08/core-imp-def.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z10/basic.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z10/crypto.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z10/extended.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z13/basic.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z13/crypto.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z13/extended.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z14/basic.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z14/crypto.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z14/extended.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z196/basic.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z196/crypto.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z196/extended.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_zec12/basic.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_zec12/crypto.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_zec12/extended.json
create mode 100644 tools/perf/pmu-events/arch/s390/mapfile.csv
create mode 100644 tools/perf/tests/bp_account.c
create mode 100644 tools/perf/tests/mem2node.c
rename tools/perf/tests/shell/{trace+probe_libc_inet_pton.sh => record+probe_libc_inet_pton.sh} (58%)
create mode 100644 tools/perf/util/mem2node.c
create mode 100644 tools/perf/util/mem2node.h