lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 25 Jul 2016 10:28:38 +0200 From: Ingo Molnar <mingo@...nel.org> To: Linus Torvalds <torvalds@...ux-foundation.org> Cc: linux-kernel@...r.kernel.org, Peter Zijlstra <a.p.zijlstra@...llo.nl>, Arnaldo Carvalho de Melo <acme@...radead.org>, Jiri Olsa <jolsa@...hat.com>, Thomas Gleixner <tglx@...utronix.de>, Andrew Morton <akpm@...ux-foundation.org> Subject: [GIT PULL] perf changes for v4.8 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 ... ]
Powered by blists - more mailing lists