[GIT PULL] perf changes for v4.8

From: Ingo Molnar
Date: Mon Jul 25 2016 - 04:28:58 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: 5048c2af078d5976895d521262a8802ea791f3b0 Merge tag 'perf-core-for-mingo-20160718' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core

With over 300 commits it's been a busy cycle - with most of the work concentrated
on the tooling side (as it should). The main kernel side enhancements were:

- Add per event callchain limit: Recently we introduced a sysctl to tune the
max-stack for all events for which callchains were requested:

$ sysctl kernel.perf_event_max_stack
kernel.perf_event_max_stack = 127

Now this patch introduces a way to configure this per event, i.e. this
becomes possible:

$ perf record -e sched:*/max-stack=2/ -e block:*/max-stack=10/ -a

allowing finer tuning of how much buffer space callchains use.

This uses an u16 from the reserved space at the end, leaving another
u16 for future use.

There has been interest in even finer tuning, namely to control the
max stack for kernel and userspace callchains separately. Further
discussion is needed, we may for instance use the remaining u16 for
that and when it is present, assume that the sample_max_stack introduced
in this patch applies for the kernel, and the u16 left is used for
limiting the userspace callchain. (Arnaldo Carvalho de Melo)

- Optimize AUX event (hardware assisted side-band event) delivery (Kan Liang)

- Rework Intel family name macro usage (this is partially x86 arch work)
(Dave Hansen)

- Refine and fix Intel LBR support (David Carrillo-Cisneros)

- Add support for Intel 'TopDown' events (Andi Kleen)

- Intel uncore PMU driver fixes and enhancements (Kan Liang)

- ... other misc changes.

Here's an incomplete list of the tooling enhancements (but there's much more, see
the shortlog and the git log for details):

- Support cross unwinding, i.e. collecting '--call-graph dwarf' perf.data files
in one machine and then doing analysis in another machine of a different
hardware architecture. This enables, for instance, to do:

perf record -a --call-graph dwarf

on a x86-32 or aarch64 system and then do 'perf report' on it on a
x86_64 workstation. (He Kuang)

- Allow reading from a backward ring buffer (one setup via sys_perf_event_open()
with perf_event_attr.write_backward = 1) (Wang Nan)

- Finish merging initial SDT (Statically Defined Traces) support, see
cset comments for details about how it all works (Masami Hiramatsu)

- Support attaching eBPF programs to tracepoints (Wang Nan)

- Add demangling of symbols in programs written in the Rust language (David Tolnay)

- Add support for tracepoints in the python binding, including an example, that
sets up and parses sched:sched_switch events, tools/perf/python/tracepoint.py
(Jiri Olsa)

- Introduce --stdio-color to set up the color output mode selection in
'annotate' and 'report', allowing emit color escape sequences when
redirecting the output of these tools (Arnaldo Carvalho de Melo)

- Add 'callindent' option to 'perf script -F', to indent the Intel PT
call stack, making this output more ftrace-like (Adrian Hunter, Andi Kleen)

- Allow dumping the object files generated by llvm when processing eBPF
scriptlet events (Wang Nan)

- Add stackcollapse.py script to help generating flame graphs (Paolo Bonzini)

- Add --ldlat option to 'perf mem' to specify load latency for loads
event (e.g. cpu/mem-loads/ ) (Jiri Olsa)

- Tooling support for Intel TopDown counters, recently added to the kernel (Andi Kleen)

Thanks,

Ingo

------------------>
Adrian Hunter (4):
perf script: Fix documentation of '-f' when it should be '-F'
perf script: Print sample flags more nicely
perf auxtrace: Add option to feed branches to the thread stack
perf script: Add callindent option

Andi Kleen (13):
perf thread: Adopt get_main_thread from db-export.c
x86/topology: Add topology_max_smt_threads()
perf/x86: Support sysfs files depending on SMT status
perf/x86/intel: Add topdown events to Intel Core
perf/x86/intel: Add topdown events to Intel Atom
perf/x86/intel: Use new topology_max_smt_threads() in HT leak workaround
perf test: Ignore .scale and other special files
perf stat: Basic support for TopDown in perf stat
perf stat: Add computation of TopDown formulas
perf stat: Print topology/time headers with --metric-only
perf stat: Add missing aggregation headers for --metric-only CSV
perf/x86/intel, watchdog: Switch NMI watchdog to ref cycles on x86
perf tools: Add documentation for perf.data on disk format

Arnaldo Carvalho de Melo (96):
perf core: Per event callchain limit
perf tools: Per event max-stack settings
perf evsel: Provide way to extract integer value from format_field
tools lib bpf: Use IS_ERR() reporting macros with bpf_map__get_private()
tools lib bpf: Rename bpf_map__get_name() to bpf_map__name()
tools lib bpf: Use IS_ERR() reporting macros with bpf_map__get_def()
tools lib bpf: Rename bpf_map__get_fd() to bpf_map__fd()
tools lib bpf: Remove _get_ from non-refcount method names
tools lib bpf: Make bpf_program__get_private() use IS_ERR()
tools lib bpf: Rename set_private() to set_priv()
perf tools: Remove some unused functions
perf tools: Remove --perf-dir and --work-dir
perf evsel: Fix write_backwards fallback
perf script stackcollapse: Remove reference to the perl interpreter
perf evlist: Destructors should accept NULL
perf session: Destructors should accept NULL
perf tests time-to-tsc: No need to disable an event before deleting it
perf machine: Destructors should accept NULL
perf evlist: Rename for_each() macros to for_each_entry()
perf tools: Rename strlist_for_each() macros to for_each_entry()
perf rb_resort: Rename for_each() macros to for_each_entry()
perf intlist: Rename for_each() macros to for_each_entry()
perf trace beauty sched_policy: Define SCHED_RESET_ON_FORK for older systems
perf trace beauty eventfd: No need to include eventfd.h
perf build: Add feature detection for libelf's elf_getshdrstrndx()
perf tools: Sync copy of syscall_64.tbl with the kernel
perf ui stdio: Add way to setup the color output mode selection
perf annotate: Introduce --stdio-color to setup the color output mode selection
perf report: Introduce --stdio-color to setup the color output mode selection
perf trace beauty msg_flags: Remove MSG_TRYHARD
perf trace beauty flock: Add missing fcntl.h include
perf trace beauty open_flags: Add missing headers
perf trace beauty mmap: Add more conditional defines
perf trace beauty flock: Add more conditional defines
perf trace beauty open_flags: Add more conditional defines
tools: Introduce str_error_r()
perf bench: Add missing pthread.h include for CPU_*() macros
perf tests: Add missing pthread.h include for CPU_*() macros
perf trace: Add conditional define for AT_FDCWD
perf tests openat-syscall-tp-fields: Add some conditional defines
perf bench: Disentangle headers
perf tools: Move syscall number fallbacks from perf-sys.h to tools/arch/x86/include/asm/
perf strbuf: Add missing headers
perf quote: Disentangle headers
perf tests cpumap: Add missing headers
perf test fdarray: Add missing poll.h header
perf tests x86 rdpmc: Add missing headers
perf tools: Add missing header to color.c
perf tools: Remove needless includes from cache.h
perf evsel: Uninline the is_function_event method
perf tools: Uninline scnprintf() and vscnprint()
tools lib traceevent: Use str_error_r()
tools lib api fs: Use str_error_r()
tools lib: Guard the strlcpy() header with __GLIBC__
tools lib subcmd: Use str_error_r()
perf bench futex: Add missing compiler.h header
perf tools: event.h needs asm/perf_regs.h
tools: Add copy of perf_event.h to tools/include/linux/
perf bench: Copy kernel files needed to build mem{cpy,set} x86_64 benchmarks
tools lib bpf: Copy bpf.h and bpf_common.h from the kernel
tools: Copy uapi/asm/perf_regs.h from the kernel
perf test bpf: Use epoll_wait() instead of epoll_pwait()
tools: Copy uapi/linux/hw_breakpoint.h from the kernel
perf tools: Introduce weak alternative to sched_getcpu()
perf tools: Remove unneeded magic.h include from util.h
perf trace: Remove unused sys/ptrace.h include
kvm arm/arm64: Remove trailing whitespace from headers
tools: Copy the header files needed by perf tools
perf tools: Fallback to reading sysfs to get cacheline size
perf trace beauty futex_op: Add missing defines for older systems
perf trace beauty seccomp: Remove seccomp.h include
perf symbols: Provide a GElf_Nhdr typedef
perf script python: Silence -Werror=maybe-uninitialized on gcc 5.3.0
tools: Copy the bitsperlong.h files from the kernel
perf tools: Add the tools/ stringify copy to the MANIFEST
perf tools: Don't add kernel directories to the header search path
perf intel-pt-decoder: Avoid checking code drift on busibox's diff
perf tools: Add feature detection for gelf_getnote()
tools: Fix up BITS_PER_LONG setting
objtool: Add fallback from ELF_C_READ_MMAP to ELF_C_READ
objtool: Avoid checking code drift on busybox's diff
tools lib traceevent: Add correct header for ipv6 definitions
perf tools: Do not provide dup sched_getcpu() prototype on Android
tools: Make "__always_inline" just "inline" on Android
perf tools: Just pr_debug() about not being able to read cacheline_size
perf tools: Bail out at "--sort dcacheline" and cacheline_size not known
perf evlist: Drop redundant evsel->overwrite indicator
objtool: Add -I$(srctree)/tools/arch/$(ARCH)/include/uapi
objtool: Initialize variable to silence old compiler
perf tools: Add missing linux/compiler.h include to perf-sys.h
perf tools: Remove tools/perf/util/include/asm/byteorder.h
perf tools: Remove tools/perf/util/include/linux/const.h
Remove: kernel unistd*h files from perf's MANIFEST, not used
tools: Copy the bitops files accessed from the kernel and check for drift
perf tools: Remove include/linux/list.h from perf's MANIFEST
tools: Copy linux/{hash,poison}.h and check for drift

Bjorn Helgaas (1):
perf/x86/intel/uncore: Remove redundant pci_get_drvdata()

Chris Phlipot (3):
tools lib api: Respect WERROR=0 for build
tools lib subcmd: Respect WERROR=0 for build
perf tools: Update android build documentation

Colin Ian King (1):
tools lib bpf: Fix spelling mistake: "missmatch" -> "mismatch"

Dan Carpenter (2):
perf jit: Add missing curly braces
perf jit: Remove some no-op error handling

Dave Hansen (7):
perf/x86/intel: Use Intel family macros for core perf events
perf/x86/rapl: Use Intel family macros for RAPL
perf/x86/msr: Use Intel family macros for MSR events code
perf/x86/msr: Add missing Intel models
perf/x86/cstate: Use Intel Model name macros
perf/x86/uncore: Use Intel family name macros for uncore
x86/pmc_core: Use Intel family name macros for pmc_core driver

David Carrillo-Cisneros (5):
perf/core: Fix crash due to account/unaccount_sb_event() inconsistency
perf/x86/intel: Print LBR support statement after validation
perf/x86/intel: Fix MSR_LAST_BRANCH_FROM_x bug when no TSX
perf/x86/intel: Fix trivial formatting and style bug
perf/x86/intel: Add MSR_LAST_BRANCH_FROM_x quirk for ctx switch

David Tolnay (1):
perf symbols: Add Rust demangling

He Kuang (21):
perf script: Show call graphs when 1st event doesn't have it but some other has
perf unwind: Use LIBUNWIND_DIR for remote libunwind feature check
perf unwind: Decouple thread->address_space on libunwind
perf unwind: Introduce 'struct unwind_libunwind_ops' for local unwind
perf unwind: Move unwind__prepare_access from thread_new into thread__insert_map
perf unwind: Don't mix LIBUNWIND_LIBS into LIBUNWIND_LDFLAGS
perf unwind: Separate local/remote libunwind config
perf unwind: Rename unwind-libunwind.c to unwind-libunwind-local.c
perf tools: Extract common API out of unwind-libunwind-local.c
perf tools: Export normalize_arch() function
perf unwind: Check the target platform before assigning unwind methods
perf unwind: Change fixed name of libunwind__arch_reg_id to macro
perf unwind: Introduce flag to separate local/remote unwind compilation
perf callchain: Support x86 target platform
perf callchain: Support aarch64 cross-platform
perf unwind: Fix compile error for static cross build
perf tools: Let python use correct gcc for build_ext
perf tools: Find right DSO taking into account if binary is 32 or 64-bit
perf unwind: Change macro names of perf register
perf unwind: Fix wrongly used regs for x86_32 unwind
perf unwind: Fix wrongly used regs for aarch64 unwind

Hemant Kumar (1):
perf sdt: ELF support for SDT

Ingo Molnar (2):
Revert "perf/x86/intel, watchdog: Switch NMI watchdog to ref cycles on x86"
tools: Work around BITS_PER_LONG related build failure in objtool

Jacob Pan (1):
perf/x86/rapl: Add Skylake server model detection

Jean Delvare (1):
kbuild: List libelf-devel as an alternative

Jiri Olsa (44):
perf mem: Add --ldlat option
perf tools: Fix Data Object sort entry width index
perf tui: Separate hierarchy and standard headers output
perf stdio: Separate headers output
perf stdio: Separate hierarchy headers output
perf stdio: Separate standard headers output
perf stdio: Do not pass hists in hist_entry__fprintf
perf stdio: Add use_callchain parameter to hists__fprintf
perf hists: Replace perf_evsel arg perf_hpp_fmt's header callback
perf hists: Replace perf_evsel arg perf_hpp_fmt's width callback
perf hists: Rename __hists__add_entry to hists__add_entry
perf hists browser: Move hist_browser into header file
perf hists browser: Make (new|delete|run) public
perf hists browser: Introduce struct hist_browser title callback
perf hists browser: Move horizontal scroll init to new()
perf hists browser: Introduce perf_evsel_browser constructor
perf hists browser: Introduce init()
perf hists: Enlarge pid sort entry size
perf data convert: Include config.h header
perf symbols: Use proper dso name for is_regular_file
perf tools: Allow to reset open files counter
perf tests: Fix thread map test for -F option
perf test: Add -F/--dont-fork option
perf tools: Change cpu_map__fprintf output
perf header: Transform nodes string info to struct
perf tests: Fix hist accumulation test
perf unwind: Add initialized arg into unwind__prepare_access
perf unwind: Call unwind__prepare_access for forked thread
perf hists: Introduce hist_entry__init function
perf hists: Introduce hist_entry_ops
perf hists: Introduce hists__add_entry_ops function
perf evlist: Make event2evsel public
perf tools: Introduce trace_event__tp_format_id()
perf python: Init perf_event_attr::size in perf.evsel constructor
perf python: Fix pyrf_evlist__read_on_cpu event consuming
perf python: Put perf.event objects into dictionary
perf python: Add perf.tracepoint method
perf python: Add struct evsel into struct pyrf_event
perf python: Add support to resolve tracepoint fields
perf python: Add tracepoint example
tools lib api fs: Use base 0 in filename__read_ull
perf script python: Fix string vs byte array resolving
perf tools: Make is_printable_array global
perf tests: Add is_printable_array test

Kan Liang (4):
perf/core: Optimize side-band event delivery
perf/core: Fix implicitly enable dynamic interrupt throttle
perf/x86/intel/uncore: Locate specific box by checking full device info
perf/x86/intel/uncore: Add support for the Intel Skylake client uncore PMU

Lucas Stach (1):
tools lib api: Respect CROSS_COMPILE for the linker

Lukasz Odzioba (2):
perf/x86/intel: Add 'static' keyword to locally used arrays
perf/x86/intel: Change offcore response masks for Knights Landing

Mark Rutland (2):
perf stat: Balance opening and reading events
perf cpu_map: Add more helpers

Masami Hiramatsu (27):
perf symbols: Introduce filename__readable to check readability
perf symbols: Cleanup the code flow of dso__find_kallsyms
perf buildid-cache: Use path/to/bin/buildid/elf instead of path/to/bin/buildid
perf tools: Fix rm_rf() to handle non-regular files correctly
perf probe: Fix to add NULL check for strndup
perf buildid: Rename and export build_id_cache__cachedir()
perf probe: Add perf_probe_event__copy()
perf probe: Uncomment and export synthesize_perf_probe_point()
perf probe: Introduce perf_cache interfaces
perf probe: Add --cache option to cache the probe definitions
perf probe: Use cache entry if possible
perf probe: Show all cached probes
perf probe: Remove caches when --cache is given
perf probe: Add group name support
perf buildid-cache: Scan and import user SDT events to probe cache
perf probe: Fix to show correct error message for $vars and $params
perf probe: Accept %sdt and %cached event name
perf probe: Make --list show only available cached events
perf probe-cache: Add for_each_probe_cache_entry() wrapper
perf probe: Allow wildcard for cached events
perf probe: Search SDT/cached event from all probe caches
perf list: Show SDT and pre-cached events
perf probe: Support @BUILDID or @FILE suffix for SDT events
perf probe: Support a special SDT probe format
perf build: Add sdt feature detection
perf test: Add a test case for SDT event
perf probe: Warn unmatched function filter correctly

Naveen N. Rao (1):
perf annotate: Generalize handling of 'ret' instructions

Neeraj Badlani (1):
perf tools: Update makefile message for installing slang devel package

Paolo Bonzini (1):
perf script: Add stackcollapse.py script

Peter Zijlstra (4):
perf/core: Rename the perf_event_aux*() APIs to perf_event_sb*(), to separate them from AUX ring-buffer records
perf/x86/intel: Add {rd,wr}lbr_{to,from} wrappers
perf/x86/intel: Fix rdlbr_to() MSR reading typo
tools: Simplify BITS_PER_LONG define

Peter Zijlstra (Intel) (2):
perf annotate: Simplify header dotted line sizing
perf annotate: Add number of samples to the header

Ravi Bangoria (3):
perf annotate: Remove unused hist_entry__annotate function
perf tools: Add more toolchain triplets
perf evsel: Utility function to fetch arch

Steven Rostedt (1):
tools lib traceevent: Add filter on task CPU id

Taeung Song (9):
perf tools: Add arch/*/include/generated/ to .gitignore
perf config: Fix abnormal termination at perf_parse_file()
perf config: Handle the error when config set is NULL at collect_config()
perf config: Constructor should free its allocated memory when failing
perf config: Use new perf_config_set__init() to initialize config set
perf config: Handle NULL at perf_config_set__delete()
perf config: Move config declarations from util/cache.h to util/config.h
perf config: Introduce new init() and exit()
perf config: Reimplement show_config() using config_set__for_each

Vineet Gupta (2):
perf/abi: Change the errno for sampling event not supported in hardware
tools/perf: Handle -EOPNOTSUPP for sampling events

Wang Nan (40):
perf record: Robustify perf_event__synth_time_conv()
perf evlist: Don't poll and mmap overwritable events
perf evlist: Check 'base' pointer before checking refcnt when put a mmap
perf evlist: Choose correct reading direction according to evlist->backward
tools: Pass arg to fdarray__filter's call back function
perf evlist: Fix alloc_mmap() failure path
perf tools: Fix crash in build_id_cache__kallsyms_path()
perf llvm: Allow dump llvm output object file using llvm.dump-obj
perf record: Add --dry-run option to check cmdline options
perf build: Add libbabeltrace to build-test
perf record: Move mmap setup block to separate function
perf record: Prepare reading from multiple evlists in record__mmap_read_all()
perf record: Prepare picking perf_event_mmap_page from multiple evlists
perf data ctf: Add value_set_string() helper
perf data ctf: Pass convert options through opts structure
perf data ctf: Add 'all' option
perf data ctf: Prepare collect non-sample events
perf data ctf: Generate comm event to CTF output
perf data ctf: Add '--all' option for 'perf data convert'
perf data ctf: Generate fork and exit events to CTF output
tools lib bpf: Add license header
tools lib bpf: New API to adjust type of a BPF program
tools lib bpf: Report error when kernel doesn't support program type
perf event parser: Add const qualifier to evt_name and sys_name
perf bpf: Rename bpf__foreach_tev() to bpf__foreach_event()
perf bpf: Support BPF program attach to tracepoints
tools lib fd array: Allow associating a pointer cookie with each entry
perf evlist: Update mmap related APIs and helpers
perf record: Decouple record__mmap_read() and evlist.
perf evlist: Record mmap cookie into fdarray private field
perf evlist: Extract common code in mmap failure processing
perf evlist: Introduce backward_mmap array for evlist
perf evlist: Map backward events to backward_mmap
perf evlist: Drop evlist->backward
perf evlist: Setup backward mmap state machine
perf record: Read from overwritable ring buffer
perf evlist: Make {pause,resume} internal helpers
perf tools: Enable overwrite settings
perf session: Don't warn about out of order event if write_backward is used
perf record: Add --tail-synthesize option


Makefile | 2 +-
arch/arm/include/uapi/asm/kvm.h | 4 +-
arch/x86/events/core.c | 23 +
arch/x86/events/intel/core.c | 201 +++--
arch/x86/events/intel/cstate.c | 47 +-
arch/x86/events/intel/lbr.c | 124 ++-
arch/x86/events/intel/rapl.c | 32 +-
arch/x86/events/intel/uncore.c | 88 +-
arch/x86/events/intel/uncore.h | 5 +
arch/x86/events/intel/uncore_snb.c | 67 +-
arch/x86/events/intel/uncore_snbep.c | 96 +-
arch/x86/events/msr.c | 63 +-
arch/x86/events/perf_event.h | 12 +
arch/x86/include/asm/topology.h | 9 +
arch/x86/kernel/smpboot.c | 25 +-
drivers/platform/x86/intel_pmc_core.c | 9 +-
include/linux/perf_event.h | 15 +-
include/uapi/linux/perf_event.h | 6 +-
kernel/bpf/stackmap.c | 2 +-
kernel/events/callchain.c | 14 +-
kernel/events/core.c | 158 +++-
tools/arch/alpha/include/uapi/asm/bitsperlong.h | 8 +
tools/arch/arm/include/uapi/asm/kvm.h | 224 +++++
tools/arch/arm/include/uapi/asm/perf_regs.h | 23 +
tools/arch/arm64/include/uapi/asm/bitsperlong.h | 23 +
tools/arch/arm64/include/uapi/asm/kvm.h | 258 ++++++
tools/arch/arm64/include/uapi/asm/perf_regs.h | 40 +
tools/arch/frv/include/uapi/asm/bitsperlong.h | 1 +
tools/arch/h8300/include/asm/bitsperlong.h | 14 +
tools/arch/hexagon/include/uapi/asm/bitsperlong.h | 26 +
tools/arch/ia64/include/uapi/asm/bitsperlong.h | 8 +
tools/arch/m32r/include/uapi/asm/bitsperlong.h | 1 +
.../arch/microblaze/include/uapi/asm/bitsperlong.h | 1 +
tools/arch/mips/include/uapi/asm/bitsperlong.h | 8 +
tools/arch/mips/include/uapi/asm/kvm.h | 208 +++++
tools/arch/mn10300/include/uapi/asm/bitsperlong.h | 1 +
tools/arch/parisc/include/uapi/asm/bitsperlong.h | 14 +
tools/arch/powerpc/include/uapi/asm/bitsperlong.h | 12 +
tools/arch/powerpc/include/uapi/asm/kvm.h | 612 +++++++++++++
tools/arch/powerpc/include/uapi/asm/perf_regs.h | 50 ++
tools/arch/s390/include/uapi/asm/bitsperlong.h | 12 +
tools/arch/s390/include/uapi/asm/kvm.h | 192 ++++
tools/arch/s390/include/uapi/asm/kvm_perf.h | 25 +
tools/arch/s390/include/uapi/asm/sie.h | 250 ++++++
tools/arch/score/include/uapi/asm/bitsperlong.h | 6 +
tools/arch/sparc/include/uapi/asm/bitsperlong.h | 12 +
tools/arch/tile/include/uapi/asm/bitsperlong.h | 26 +
tools/arch/x86/include/asm/cpufeatures.h | 316 +++++++
tools/arch/x86/include/asm/disabled-features.h | 60 ++
tools/arch/x86/include/asm/required-features.h | 103 +++
tools/arch/x86/include/asm/unistd_32.h | 12 +
tools/arch/x86/include/asm/unistd_64.h | 12 +
tools/arch/x86/include/uapi/asm/bitsperlong.h | 12 +
tools/arch/x86/include/uapi/asm/kvm.h | 360 ++++++++
tools/arch/x86/include/uapi/asm/kvm_perf.h | 16 +
tools/arch/x86/include/uapi/asm/perf_regs.h | 33 +
tools/arch/x86/include/uapi/asm/svm.h | 178 ++++
tools/arch/x86/include/uapi/asm/vmx.h | 136 +++
tools/arch/x86/lib/memcpy_64.S | 297 +++++++
tools/arch/x86/lib/memset_64.S | 138 +++
tools/build/Makefile.feature | 5 +-
tools/build/feature/Makefile | 14 +-
tools/build/feature/test-all.c | 15 +
tools/build/feature/test-libelf-gelf_getnote.c | 7 +
tools/build/feature/test-libelf-getshdrstrndx.c | 8 +
tools/build/feature/test-sdt.c | 7 +
tools/include/asm-generic/bitops/__ffs.h | 1 +
tools/include/asm-generic/bitops/__fls.h | 44 +-
tools/include/asm-generic/bitops/arch_hweight.h | 26 +-
tools/include/asm-generic/bitops/atomic.h | 1 +
tools/include/asm-generic/bitops/const_hweight.h | 44 +-
tools/include/asm-generic/bitops/fls.h | 42 +-
tools/include/asm-generic/bitops/fls64.h | 37 +-
tools/include/asm-generic/bitsperlong.h | 20 +
.../{perf/util => }/include/asm/alternative-asm.h | 4 +-
tools/include/linux/bitops.h | 4 +-
tools/include/linux/compiler.h | 11 +
tools/include/linux/hash.h | 105 ++-
tools/include/linux/kernel.h | 28 +-
tools/include/linux/poison.h | 91 +-
tools/include/linux/string.h | 4 +-
tools/include/uapi/asm-generic/bitsperlong.h | 15 +
tools/include/uapi/linux/bpf.h | 389 ++++++++
tools/include/uapi/linux/bpf_common.h | 55 ++
tools/include/uapi/linux/hw_breakpoint.h | 30 +
tools/include/uapi/linux/perf_event.h | 983 +++++++++++++++++++++
tools/lib/api/Makefile | 10 +-
tools/lib/api/fd/array.c | 5 +-
tools/lib/api/fd/array.h | 4 +-
tools/lib/api/fs/fs.c | 7 +-
tools/lib/api/fs/tracing_path.c | 3 +-
tools/lib/bpf/Makefile | 8 +-
tools/lib/bpf/bpf.c | 13 +
tools/lib/bpf/bpf.h | 13 +
tools/lib/bpf/libbpf.c | 149 ++--
tools/lib/bpf/libbpf.h | 50 +-
tools/lib/str_error_r.c | 26 +
tools/lib/subcmd/Makefile | 8 +-
tools/lib/subcmd/run-command.c | 5 +-
tools/lib/traceevent/event-parse.c | 11 +-
tools/lib/traceevent/parse-filter.c | 18 +-
tools/lib/vsprintf.c | 24 +
tools/objtool/Build | 5 +
tools/objtool/Makefile | 7 +-
tools/objtool/builtin-check.c | 3 +-
tools/objtool/elf.c | 7 +
tools/perf/.gitignore | 1 +
tools/perf/Documentation/android.txt | 16 +-
tools/perf/Documentation/perf-annotate.txt | 7 +
tools/perf/Documentation/perf-buildid-cache.txt | 3 +
tools/perf/Documentation/perf-data.txt | 4 +
tools/perf/Documentation/perf-mem.txt | 3 +
tools/perf/Documentation/perf-probe.txt | 32 +-
tools/perf/Documentation/perf-record.txt | 29 +
tools/perf/Documentation/perf-report.txt | 7 +
tools/perf/Documentation/perf-script.txt | 31 +-
tools/perf/Documentation/perf-stat.txt | 32 +
tools/perf/Documentation/perf-test.txt | 4 +
tools/perf/Documentation/perf.data-file-format.txt | 442 +++++++++
tools/perf/MANIFEST | 54 +-
tools/perf/Makefile.perf | 87 +-
tools/perf/arch/arm/util/Build | 2 +-
tools/perf/arch/arm64/util/Build | 2 +-
tools/perf/arch/arm64/util/unwind-libunwind.c | 4 +-
tools/perf/arch/common.c | 20 +-
tools/perf/arch/common.h | 1 +
tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 2 +
tools/perf/arch/x86/tests/perf-time-to-tsc.c | 6 +-
tools/perf/arch/x86/tests/rdpmc.c | 8 +-
tools/perf/arch/x86/util/Build | 3 +-
tools/perf/arch/x86/util/auxtrace.c | 2 +-
tools/perf/arch/x86/util/group.c | 27 +
tools/perf/arch/x86/util/intel-bts.c | 8 +-
tools/perf/arch/x86/util/intel-pt.c | 10 +-
tools/perf/arch/x86/util/tsc.c | 2 +
tools/perf/arch/x86/util/unwind-libunwind.c | 6 +-
tools/perf/bench/futex-hash.c | 15 +-
tools/perf/bench/futex-lock-pi.c | 11 +-
tools/perf/bench/futex-requeue.c | 11 +-
tools/perf/bench/futex-wake-parallel.c | 11 +-
tools/perf/bench/futex-wake.c | 11 +-
tools/perf/bench/mem-memcpy-x86-64-asm.S | 2 +-
tools/perf/bench/mem-memset-x86-64-asm.S | 2 +-
tools/perf/bench/numa.c | 4 +-
tools/perf/builtin-annotate.c | 7 +-
tools/perf/builtin-buildid-cache.c | 21 +-
tools/perf/builtin-config.c | 21 +-
tools/perf/builtin-data.c | 11 +-
tools/perf/builtin-diff.c | 29 +-
tools/perf/builtin-evlist.c | 2 +-
tools/perf/builtin-help.c | 10 +-
tools/perf/builtin-inject.c | 8 +-
tools/perf/builtin-kmem.c | 4 +-
tools/perf/builtin-kvm.c | 12 +-
tools/perf/builtin-list.c | 6 +-
tools/perf/builtin-mem.c | 1 +
tools/perf/builtin-probe.c | 38 +-
tools/perf/builtin-record.c | 211 ++++-
tools/perf/builtin-report.c | 18 +-
tools/perf/builtin-sched.c | 2 +-
tools/perf/builtin-script.c | 136 ++-
tools/perf/builtin-stat.c | 199 ++++-
tools/perf/builtin-top.c | 18 +-
tools/perf/builtin-trace.c | 19 +-
tools/perf/config/Makefile | 89 +-
tools/perf/jvmti/jvmti_agent.c | 10 +-
tools/perf/perf-sys.h | 19 +-
tools/perf/perf.c | 58 +-
tools/perf/perf.h | 2 +
tools/perf/python/tracepoint.py | 47 +
tools/perf/scripts/python/bin/stackcollapse-record | 8 +
tools/perf/scripts/python/bin/stackcollapse-report | 3 +
tools/perf/scripts/python/stackcollapse.py | 125 +++
tools/perf/tests/Build | 2 +
tools/perf/tests/backward-ring-buffer.c | 18 +-
tools/perf/tests/bpf-script-example.c | 4 +-
tools/perf/tests/bpf.c | 10 +-
tools/perf/tests/builtin-test.c | 69 +-
tools/perf/tests/cpumap.c | 31 +
tools/perf/tests/dso-data.c | 6 +
tools/perf/tests/event-times.c | 5 +-
tools/perf/tests/evsel-roundtrip-name.c | 2 +-
tools/perf/tests/fdarray.c | 9 +-
tools/perf/tests/hists_cumulate.c | 4 +
tools/perf/tests/hists_filter.c | 4 +-
tools/perf/tests/hists_link.c | 8 +-
tools/perf/tests/is_printable_array.c | 36 +
tools/perf/tests/llvm.c | 1 +
tools/perf/tests/make | 5 +-
tools/perf/tests/mmap-basic.c | 11 +-
tools/perf/tests/openat-syscall-all-cpus.c | 7 +-
tools/perf/tests/openat-syscall-tp-fields.c | 11 +-
tools/perf/tests/openat-syscall.c | 2 +-
tools/perf/tests/parse-events.c | 8 +-
tools/perf/tests/parse-no-sample-id-all.c | 3 +-
tools/perf/tests/perf-record.c | 11 +-
tools/perf/tests/sdt.c | 115 +++
tools/perf/tests/sw-clock.c | 4 +-
tools/perf/tests/switch-tracking.c | 2 +-
tools/perf/tests/task-exit.c | 4 +-
tools/perf/tests/tests.h | 3 +
tools/perf/tests/thread-map.c | 16 +-
tools/perf/trace/beauty/eventfd.c | 2 -
tools/perf/trace/beauty/flock.c | 17 +
tools/perf/trace/beauty/futex_op.c | 16 +
tools/perf/trace/beauty/mmap.c | 77 +-
tools/perf/trace/beauty/msg_flags.c | 1 -
tools/perf/trace/beauty/open_flags.c | 15 +
tools/perf/trace/beauty/sched_policy.c | 3 +
tools/perf/trace/beauty/seccomp.c | 2 -
tools/perf/ui/browser.c | 2 +-
tools/perf/ui/browsers/annotate.c | 21 +-
tools/perf/ui/browsers/hists.c | 150 ++--
tools/perf/ui/browsers/hists.h | 32 +
tools/perf/ui/gtk/hists.c | 4 +-
tools/perf/ui/gtk/util.c | 1 +
tools/perf/ui/helpline.c | 1 +
tools/perf/ui/hist.c | 13 +-
tools/perf/ui/setup.c | 7 +
tools/perf/ui/stdio/hist.c | 133 +--
tools/perf/ui/tui/setup.c | 2 +
tools/perf/ui/ui.h | 4 +
tools/perf/util/Build | 14 +
tools/perf/util/alias.c | 2 +
tools/perf/util/annotate.c | 27 +-
tools/perf/util/annotate.h | 3 +-
tools/perf/util/auxtrace.h | 2 +
tools/perf/util/bpf-loader.c | 203 +++--
tools/perf/util/bpf-loader.h | 12 +-
tools/perf/util/build-id.c | 320 ++++++-
tools/perf/util/build-id.h | 8 +
tools/perf/util/cache.h | 23 -
tools/perf/util/callchain.h | 2 +
tools/perf/util/cgroup.c | 4 +-
tools/perf/util/cloexec.c | 18 +-
tools/perf/util/color.c | 4 +
tools/perf/util/config.c | 160 ++--
tools/perf/util/config.h | 40 +
tools/perf/util/cpumap.c | 68 +-
tools/perf/util/cpumap.h | 3 +
tools/perf/util/data-convert-bt.c | 200 ++++-
tools/perf/util/data-convert-bt.h | 4 +-
tools/perf/util/data-convert.h | 9 +
tools/perf/util/data.c | 4 +-
tools/perf/util/db-export.c | 13 +-
tools/perf/util/debug.h | 2 +-
tools/perf/util/demangle-rust.c | 269 ++++++
tools/perf/util/demangle-rust.h | 7 +
tools/perf/util/dso.c | 28 +-
tools/perf/util/dso.h | 8 +
tools/perf/util/env.c | 5 +-
tools/perf/util/env.h | 10 +-
tools/perf/util/event.c | 2 +-
tools/perf/util/event.h | 1 +
tools/perf/util/evlist.c | 352 +++++---
tools/perf/util/evlist.h | 92 +-
tools/perf/util/evsel.c | 98 +-
tools/perf/util/evsel.h | 27 +-
tools/perf/util/group.h | 7 +
tools/perf/util/header.c | 94 +-
tools/perf/util/help-unknown-cmd.c | 2 +
tools/perf/util/hist.c | 228 +++--
tools/perf/util/hist.h | 32 +-
tools/perf/util/include/asm/byteorder.h | 2 -
tools/perf/util/include/asm/unistd_32.h | 1 -
tools/perf/util/include/asm/unistd_64.h | 1 -
tools/perf/util/include/linux/const.h | 1 -
tools/perf/util/intel-bts.c | 24 +-
tools/perf/util/intel-pt-decoder/Build | 5 +-
tools/perf/util/intel-pt.c | 26 +-
tools/perf/util/intlist.h | 8 +-
tools/perf/util/jitdump.c | 2 +-
tools/perf/util/levenshtein.c | 4 +-
tools/perf/util/libunwind/arm64.c | 40 +
tools/perf/util/libunwind/x86_32.c | 43 +
tools/perf/util/llvm-utils.c | 53 +-
tools/perf/util/llvm-utils.h | 5 +
tools/perf/util/machine.c | 20 +-
tools/perf/util/map.c | 12 +-
tools/perf/util/map.h | 2 +-
tools/perf/util/mem-events.c | 17 +-
tools/perf/util/mem-events.h | 1 +
tools/perf/util/parse-events.c | 142 ++-
tools/perf/util/parse-events.h | 7 +-
tools/perf/util/parse-events.l | 4 +
tools/perf/util/path.c | 67 +-
tools/perf/util/probe-event.c | 526 +++++++++--
tools/perf/util/probe-event.h | 6 +
tools/perf/util/probe-file.c | 547 +++++++++++-
tools/perf/util/probe-file.h | 42 +
tools/perf/util/probe-finder.c | 4 +-
tools/perf/util/python-ext-sources | 2 +
tools/perf/util/python.c | 152 +++-
tools/perf/util/quote.c | 4 +-
tools/perf/util/quote.h | 3 +-
tools/perf/util/rb_resort.h | 4 +-
tools/perf/util/record.c | 8 +-
.../util/scripting-engines/trace-event-python.c | 29 +-
tools/perf/util/session.c | 36 +-
tools/perf/util/sort.c | 36 +-
tools/perf/util/sort.h | 6 +
tools/perf/util/stat-shadow.c | 162 ++++
tools/perf/util/stat.c | 11 +-
tools/perf/util/stat.h | 5 +
tools/perf/util/strbuf.c | 2 +-
tools/perf/util/strbuf.h | 3 +
tools/perf/util/strlist.h | 4 +-
tools/perf/util/symbol-elf.c | 271 ++++++
tools/perf/util/symbol.c | 75 +-
tools/perf/util/symbol.h | 22 +
tools/perf/util/target.c | 3 +-
tools/perf/util/thread-stack.c | 7 +
tools/perf/util/thread-stack.h | 1 +
tools/perf/util/thread.c | 61 +-
tools/perf/util/thread.h | 11 +-
tools/perf/util/thread_map.c | 4 +-
tools/perf/util/trace-event.c | 8 +
tools/perf/util/trace-event.h | 2 +
tools/perf/util/unwind-libunwind-local.c | 699 +++++++++++++++
tools/perf/util/unwind-libunwind.c | 695 +--------------
tools/perf/util/unwind.h | 34 +-
tools/perf/util/util.c | 48 +-
tools/perf/util/util.h | 7 +-
tools/perf/util/vdso.c | 40 +-
324 files changed, 13994 insertions(+), 2546 deletions(-)
create mode 100644 tools/arch/alpha/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/arm/include/uapi/asm/kvm.h
create mode 100644 tools/arch/arm/include/uapi/asm/perf_regs.h
create mode 100644 tools/arch/arm64/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/arm64/include/uapi/asm/kvm.h
create mode 100644 tools/arch/arm64/include/uapi/asm/perf_regs.h
create mode 100644 tools/arch/frv/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/h8300/include/asm/bitsperlong.h
create mode 100644 tools/arch/hexagon/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/ia64/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/m32r/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/microblaze/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/mips/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/mips/include/uapi/asm/kvm.h
create mode 100644 tools/arch/mn10300/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/parisc/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/powerpc/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/powerpc/include/uapi/asm/kvm.h
create mode 100644 tools/arch/powerpc/include/uapi/asm/perf_regs.h
create mode 100644 tools/arch/s390/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/s390/include/uapi/asm/kvm.h
create mode 100644 tools/arch/s390/include/uapi/asm/kvm_perf.h
create mode 100644 tools/arch/s390/include/uapi/asm/sie.h
create mode 100644 tools/arch/score/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/sparc/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/tile/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/x86/include/asm/cpufeatures.h
create mode 100644 tools/arch/x86/include/asm/disabled-features.h
create mode 100644 tools/arch/x86/include/asm/required-features.h
create mode 100644 tools/arch/x86/include/asm/unistd_32.h
create mode 100644 tools/arch/x86/include/asm/unistd_64.h
create mode 100644 tools/arch/x86/include/uapi/asm/bitsperlong.h
create mode 100644 tools/arch/x86/include/uapi/asm/kvm.h
create mode 100644 tools/arch/x86/include/uapi/asm/kvm_perf.h
create mode 100644 tools/arch/x86/include/uapi/asm/perf_regs.h
create mode 100644 tools/arch/x86/include/uapi/asm/svm.h
create mode 100644 tools/arch/x86/include/uapi/asm/vmx.h
create mode 100644 tools/arch/x86/lib/memcpy_64.S
create mode 100644 tools/arch/x86/lib/memset_64.S
create mode 100644 tools/build/feature/test-libelf-gelf_getnote.c
create mode 100644 tools/build/feature/test-libelf-getshdrstrndx.c
create mode 100644 tools/build/feature/test-sdt.c
create mode 100644 tools/include/asm-generic/bitsperlong.h
rename tools/{perf/util => }/include/asm/alternative-asm.h (66%)
create mode 100644 tools/include/uapi/asm-generic/bitsperlong.h
create mode 100644 tools/include/uapi/linux/bpf.h
create mode 100644 tools/include/uapi/linux/bpf_common.h
create mode 100644 tools/include/uapi/linux/hw_breakpoint.h
create mode 100644 tools/include/uapi/linux/perf_event.h
create mode 100644 tools/lib/str_error_r.c
create mode 100644 tools/lib/vsprintf.c
create mode 100644 tools/perf/Documentation/perf.data-file-format.txt
create mode 100644 tools/perf/arch/x86/util/group.c
create mode 100755 tools/perf/python/tracepoint.py
create mode 100755 tools/perf/scripts/python/bin/stackcollapse-record
create mode 100755 tools/perf/scripts/python/bin/stackcollapse-report
create mode 100755 tools/perf/scripts/python/stackcollapse.py
create mode 100644 tools/perf/tests/is_printable_array.c
create mode 100644 tools/perf/tests/sdt.c
create mode 100644 tools/perf/ui/browsers/hists.h
create mode 100644 tools/perf/util/data-convert.h
create mode 100644 tools/perf/util/demangle-rust.c
create mode 100644 tools/perf/util/demangle-rust.h
create mode 100644 tools/perf/util/group.h
delete mode 100644 tools/perf/util/include/asm/byteorder.h
delete mode 100644 tools/perf/util/include/asm/unistd_32.h
delete mode 100644 tools/perf/util/include/asm/unistd_64.h
delete mode 100644 tools/perf/util/include/linux/const.h
create mode 100644 tools/perf/util/libunwind/arm64.c
create mode 100644 tools/perf/util/libunwind/x86_32.c
create mode 100644 tools/perf/util/unwind-libunwind-local.c

[ ... diff omitted due to size ... ]