From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932354AbcLLIvD (ORCPT ); Mon, 12 Dec 2016 03:51:03 -0500 Received: from mail-wj0-f196.google.com ([209.85.210.196]:32786 "EHLO mail-wj0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932329AbcLLIu7 (ORCPT ); Mon, 12 Dec 2016 03:50:59 -0500 Date: Mon, 12 Dec 2016 09:50:54 +0100 From: Ingo Molnar To: Linus Torvalds Cc: linux-kernel@vger.kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Jiri Olsa , Thomas Gleixner , Andrew Morton , Namhyung Kim , David Ahern Subject: [GIT PULL] perf changes for v4.10 Message-ID: <20161212085054.GA15104@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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: b0c1ef52959582144bbea9a2b37db7f4c9e399f7 perf/x86: Fix exclusion of BTS and LBR for Goldmont This tree is pretty big and almost exclusively includes tooling changes, because v4.9's LTS status forced to completion most of the pending kernel side hardware enablement work and because we tried to freeze core perf work a bit to give a time window for the fuzzing efforts. The tree has a large size mostly due to the JSON hardware event tables added for Intel and Power8 CPUs. This was a popular feature request from people working close to hardware and from the HPC community. Tree size is big because this added the CPU event tables for over a decade of Intel CPUs. Future changes for a CPU vendor alrady support should be much smaller, as events for new models are added. The new events are listed in 'perf list', for the CPU model the tool is running on. If you find an interesting event it can be used as-is: triton:~> perf stat -a -e l2_lines_out.pf_clean sleep 1 Performance counter stats for 'system wide': 7,860,403 l2_lines_out.pf_clean 1.000624918 seconds time elapsed The event lists can be searched the usual 'perf list' fashion for (case insensitive) substrings as well: triton:~> perf list l2_lines_out List of pre-defined events (to be used in -e): cache: l2_lines_out.demand_clean [Clean L2 cache lines evicted by demand] l2_lines_out.demand_dirty [Dirty L2 cache lines evicted by demand] l2_lines_out.dirty_all [Dirty L2 cache lines filling the L2] l2_lines_out.pf_clean [Clean L2 cache lines evicted by L2 prefetch] l2_lines_out.pf_dirty [Dirty L2 cache lines evicted by L2 prefetch] etc. There's a few high level categories as well that can be listed: 'cache', 'floating point', 'frontend', 'memory', 'pipeline', 'virtual memory'. Existing generic events and workflows should work as-is. The only kernel side change is a late breaking fix for an older regression, related to Intel BTS, LBR and PT feature interaction. On the tooling side there are three new tools / major features: - The new 'perf c2c' tool provides means for Shared Data C2C/HITM analysis. It allows you to track down cacheline contention. The tool is based on x86's load latency and precise store facility events provided by Intel CPUs. It was tested by Joe Mario and has proven to be useful, finding some cacheline contentions. Joe also wrote a blog about c2c tool with examples: https://joemario.github.io/blog/2016/09/01/c2c-blog/ Excerpt of the content on this site: --- At a high level, “perf c2c” will show you: * The cachelines where false sharing was detected. * The readers and writers to those cachelines, and the offsets where those accesses occurred. * The pid, tid, instruction addr, function name, binary object name for those readers and writers. * The source file and line number for each reader and writer. * The average load latency for the loads to those cachelines. * Which numa nodes the samples a cacheline came from and which CPUs were involved. Using perf c2c is similar to using the Linux perf tool today. First collect data with “perf c2c record” Then generate a report output with “perf c2c report” --- There one finds extensive details on using the tool, with tips on reducing the volume of samples while still capturing enough to do its job. (Dick Fowles, Joe Mario, Don Zickus, Jiri Olsa) - The new 'perf sched timehist' tool provides tailored analysis of scheduling events. Example usage: perf sched record -- sleep 1 perf sched timehist By default it shows the individual schedule events, including the wait time (time between sched-out and next sched-in events for the task), the task scheduling delay (time between wakeup and actually running) and run time for the task: time cpu task name wait time sch delay run time [tid/pid] (msec) (msec) (msec) -------- ------ ---------------- --------- --------- -------- 1.874569 [0011] gcc[31949] 0.014 0.000 1.148 1.874591 [0010] gcc[31951] 0.000 0.000 0.024 1.874603 [0010] migration/10[59] 3.350 0.004 0.011 1.874604 [0011] 1.148 0.000 0.035 1.874723 [0005] 0.016 0.000 1.383 1.874746 [0005] gcc[31949] 0.153 0.078 0.022 ... Times are in msec.usec. (David Ahern, Namhyung Kim) - Add CPU vendor hardware event tables: Add JSON files with vendor event naming for Intel and Power8 processors, allowing users of tools like oprofile to keep using the event names they are used to, as well as people reading vendor documentation, where such naming is used. (Andi Kleen, Sukadev Bhattiprolu) You should see all the new events with 'perf list' and you should be able to search them, for example 'perf list miss' will list all the myriads of miss events. Other tooling features added were: - Cross-arch annotation support: - Improve ARM support in the annotation code, affecting 'perf annotate', 'perf report' and live annotation in 'perf top' (Kim Phillips) - Initial support for PowerPC in the annotation code (Ravi Bangoria) - Support AArch64 in the 'annotate' code, native/local and cross-arch/remote (Kim Phillips) - Allow considering just events in a given time interval, via the '--time start.s.ms,end.s.ms' command line, added to 'perf kmem', 'perf report', 'perf sched timehist' and 'perf script' (David Ahern) - Add option to stop printing a callchain at one of a given group of symbol names (David Ahern) - Track memory freed in 'perf kmem stat' (David Ahern) - Allow querying and setting .perfconfig variables (Taeung Song) - Show branch information in callchains (predicted, TSX aborts, loop iteractions, etc) (Jin Yao) - Dynamicly change verbosity level by pressing 'V' in the 'perf top/report' hists TUI browser (Alexis Berlemont) - Implement 'perf trace --delay' in the same fashion as in 'perf record --delay', to skip sampling workload initialization events (Alexis Berlemont) - Make vendor named events case insensitive in 'perf list', i.e. 'perf list LONGEST_LAT' works just the same as 'perf list longest_lat' (Andi Kleen) - Add unwinding support for jitdump (Stefano Sanfilippo) Tooling infrastructure changes: - Support linking perf with clang and LLVM libraries, initially statically, but this limitation will be lifted and shared libraries, when available, will be preferred to the static build, that should, as with other features, be enabled explicitly (Wang Nan) - Add initial support (and perf test entry) for tooling hooks, starting with 'record_start' and 'record_end', that will have as its initial user the eBPF infrastructure, where perf_ prefixed functions will be JITed and run when such hooks are called (Wang Nan) - Implement assorted libbpf improvements (Wang Nan) ... and lots of other changes, features, cleanups and refactorings I did not list, see the shortlog and the git log for details. Thanks, Ingo ------------------> Adrian Hunter (1): perf intel-pt/bts: Tidy instruction buffer size usage Alexander Alemayhu (1): perf tools: Fix typo "No enough" to "Not enough" Alexis Berlemont (2): perf hists browser: Dynamically change verbosity level perf trace: Implement --delay Andi Kleen (27): perf vendor events: Add BroadwellDE V5 event file perf vendor events: Add Broadwell V17 event file perf vendor events: Add BroadwellX V10 event file perf vendor events: Add Bonnell V4 event file perf vendor events: Add Goldmont V8 event file perf vendor events: Add Haswell V24 event file perf vendor events: Add HaswellX V17 event file perf vendor events: Add IvyBridge V18 event file perf vendor events: Add IvyTown V19 event file perf vendor events: Add Jaketown V20 event file perf vendor events: Add KnightsLanding V9 event file perf vendor events: Add NehalemEP V2 event file perf vendor events: Add NehalemEX V2 event file perf vendor events: Add Skylake V24 event file perf vendor events: Add Silvermont V13 event file perf vendor events: Add SandyBridge V15 event file perf vendor events: Add WestmereEP-DP V2 event file perf vendor events: Add WestmereEP-SP V2 event file perf vendor events: Add WestmereEX V2 event file perf intel-pt/bts: Report instruction bytes and length in sample perf script: Support insn and insnlen perf record: Improve documentation of event parameters perf tools: Implement branch_type event parameter perf pmu: Only print Using CPUID message once perf list: Make vendor event matching case insensitive perf list: Support matching by topic perf/x86: Fix exclusion of BTS and LBR for Goldmont Arnaldo Carvalho de Melo (25): perf tools: Sync copy of x86's syscall table perf jit: Avoid returning garbage for a ret variable perf jit: Add NT_GNU_BUILD_ID definition for older distros perf bench mem: Move boilerplate memory allocation to the infrastructure perf tools: Normalize sq_quote_argv() error reporting perf tools: Use normal error reporting when processing PERF_RECORD_READ events perf trace: Remove thread_trace->exit_time perf trace: Use the syscall raw_syscalls:sys_enter timestamp perf bench mem: Ignore export.h related changes to mem{cpy,set}.S tools: Update asm-generic/mman-common.h copy from the kernel perf tools: Update x86's syscall_64.tbl, adding pkey_(alloc,free,mprotect) perf scripting: Avoid leaking the scripting_context variable perf scripting: Don't die if scripting can't be setup, disable it perf tools: Add missing object file to the python binding linkage list perf intel-pt: Update documentation about context switch events perf annotate: Start supporting cross arch annotation perf annotate: Allow arches to specify functions to skip perf annotate: Add per arch instructions annotate handlers perf annotate: Remove duplicate 'name' field from disasm_line perf annotate: Introduce alternative method of keeping instructions table perf annotate: Allow arches to have a init routine and a priv area perf annotate: Improve support for ARM perf ui helpline: Provide a printf variant perf annotate: Show invalid jump offset in error message perf test: Remove "test" and similar strings from test descriptions David Ahern (16): perf sched timehist: Introduce timehist command perf sched timehist: Add summary options perf sched timehist: Add -w/--wakeups option perf sched timehist: Add call graph options perf sched timehist: Add -V/--cpu-visual option perf sched timehist: Handle cpu migration events perf trace: Update tid/pid filtering option to leverage symbol_conf perf kmem stat: Track memory freed perf script: Add option to stop printing callchain perf tools: Add time-based utility functions perf tools: Move parse_nsec_time to time-utils.c perf script: Add option to specify time window of interest perf sched timehist: Add option to specify time window of interest perf kmem: Add option to specify time window of interest perf report: Add option to specify time window of interest perf sched timehist: Improve error message when analyzing wrong file Davidlohr Bueso (2): perf bench futex: Avoid worker cacheline bouncing perf bench futex: Sanitize numeric parameters Eric Leblond (1): tools lib bpf: Fix maps resolution Jin Yao (5): perf report: Add branch flag to callchain cursor node perf report: Create a symbol_conf flag for showing branch flag counting perf report: Calculate and return the branch flag counting perf report: Show branch info in callchain entry for stdio mode perf report: Show branch info in callchain entry for browser mode Jiri Olsa (80): perf c2c: Introduce c2c_decode_stats function perf c2c: Introduce c2c_add_stats function perf c2c: Add c2c command perf c2c: Add record subcommand perf c2c: Add report subcommand perf c2c report: Add dimension support perf c2c report: Add sort_entry dimension support perf c2c report: Fallback to standard dimensions perf c2c report: Add sample processing perf c2c report: Add cacheline hists processing perf c2c report: Decode c2c_stats for hist entries perf c2c report: Add header macros perf c2c report: Add 'dcacheline' dimension key perf c2c report: Add 'offset' dimension key perf c2c report: Add 'iaddr' dimension key perf c2c report: Add hitm related dimension keys perf c2c report: Add stores related dimension keys perf c2c report: Add loads related dimension keys perf c2c report: Add llc and remote loads related dimension keys perf c2c report: Add llc load miss dimension key perf c2c report: Add total record sort key perf c2c report: Add total loads sort key perf c2c report: Add hitm percent sort key perf c2c report: Add hitm/store percent related sort keys perf c2c report: Add dram related sort keys perf c2c report: Add 'pid' sort key perf c2c report: Add 'tid' sort key perf c2c report: Add 'symbol' and 'dso' sort keys perf c2c report: Add 'node' sort key perf c2c report: Add stats related sort keys perf c2c report: Add 'cpucnt' sort key perf c2c report: Add src line sort key perf c2c report: Setup number of header lines for hists perf c2c report: Set final resort fields perf c2c report: Add stdio output support perf c2c report: Add main TUI browser perf c2c report: Add TUI cacheline browser perf c2c report: Add global stats stdio output perf c2c report: Add shared cachelines stats stdio output perf c2c report: Add c2c related stats stdio output perf c2c report: Allow to report callchains perf c2c report: Limit the cachelines table entries perf c2c report: Add support to choose local HITMs perf c2c report: Allow to set cacheline sort fields perf c2c report: Recalc width of global sort entries perf c2c report: Add cacheline index entry perf c2c report: Add support to manage symbol name length perf c2c report: Iterate node display in browser perf c2c report: Add help windows perf c2c: Add man page and credits perf c2c report: Add --no-source option perf c2c report: Add --show-all option tools lib traceevent: Add install_headers target tools lib traceevent: Add do_install_mkdir Makefile function tools lib traceevent: Rename LIB_FILE to LIB_TARGET tools lib traceevent: Add version for traceevent shared object tools lib: Add for_each_clear_bit macro perf report: Move captured info to generic header info perf header: Display missing features perf header: Display feature name on write failure tools build: Add CFLAGS_REMOVE_* support tools build: Add jvmti feature detection support perf jvmti: Plug compilation into perf build perf kvmti: Remove unused Makefile file perf tools: Show event fd in debug output perf c2c report: Setup browser after opening perf.data perf c2c report: Add -f/--force option perf c2c report: Add struct c2c_stats::tot_hitm field perf c2c report: Display total HITMs on default perf c2c: Support cascading options tools build: Make fixdep parsing wait for last target tools build: Make the .cmd file more readable tools build: Move tabs to spaces where suitable perf tools: Move install-gtk target into rules area perf tools: Move python/perf.so target into rules area perf tools: Cleanup build directory before each test perf tools: Add non config targets perf tools: Move PERF-VERSION-FILE target into rules area perf tools: Force fixdep compilation at the start of the build perf tools: Move perf build related variables under non fixdep leg Kim Phillips (2): perf annotate: Use arch->objdump.comment_char in dec__parse() perf annotate: AArch64 support Maciej Debski (1): perf jit: Enable jitdump support without dwarf Madhavan Srinivasan (1): perf vendor events: Support couple more POWER8 PVRs in mapfile Mathieu Poirier (1): perf coresight: Removing miscellaneous debug output Namhyung Kim (15): perf hist browser: Fix hierarchy column counts tools lib subcmd: Suppport cascading options perf sched: Make common options cascading perf sched map: Apply cpu color when there's an activity perf sched map: Always show task comm with -v perf tools: Introduce timestamp__scnprintf_usec() perf symbols: Print symbol offsets conditionally perf evsel: Support printing callchains with arrows perf callchain: Add option to skip ignore symbol when printing callchains perf sched timehist: Mark schedule function in callchains perf sched timehist: Enlarge max stack depth by 2 perf sched: Cleanup option processing perf callchain: Introduce callchain_cursor__copy() perf sched timehist: Handle zero sample->tid properly perf sched timehist: Cleanup idle_max_cpu handling Peter Foley (1): tools build: Fix objtool build with clang Rabin Vincent (1): perf callchain: Fixup help/config for no-unwinding Ravi Bangoria (2): perf annotate: Initial PowerPC support perf annotate: Show raw form for jump instruction with indirect target Sebastian Andrzej Siewior (1): perf bench futex: Cache align the worker struct Stefano Sanfilippo (5): perf jit: Make perf skip unknown records perf jit: Do not assume pgoff is zero perf jit: Add unwinding support perf jit: Generate .eh_frame/.eh_frame_hdr in DSO perf jit: Check JITHEADER_VERSION Stephane Eranian (3): perf jit: Improve error messages from JVMTI perf jit: Remove unecessary padding in jitdump file perf jit: Add jitdump format specification document Steven Rostedt (2): tools lib traceevent: Use USECS_PER_SEC instead of hardcoded number tools lib traceevent: Add retrieval of preempt count and latency flags Sukadev Bhattiprolu (1): perf vendor events: Add power8 PMU events Taeung Song (4): perf config: Add support for getting config key-value pairs perf config: Validate config variable arguments before trying use them perf config: Add support setting variables in a config file perf config: Mark where are config items from (user or system) Wang Nan (19): perf tools: Fix kernel version error in ubuntu perf record: Fix segfault when running with suid and kptr_restrict is 1 perf tools: Add missing struct definition in probe_event.h tools lib bpf: Add missing BPF functions tools lib bpf: Add private field for bpf_object tools lib bpf: Retrive bpf_map through offset of bpf_map_def perf tools: Introduce perf hooks perf tools: Pass context to perf hook functions perf llvm: Extract helpers in llvm-utils.c tools build: Add feature detection for LLVM tools build: Add feature detection for clang perf build: Add clang and llvm compile and linking support perf clang: Add builtin clang support ant test case perf clang: Use real file system for #include perf clang: Allow passing CFLAGS to builtin clang perf clang: Update test case to use real BPF script perf clang: Support compile IR to BPF object and add testcase perf clang: Compile BPF script using builtin clang support perf build: Check LLVM version in feature check Yannick Brosseau (1): perf tools: Explicitly document that --children is enabled by default arch/x86/events/core.c | 8 +- arch/x86/events/perf_event.h | 2 +- tools/build/Build.include | 22 +- tools/build/Documentation/Build.txt | 6 +- tools/build/Makefile.feature | 138 +- tools/build/feature/Makefile | 126 +- tools/build/feature/test-clang.cpp | 21 + tools/build/feature/test-jvmti.c | 13 + tools/build/feature/test-llvm-version.cpp | 11 + tools/build/feature/test-llvm.cpp | 13 + tools/build/fixdep.c | 5 +- tools/include/asm-generic/bitops.h | 1 + tools/include/asm-generic/bitops/__ffz.h | 12 + tools/include/asm-generic/bitops/find.h | 28 + tools/include/linux/bitops.h | 5 + tools/include/uapi/asm-generic/mman-common.h | 5 + tools/lib/bpf/bpf.c | 56 + tools/lib/bpf/bpf.h | 7 + tools/lib/bpf/libbpf.c | 177 +- tools/lib/bpf/libbpf.h | 13 + tools/lib/find_bit.c | 25 + tools/lib/subcmd/parse-options.c | 14 + tools/lib/subcmd/parse-options.h | 2 + tools/lib/traceevent/Makefile | 40 +- tools/lib/traceevent/event-parse.c | 41 +- tools/lib/traceevent/event-parse.h | 5 +- tools/perf/Build | 1 + tools/perf/Documentation/intel-pt.txt | 19 +- tools/perf/Documentation/jitdump-specification.txt | 170 + tools/perf/Documentation/perf-c2c.txt | 290 ++ tools/perf/Documentation/perf-config.txt | 35 + tools/perf/Documentation/perf-kmem.txt | 7 + tools/perf/Documentation/perf-record.txt | 9 +- tools/perf/Documentation/perf-report.txt | 10 +- tools/perf/Documentation/perf-sched.txt | 78 +- tools/perf/Documentation/perf-script.txt | 16 +- tools/perf/Documentation/perf-top.txt | 1 + tools/perf/Documentation/perf-trace.txt | 5 + tools/perf/MANIFEST | 1 + tools/perf/Makefile.config | 94 +- tools/perf/Makefile.perf | 150 +- tools/perf/arch/arm/annotate/instructions.c | 59 + tools/perf/arch/arm/util/cs-etm.c | 2 - tools/perf/arch/arm64/annotate/instructions.c | 62 + tools/perf/arch/powerpc/annotate/instructions.c | 58 + tools/perf/arch/x86/annotate/instructions.c | 78 + tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 7 +- tools/perf/arch/x86/tests/arch-tests.c | 10 +- tools/perf/bench/futex-hash.c | 10 +- tools/perf/bench/futex-lock-pi.c | 7 +- tools/perf/bench/futex-requeue.c | 2 + tools/perf/bench/futex-wake-parallel.c | 4 + tools/perf/bench/futex-wake.c | 3 + tools/perf/bench/futex.h | 4 + tools/perf/bench/mem-functions.c | 77 +- tools/perf/builtin-c2c.c | 2780 +++++++++++++ tools/perf/builtin-config.c | 137 +- tools/perf/builtin-kmem.c | 36 +- tools/perf/builtin-record.c | 11 + tools/perf/builtin-report.c | 29 +- tools/perf/builtin-sched.c | 1118 ++++- tools/perf/builtin-script.c | 51 +- tools/perf/builtin-top.c | 2 +- tools/perf/builtin-trace.c | 68 +- tools/perf/builtin.h | 1 + tools/perf/jvmti/Build | 8 + tools/perf/jvmti/Makefile | 89 - tools/perf/jvmti/jvmti_agent.c | 38 +- tools/perf/jvmti/libjvmti.c | 39 +- tools/perf/perf.c | 1 + tools/perf/pmu-events/arch/powerpc/mapfile.csv | 21 + .../perf/pmu-events/arch/powerpc/power8/cache.json | 176 + .../arch/powerpc/power8/floating-point.json | 14 + .../pmu-events/arch/powerpc/power8/frontend.json | 470 +++ .../pmu-events/arch/powerpc/power8/marked.json | 794 ++++ .../pmu-events/arch/powerpc/power8/memory.json | 212 + .../perf/pmu-events/arch/powerpc/power8/other.json | 4064 ++++++++++++++++++ .../pmu-events/arch/powerpc/power8/pipeline.json | 350 ++ tools/perf/pmu-events/arch/powerpc/power8/pmc.json | 140 + .../arch/powerpc/power8/translation.json | 176 + tools/perf/pmu-events/arch/x86/bonnell/cache.json | 746 ++++ .../arch/x86/bonnell/floating-point.json | 261 ++ .../perf/pmu-events/arch/x86/bonnell/frontend.json | 83 + tools/perf/pmu-events/arch/x86/bonnell/memory.json | 154 + tools/perf/pmu-events/arch/x86/bonnell/other.json | 450 ++ .../perf/pmu-events/arch/x86/bonnell/pipeline.json | 364 ++ .../arch/x86/bonnell/virtual-memory.json | 124 + .../perf/pmu-events/arch/x86/broadwell/cache.json | 3198 +++++++++++++++ .../arch/x86/broadwell/floating-point.json | 171 + .../pmu-events/arch/x86/broadwell/frontend.json | 286 ++ .../perf/pmu-events/arch/x86/broadwell/memory.json | 2845 +++++++++++++ .../perf/pmu-events/arch/x86/broadwell/other.json | 44 + .../pmu-events/arch/x86/broadwell/pipeline.json | 1417 +++++++ .../arch/x86/broadwell/virtual-memory.json | 388 ++ .../pmu-events/arch/x86/broadwellde/cache.json | 774 ++++ .../arch/x86/broadwellde/floating-point.json | 171 + .../pmu-events/arch/x86/broadwellde/frontend.json | 286 ++ .../pmu-events/arch/x86/broadwellde/memory.json | 433 ++ .../pmu-events/arch/x86/broadwellde/other.json | 44 + .../pmu-events/arch/x86/broadwellde/pipeline.json | 1417 +++++++ .../arch/x86/broadwellde/virtual-memory.json | 388 ++ .../perf/pmu-events/arch/x86/broadwellx/cache.json | 942 +++++ .../arch/x86/broadwellx/floating-point.json | 171 + .../pmu-events/arch/x86/broadwellx/frontend.json | 286 ++ .../pmu-events/arch/x86/broadwellx/memory.json | 649 +++ .../perf/pmu-events/arch/x86/broadwellx/other.json | 44 + .../pmu-events/arch/x86/broadwellx/pipeline.json | 1417 +++++++ .../arch/x86/broadwellx/virtual-memory.json | 388 ++ tools/perf/pmu-events/arch/x86/goldmont/cache.json | 1127 +++++ .../pmu-events/arch/x86/goldmont/frontend.json | 52 + .../perf/pmu-events/arch/x86/goldmont/memory.json | 34 + tools/perf/pmu-events/arch/x86/goldmont/other.json | 52 + .../pmu-events/arch/x86/goldmont/pipeline.json | 433 ++ .../arch/x86/goldmont/virtual-memory.json | 75 + tools/perf/pmu-events/arch/x86/haswell/cache.json | 1041 +++++ .../arch/x86/haswell/floating-point.json | 83 + .../perf/pmu-events/arch/x86/haswell/frontend.json | 294 ++ tools/perf/pmu-events/arch/x86/haswell/memory.json | 655 +++ tools/perf/pmu-events/arch/x86/haswell/other.json | 43 + .../perf/pmu-events/arch/x86/haswell/pipeline.json | 1329 ++++++ .../arch/x86/haswell/virtual-memory.json | 484 +++ tools/perf/pmu-events/arch/x86/haswellx/cache.json | 1077 +++++ .../arch/x86/haswellx/floating-point.json | 83 + .../pmu-events/arch/x86/haswellx/frontend.json | 294 ++ .../perf/pmu-events/arch/x86/haswellx/memory.json | 739 ++++ tools/perf/pmu-events/arch/x86/haswellx/other.json | 43 + .../pmu-events/arch/x86/haswellx/pipeline.json | 1329 ++++++ .../arch/x86/haswellx/virtual-memory.json | 484 +++ .../perf/pmu-events/arch/x86/ivybridge/cache.json | 1123 +++++ .../arch/x86/ivybridge/floating-point.json | 151 + .../pmu-events/arch/x86/ivybridge/frontend.json | 305 ++ .../perf/pmu-events/arch/x86/ivybridge/memory.json | 236 ++ .../perf/pmu-events/arch/x86/ivybridge/other.json | 44 + .../pmu-events/arch/x86/ivybridge/pipeline.json | 1307 ++++++ .../arch/x86/ivybridge/virtual-memory.json | 180 + tools/perf/pmu-events/arch/x86/ivytown/cache.json | 1272 ++++++ .../arch/x86/ivytown/floating-point.json | 151 + .../perf/pmu-events/arch/x86/ivytown/frontend.json | 305 ++ tools/perf/pmu-events/arch/x86/ivytown/memory.json | 503 +++ tools/perf/pmu-events/arch/x86/ivytown/other.json | 44 + .../perf/pmu-events/arch/x86/ivytown/pipeline.json | 1307 ++++++ .../arch/x86/ivytown/virtual-memory.json | 198 + tools/perf/pmu-events/arch/x86/jaketown/cache.json | 1290 ++++++ .../arch/x86/jaketown/floating-point.json | 138 + .../pmu-events/arch/x86/jaketown/frontend.json | 305 ++ .../perf/pmu-events/arch/x86/jaketown/memory.json | 422 ++ tools/perf/pmu-events/arch/x86/jaketown/other.json | 58 + .../pmu-events/arch/x86/jaketown/pipeline.json | 1220 ++++++ .../arch/x86/jaketown/virtual-memory.json | 149 + .../pmu-events/arch/x86/knightslanding/cache.json | 2305 +++++++++++ .../arch/x86/knightslanding/frontend.json | 34 + .../pmu-events/arch/x86/knightslanding/memory.json | 1110 +++++ .../arch/x86/knightslanding/pipeline.json | 435 ++ .../arch/x86/knightslanding/virtual-memory.json | 65 + tools/perf/pmu-events/arch/x86/mapfile.csv | 35 + .../perf/pmu-events/arch/x86/nehalemep/cache.json | 3229 +++++++++++++++ .../arch/x86/nehalemep/floating-point.json | 229 ++ .../pmu-events/arch/x86/nehalemep/frontend.json | 26 + .../perf/pmu-events/arch/x86/nehalemep/memory.json | 739 ++++ .../perf/pmu-events/arch/x86/nehalemep/other.json | 210 + .../pmu-events/arch/x86/nehalemep/pipeline.json | 881 ++++ .../arch/x86/nehalemep/virtual-memory.json | 109 + .../perf/pmu-events/arch/x86/nehalemex/cache.json | 3184 +++++++++++++++ .../arch/x86/nehalemex/floating-point.json | 229 ++ .../pmu-events/arch/x86/nehalemex/frontend.json | 26 + .../perf/pmu-events/arch/x86/nehalemex/memory.json | 739 ++++ .../perf/pmu-events/arch/x86/nehalemex/other.json | 210 + .../pmu-events/arch/x86/nehalemex/pipeline.json | 881 ++++ .../arch/x86/nehalemex/virtual-memory.json | 109 + .../pmu-events/arch/x86/sandybridge/cache.json | 1879 +++++++++ .../arch/x86/sandybridge/floating-point.json | 138 + .../pmu-events/arch/x86/sandybridge/frontend.json | 305 ++ .../pmu-events/arch/x86/sandybridge/memory.json | 445 ++ .../pmu-events/arch/x86/sandybridge/other.json | 58 + .../pmu-events/arch/x86/sandybridge/pipeline.json | 1220 ++++++ .../arch/x86/sandybridge/virtual-memory.json | 149 + .../perf/pmu-events/arch/x86/silvermont/cache.json | 811 ++++ .../pmu-events/arch/x86/silvermont/frontend.json | 47 + .../pmu-events/arch/x86/silvermont/memory.json | 11 + .../pmu-events/arch/x86/silvermont/pipeline.json | 359 ++ .../arch/x86/silvermont/virtual-memory.json | 69 + tools/perf/pmu-events/arch/x86/skylake/cache.json | 4299 ++++++++++++++++++++ .../arch/x86/skylake/floating-point.json | 68 + .../perf/pmu-events/arch/x86/skylake/frontend.json | 472 +++ tools/perf/pmu-events/arch/x86/skylake/memory.json | 2309 +++++++++++ tools/perf/pmu-events/arch/x86/skylake/other.json | 12 + .../perf/pmu-events/arch/x86/skylake/pipeline.json | 939 +++++ .../arch/x86/skylake/virtual-memory.json | 272 ++ .../pmu-events/arch/x86/westmereep-dp/cache.json | 2817 +++++++++++++ .../arch/x86/westmereep-dp/floating-point.json | 229 ++ .../arch/x86/westmereep-dp/frontend.json | 26 + .../pmu-events/arch/x86/westmereep-dp/memory.json | 758 ++++ .../pmu-events/arch/x86/westmereep-dp/other.json | 287 ++ .../arch/x86/westmereep-dp/pipeline.json | 899 ++++ .../arch/x86/westmereep-dp/virtual-memory.json | 173 + .../pmu-events/arch/x86/westmereep-sp/cache.json | 3233 +++++++++++++++ .../arch/x86/westmereep-sp/floating-point.json | 229 ++ .../arch/x86/westmereep-sp/frontend.json | 26 + .../pmu-events/arch/x86/westmereep-sp/memory.json | 739 ++++ .../pmu-events/arch/x86/westmereep-sp/other.json | 287 ++ .../arch/x86/westmereep-sp/pipeline.json | 899 ++++ .../arch/x86/westmereep-sp/virtual-memory.json | 149 + .../perf/pmu-events/arch/x86/westmereex/cache.json | 3225 +++++++++++++++ .../arch/x86/westmereex/floating-point.json | 229 ++ .../pmu-events/arch/x86/westmereex/frontend.json | 26 + .../pmu-events/arch/x86/westmereex/memory.json | 747 ++++ .../perf/pmu-events/arch/x86/westmereex/other.json | 287 ++ .../pmu-events/arch/x86/westmereex/pipeline.json | 905 ++++ .../arch/x86/westmereex/virtual-memory.json | 173 + tools/perf/tests/Build | 2 + tools/perf/tests/backward-ring-buffer.c | 2 +- tools/perf/tests/bpf.c | 8 +- tools/perf/tests/builtin-test.c | 105 +- tools/perf/tests/clang.c | 46 + tools/perf/tests/llvm.c | 8 +- tools/perf/tests/llvm.h | 7 + tools/perf/tests/make | 6 +- tools/perf/tests/perf-hooks.c | 48 + tools/perf/tests/tests.h | 4 + tools/perf/ui/browsers/annotate.c | 26 +- tools/perf/ui/browsers/hists.c | 27 +- tools/perf/ui/browsers/hists.h | 1 + tools/perf/ui/gtk/annotate.c | 2 +- tools/perf/ui/helpline.c | 10 + tools/perf/ui/helpline.h | 1 + tools/perf/ui/stdio/hist.c | 35 +- tools/perf/util/Build | 7 +- tools/perf/util/annotate.c | 392 +- tools/perf/util/annotate.h | 23 +- tools/perf/util/bpf-loader.c | 33 +- tools/perf/util/c++/Build | 2 + tools/perf/util/c++/clang-c.h | 43 + tools/perf/util/c++/clang-test.cpp | 62 + tools/perf/util/c++/clang.cpp | 195 + tools/perf/util/c++/clang.h | 26 + tools/perf/util/callchain.c | 232 +- tools/perf/util/callchain.h | 29 +- tools/perf/util/config.c | 20 + tools/perf/util/config.h | 4 + tools/perf/util/event.h | 3 + tools/perf/util/evsel.c | 15 +- tools/perf/util/evsel.h | 4 + tools/perf/util/evsel_fprintf.c | 25 +- tools/perf/util/genelf.c | 113 +- tools/perf/util/genelf.h | 5 +- tools/perf/util/header.c | 19 +- tools/perf/util/hist.c | 1 + tools/perf/util/hist.h | 1 + tools/perf/util/intel-bts.c | 9 +- .../perf/util/intel-pt-decoder/intel-pt-decoder.c | 2 + .../perf/util/intel-pt-decoder/intel-pt-decoder.h | 1 + .../util/intel-pt-decoder/intel-pt-insn-decoder.c | 13 +- .../util/intel-pt-decoder/intel-pt-insn-decoder.h | 6 +- tools/perf/util/intel-pt-decoder/intel-pt-log.c | 4 +- tools/perf/util/intel-pt.c | 19 +- tools/perf/util/jitdump.c | 82 +- tools/perf/util/jitdump.h | 12 + tools/perf/util/llvm-utils.c | 78 +- tools/perf/util/llvm-utils.h | 6 + tools/perf/util/machine.c | 82 +- tools/perf/util/map.c | 17 +- tools/perf/util/mem-events.c | 136 + tools/perf/util/mem-events.h | 38 + tools/perf/util/parse-branch-options.c | 85 +- tools/perf/util/parse-branch-options.h | 3 +- tools/perf/util/parse-events.c | 15 +- tools/perf/util/perf-hooks-list.h | 3 + tools/perf/util/perf-hooks.c | 88 + tools/perf/util/perf-hooks.h | 39 + tools/perf/util/pmu.c | 14 +- tools/perf/util/probe-event.h | 2 + tools/perf/util/python-ext-sources | 1 + tools/perf/util/quote.c | 2 +- tools/perf/util/session.c | 10 - tools/perf/util/sort.c | 2 +- tools/perf/util/sort.h | 1 + tools/perf/util/string.c | 21 +- tools/perf/util/symbol.c | 10 +- tools/perf/util/symbol.h | 11 +- tools/perf/util/symbol_fprintf.c | 11 +- tools/perf/util/time-utils.c | 119 + tools/perf/util/time-utils.h | 14 + tools/perf/util/trace-event-scripting.c | 39 +- tools/perf/util/unwind-libunwind-local.c | 4 +- tools/perf/util/util-cxx.h | 26 + tools/perf/util/util.c | 88 +- tools/perf/util/util.h | 6 +- tools/perf/util/values.c | 81 +- tools/perf/util/values.h | 4 +- 289 files changed, 98023 insertions(+), 1053 deletions(-) create mode 100644 tools/build/feature/test-clang.cpp create mode 100644 tools/build/feature/test-jvmti.c create mode 100644 tools/build/feature/test-llvm-version.cpp create mode 100644 tools/build/feature/test-llvm.cpp create mode 100644 tools/include/asm-generic/bitops/__ffz.h create mode 100644 tools/perf/Documentation/jitdump-specification.txt create mode 100644 tools/perf/Documentation/perf-c2c.txt create mode 100644 tools/perf/arch/arm/annotate/instructions.c create mode 100644 tools/perf/arch/arm64/annotate/instructions.c create mode 100644 tools/perf/arch/powerpc/annotate/instructions.c create mode 100644 tools/perf/arch/x86/annotate/instructions.c create mode 100644 tools/perf/builtin-c2c.c create mode 100644 tools/perf/jvmti/Build delete mode 100644 tools/perf/jvmti/Makefile create mode 100644 tools/perf/pmu-events/arch/powerpc/mapfile.csv create mode 100644 tools/perf/pmu-events/arch/powerpc/power8/cache.json create mode 100644 tools/perf/pmu-events/arch/powerpc/power8/floating-point.json create mode 100644 tools/perf/pmu-events/arch/powerpc/power8/frontend.json create mode 100644 tools/perf/pmu-events/arch/powerpc/power8/marked.json create mode 100644 tools/perf/pmu-events/arch/powerpc/power8/memory.json create mode 100644 tools/perf/pmu-events/arch/powerpc/power8/other.json create mode 100644 tools/perf/pmu-events/arch/powerpc/power8/pipeline.json create mode 100644 tools/perf/pmu-events/arch/powerpc/power8/pmc.json create mode 100644 tools/perf/pmu-events/arch/powerpc/power8/translation.json create mode 100644 tools/perf/pmu-events/arch/x86/bonnell/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/bonnell/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/bonnell/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/bonnell/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/bonnell/other.json create mode 100644 tools/perf/pmu-events/arch/x86/bonnell/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/bonnell/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/other.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellde/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellde/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellde/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellde/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellde/other.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellde/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellde/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellx/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellx/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellx/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellx/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellx/other.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellx/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/broadwellx/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/goldmont/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/goldmont/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/goldmont/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/goldmont/other.json create mode 100644 tools/perf/pmu-events/arch/x86/goldmont/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/goldmont/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/haswell/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/haswell/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/haswell/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/haswell/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/haswell/other.json create mode 100644 tools/perf/pmu-events/arch/x86/haswell/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/haswell/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/haswellx/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/haswellx/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/haswellx/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/haswellx/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/haswellx/other.json create mode 100644 tools/perf/pmu-events/arch/x86/haswellx/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/haswellx/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/ivybridge/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/ivybridge/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/ivybridge/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/ivybridge/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/ivybridge/other.json create mode 100644 tools/perf/pmu-events/arch/x86/ivybridge/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/ivybridge/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/ivytown/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/ivytown/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/ivytown/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/ivytown/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/ivytown/other.json create mode 100644 tools/perf/pmu-events/arch/x86/ivytown/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/ivytown/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/jaketown/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/jaketown/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/jaketown/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/jaketown/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/jaketown/other.json create mode 100644 tools/perf/pmu-events/arch/x86/jaketown/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/jaketown/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/knightslanding/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/knightslanding/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/knightslanding/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/knightslanding/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/knightslanding/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/mapfile.csv create mode 100644 tools/perf/pmu-events/arch/x86/nehalemep/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/nehalemep/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/nehalemep/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/nehalemep/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/nehalemep/other.json create mode 100644 tools/perf/pmu-events/arch/x86/nehalemep/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/nehalemep/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/nehalemex/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/nehalemex/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/nehalemex/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/nehalemex/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/nehalemex/other.json create mode 100644 tools/perf/pmu-events/arch/x86/nehalemex/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/nehalemex/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/sandybridge/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/sandybridge/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/sandybridge/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/sandybridge/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/sandybridge/other.json create mode 100644 tools/perf/pmu-events/arch/x86/sandybridge/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/sandybridge/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/silvermont/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/silvermont/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/silvermont/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/silvermont/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/silvermont/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/skylake/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/skylake/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/skylake/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/skylake/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/skylake/other.json create mode 100644 tools/perf/pmu-events/arch/x86/skylake/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/skylake/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereep-dp/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereep-dp/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereep-dp/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereep-dp/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereep-dp/other.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereep-dp/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereep-dp/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereep-sp/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereep-sp/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereep-sp/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereep-sp/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereep-sp/other.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereep-sp/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereep-sp/virtual-memory.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereex/cache.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereex/floating-point.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereex/frontend.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereex/memory.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereex/other.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereex/pipeline.json create mode 100644 tools/perf/pmu-events/arch/x86/westmereex/virtual-memory.json create mode 100644 tools/perf/tests/clang.c create mode 100644 tools/perf/tests/perf-hooks.c create mode 100644 tools/perf/util/c++/Build create mode 100644 tools/perf/util/c++/clang-c.h create mode 100644 tools/perf/util/c++/clang-test.cpp create mode 100644 tools/perf/util/c++/clang.cpp create mode 100644 tools/perf/util/c++/clang.h create mode 100644 tools/perf/util/perf-hooks-list.h create mode 100644 tools/perf/util/perf-hooks.c create mode 100644 tools/perf/util/perf-hooks.h create mode 100644 tools/perf/util/time-utils.c create mode 100644 tools/perf/util/time-utils.h create mode 100644 tools/perf/util/util-cxx.h [ ... diff skipped due to size ... ]