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: bebd23a2ed31d47e7dd746d3b125068aa2c42d85 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Kernel side changes: - Improve accuracy of perf/sched clock on x86. (Adrian Hunter) - Intel DS and BTS updates. (Alexander Shishkin) - Intel cstate PMU support. (Kan Liang) - Add group read support to perf_event_read(). (Peter Zijlstra) - Branch call hardware sampling support, implemented on x86 and PowerPC. (Stephane Eranian) - Event groups transactional interface enhancements. (Sukadev Bhattiprolu) - Enable proper x86/intel/uncore PMU support on multi-segment PCI systems. (Taku Izumi) - ... misc fixes and cleanups. The perf tooling team was very busy again with 200+ commits, the full diff doesn't fit into lkml size limits. Here's an (incomplete) list of the tooling highlights: New features: - Change the default event used in all tools (record/top): use the most precise "cycles" hw counter available, i.e. when the user doesn't specify any event, it will try using cycles:ppp, cycles:pp, etc. and fall back transparently until it finds a working counter. (Arnaldo Carvalho de Melo) - Integration of perf with eBPF that, given an eBPF .c source file (or .o file built for the 'bpf' target with clang), will get it automatically built, validated and loaded into the kernel via the sys_bpf syscall, which can then be used and seen using 'perf trace' and other tools. (Wang Nan) Various user interface improvements: - Automatic pager invocation on long help output. (Namhyung Kim) - Search for more options when passing args to -h, e.g.: (Arnaldo Carvalho de Melo) $ perf report -h interface Usage: perf report [<options>] --gtk Use the GTK2 interface --stdio Use the stdio interface --tui Use the TUI interface - Show ordered command line options when -h is used or when an unknown option is specified. (Arnaldo Carvalho de Melo) - If options are passed after -h, show just its descriptions, not all options. (Arnaldo Carvalho de Melo) - Implement column based horizontal scrolling in the hists browser (top, report), making it possible to use the TUI for things like 'perf mem report' where there are many more columns than can fit in a terminal. (Arnaldo Carvalho de Melo) - Enhance the error reporting of tracepoint event parsing, e.g.: $ oldperf record -e sched:sched_switc usleep 1 event syntax error: 'sched:sched_switc' \___ unknown tracepoint Run 'perf list' for a list of valid events Now we get the much nicer: $ perf record -e sched:sched_switc ls event syntax error: 'sched:sched_switc' \___ can't access trace events Error: No permissions to read /sys/kernel/debug/tracing/events/sched/sched_switc Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/debug' And after we have those mount point permissions fixed: $ perf record -e sched:sched_switc ls event syntax error: 'sched:sched_switc' \___ unknown tracepoint Error: File /sys/kernel/debug/tracing/events/sched/sched_switc not found. Hint: Perhaps this kernel misses some CONFIG_ setting to enable this feature?. I.e. basically now the event parsing routing uses the strerror_open() routines introduced by and used in 'perf trace' work. (Jiri Olsa) - Fail properly when pattern matching fails to find a tracepoint, i.e. '-e non:existent' was being correctly handled, with a proper error message about that not being a valid event, but '-e non:existent*' wasn't, fix it. (Jiri Olsa) - Do event name substring search as last resort in 'perf list'. (Arnaldo Carvalho de Melo) E.g.: # perf list clock List of pre-defined events (to be used in -e): cpu-clock [Software event] task-clock [Software event] uncore_cbox_0/clockticks/ [Kernel PMU event] uncore_cbox_1/clockticks/ [Kernel PMU event] kvm:kvm_pvclock_update [Tracepoint event] kvm:kvm_update_master_clock [Tracepoint event] power:clock_disable [Tracepoint event] power:clock_enable [Tracepoint event] power:clock_set_rate [Tracepoint event] syscalls:sys_enter_clock_adjtime [Tracepoint event] syscalls:sys_enter_clock_getres [Tracepoint event] syscalls:sys_enter_clock_gettime [Tracepoint event] syscalls:sys_enter_clock_nanosleep [Tracepoint event] syscalls:sys_enter_clock_settime [Tracepoint event] syscalls:sys_exit_clock_adjtime [Tracepoint event] syscalls:sys_exit_clock_getres [Tracepoint event] syscalls:sys_exit_clock_gettime [Tracepoint event] syscalls:sys_exit_clock_nanosleep [Tracepoint event] syscalls:sys_exit_clock_settime [Tracepoint event] Intel PT hardware tracing enhancements: - Accept a zero --itrace period, meaning "as often as possible". In the case of Intel PT that is the same as a period of 1 and a unit of 'instructions' (i.e. --itrace=i1i). (Adrian Hunter) - Harmonize itrace's synthesized callchains with the existing --max-stack tool option. (Adrian Hunter) - Allow time to be displayed in nanoseconds in 'perf script'. (Adrian Hunter) - Fix potential infinite loop when handling Intel PT timestamps. (Adrian Hunter) - Slighly improve Intel PT debug logging. (Adrian Hunter) - Warn when AUX data has been lost, just like when processing PERF_RECORD_LOST. (Adrian Hunter) - Further document export-to-postgresql.py script. (Adrian Hunter) - Add option to synthesize branch stack from auxtrace data. (Adrian Hunter) Misc notable changes: - Switch the default callchain output mode to 'graph,0.5,caller', to make it look like the default for other tools, reducing the learning curve for people used to 'caller' based viewing. (Arnaldo Carvalho de Melo) - various call chain usability enhancements. (Namhyung Kim) - Introduce the 'P' event modifier, meaning 'max precision level, please', i.e.: $ perf record -e cycles:P usleep 1 Is now similar to: $ perf record usleep 1 Useful, for instance, when specifying multiple events. (Jiri Olsa) - Add 'socket' sort entry, to sort by the processor socket in 'perf top' and 'perf report'. (Kan Liang) - Introduce --socket-filter to 'perf report', for filtering by processor socket. (Kan Liang) - Add new "Zoom into Processor Socket" operation in the perf hists browser, used in 'perf top' and 'perf report'. (Kan Liang) - Allow probing on kmodules without DWARF. (Masami Hiramatsu) - Fix 'perf probe -l' for probes added to kernel module functions. (Masami Hiramatsu) - Preparatory work for the 'perf stat record' feature that will allow generating perf.data files with counting data in addition to the sampling mode we have now (Jiri Olsa) - Update libtraceevent KVM plugin. (Paolo Bonzini) - ... plus lots of other enhancements that I failed to list properly, by: Adrian Hunter, Alexander Shishkin, Andi Kleen, Andrzej Hajda, Arnaldo Carvalho de Melo, Dima Kogan, Don Zickus, Geliang Tang, He Kuang, Huaitong Han, Ingo Molnar, Jan Stancek, Jiri Olsa, Kan Liang, Kirill Tkhai, Masami Hiramatsu, Matt Fleming, Namhyung Kim, Paolo Bonzini, Peter Zijlstra, Rabin Vincent, Scott Wood, Stephane Eranian, Sukadev Bhattiprolu, Taku Izumi, Vaishali Thakkar, Wang Nan, Yang Shi and Yunlong Song. Thanks, Ingo ------------------> Adrian Hunter (36): perf tools: Display build warning if x86 instruction decoder differs from kernel perf tools: Add a test for decoding of new x86 instructions x86/insn: perf tools: Pedantically tweak opcode map for MPX instructions x86/insn: perf tools: Add new SHA instructions x86/insn: perf tools: Add new memory instructions x86/insn: perf tools: Add new memory protection keys instructions x86/insn: perf tools: Add new xsave instructions perf intel-pt: Add support for PERF_RECORD_SWITCH perf/x86: Improve accuracy of perf/sched clock perf auxtrace: Fix 'instructions' period of zero perf report: Fix sample type validation for synthesized callchains perf intel-pt: Fix potential loop forever perf intel-pt: Make logging slightly more efficient perf script: Allow time to be displayed in nanoseconds perf session: Warn when AUX data has been lost perf tools: Add more documentation to export-to-postgresql.py script perf auxtrace: Add option to synthesize branch stacks on samples perf report: Adjust sample type validation for synthesized branch stacks perf report: Also do default setup for synthesized branch stacks perf report: Skip events with null branch stacks perf inject: Set branch stack feature flag when synthesizing branch stacks perf intel-pt: Move branch filter logic perf intel-pt: Support generating branch stack perf report: Make max_stack value allow for synthesized callchains perf hists: Allow for max_stack greater than PERF_MAX_STACK_DEPTH perf script: Add a setting for maximum stack depth perf scripting python: Allow for max_stack greater than PERF_MAX_STACK_DEPTH perf script: Make scripting_max_stack value allow for synthesized callchains perf evlist: Add perf_evlist__id2evsel_strict() perf evlist: Add perf_evlist__remove() perf inject: Remove more aux-related stuff when processing instruction traces perf inject: Add --strip option to strip out non-synthesized events perf intel-pt: Add mispred-all config option to aid use with autofdo perf report: Amend documentation about max_stack and synthesized callchains perf callchain: Allow for max_stack greater than PERF_MAX_STACK_DEPTH perf/x86: Fix time_shift in perf_event_mmap_page Alexander Shishkin (2): perf/x86/intel/ds: Work around BTS leaking kernel addresses perf/x86/intel/bts: Disallow use by unprivileged users on paranoid systems Andi Kleen (3): perf tools: Always use non inlined file name for 'srcfile' sort key perf stat: Quieten failed to read counter message perf evsel: Print branch filter state with -vv Andrzej Hajda (1): perf tools: Fix handling read result using a signed variable Arnaldo Carvalho de Melo (43): perf trace: Add read/write to the file group perf env: Move perf_env out of header.h and session.c into separate object perf env: Rename some leftovers from rename to perf_env perf env: Adopt perf_header__set_cmdline perf hists browser: Fixup the "cpu" column width calculation perf evsel: Remove forward declaration of 'struct perf_evlist' tools lib api fs: Introduce sysfs__read_{int,ull}() tools lib api cpu: Introduce cpu.[ch] to obtain cpu related information perf cpu_map: Use sysfs__read_int in get_{core,socket}_id() perf env: Introduce read_cpu_topology_map() method perf machine: Add pointer to sample's environment tools build: Fixup feature detection display function name tools lib bpf: Fix up FEATURE_{TESTS,DISPLAY} usage tools build: Allow setting the feature detection user tools lib bpf: Use FEATURE_USER to allow building in the same dir as perf tools vm: Fix build due to removal of tools/lib/api/fs/debugfs.h perf top: Filter symbols based on __map__is_kernel(map) perf hists browser: Use the map to determine if a DSO is being used as a kernel perf tools: Use __map__is_kernel() when synthesizing kernel module mmap records perf maps: Introduce maps__find_symbol_by_name() perf machine: Use machine__kernel_map() thoroughly perf machine: Add method for common kernel_map(FUNCTION) operation tools lib symbol: Rename kallsyms2elf_type to kallsyms2elf_binding tools lib symbol: Introduce kallsyms2elf_type perf list: Remove blank lines, headers when piping output perf tools: By default use the most precise "cycles" hw counter available perf list: Do event name substring search as last resort when no events found perf list: Honour 'event_glob' whem printing selectable PMUs perf callchain: Switch default to 'graph,0.5,caller' perf ui browser: Optional horizontal scrolling key binding perf hists browser: Implement horizontal scrolling perf python: Support the PERF_RECORD_SWITCH event perf symbols: Try the .debug/ DSO cache as a last resort perf ui browsers: Remove help messages about use of right and arrow keys perf hists browser: Inform how to reset the symbol filter perf bench: Use named initializers in the trailer too perf annotate: Add debug message for out of bounds sample perf ui tui: Register the error callbacks before initializing the widgets perf annotate: Don't die() when finding an invalid config option perf tools: Show tool command line options ordered perf tools: Provide help for subset of options perf tools: Search for more options when passing args to -h perf trace: Add cmd string table to decode sys_bpf first arg Dima Kogan (2): perf symbols: Fix type error when reading a build-id perf symbols: we can now read separate debug-info files based on a build ID Don Zickus (1): perf tools: Add support for sorting on the iaddr Geliang Tang (1): perf/core, perf/x86: Change needlessly global functions and a variable to static He Kuang (6): perf tools: Copy linux/filter.h to tools/include tools lib traceevent: Support function __get_dynamic_array_len perf tools: Adds the config_term callback for different type events perf tools: Show proper error message for wrong terms of hw/sw events perf tools: Adds the tracepoint name parsing support perf tools: Enable event_config terms to tracepoint events Huaitong Han (1): perf/x86/intel/pt: Fix KVM warning due to doing rdmsr() before the CPUID test Ingo Molnar (14): perf bench: Improve the 'perf bench mem memcpy' code readability perf bench: Default to all routines in 'perf bench mem' perf bench: Eliminate unused argument from bench_mem_common() perf bench: Rename 'mem-memcpy.c' => 'mem-functions.c' perf bench: Remove the prefaulting complication from 'perf bench mem mem*' perf bench: List output formatting options on 'perf bench -h' perf bench mem: Change 'cycle' to 'cycles' perf bench mem: Rename 'routine' to 'routine_str' perf bench mem: Fix 'length' vs. 'size' naming confusion perf bench mem: Improve user visible strings perf bench mem: Reorganize the code a bit perf bench: Harmonize all the -l/--nr_loops options perf bench mem: Rename 'routine' to 'function' perf bench: Run benchmarks, don't test them Jan Stancek (4): perf tests: Take into account address of each objdump line perf tests: Make objdump disassemble zero blocks perf tests: Stop reading if objdump output crossed sections perf tests: Print objdump/dso buffers if they don't match Jiri Olsa (54): perf tools: Remove mountpoint arg from perf_debugfs_mount perf tools: Move tracing_path stuff under same namespace tools lib api fs: Move tracing_path interface into api/fs/tracing_path.c tools lib api fs: Move debugfs__strerror_open into tracing_path.c object tools lib api fs: Add STR and PATH_MAX macros to fs object tools lib api fs: Move SYSFS_MAGIC PROC_SUPER_MAGIC into fs.c tools lib api fs: Add debugfs into fs.c object tools lib api fs: Add tracefs into fs.c object tools lib api fs: Add FSTYPE__mount() method tools lib api fs: Add FSTYPE__configured() method tools lib api fs: Make tracing_path_strerror_open message generic tools lib api fs: Replace debugfs/tracefs objects interface with fs.c tools lib api fs: Remove debugfs, tracefs and findfs objects perf tools: Switch to tracing_path interface on appropriate places perf tools: Add tools/include into tags directories tools: Add err.h with ERR_PTR PTR_ERR interface perf tools: Propagate error info for the tracepoint parsing perf evsel: Propagate error info from tp_format perf tools: Enhance parsing events tracepoint error output perf tools: Add include/err.h into MANIFEST tools lib api fs: Store tracing mountpoint for better error message tools build: Add Makefile.include tools build: Add test for missing include tools build: Add fixdep dependency helper tools build: Move dependency copy into function tools build: Make the fixdep helper part of the build process perf tools: Rename the 'single_dep' target to 'prepare' tools build: Build fixdep helper from perf and basic libs tools: Fix shadowed declaration in err.h perf tools: Fix shadowed declaration in parse-events.c tools lib api fs: No need to use PATH_MAX + 1 perf evlist: Display DATA_SRC sample type bit perf annotate: Fix sizeof_sym_hist overflow issue perf tools: Export perf_event_attr__set_max_precise_ip() perf tools: Introduce 'P' modifier to request max precision perf tests: Add parsing test for 'P' modifier perf tools: Setup proper width for symbol_iaddr field perf tools: Handle -h and -v options perf tools: Fail properly in case pattern matching fails to find tracepoint perf tools: Get rid of superfluos call to reset_dimensions perf tools: Introduce hpp_dimension__add_output function perf tools: Use hpp_dimension__add_output to register hpp columns tools include: Fix strict-aliasing rules breakage tools build: Fix cross compile build perf stat: Rename perf_stat struct into perf_stat_evsel perf stat: Add AGGR_UNSET mode perf cpu_map: Make cpu_map__build_map global perf cpu_map: Add data arg to cpu_map__build_map callback perf script: Check output fields only for samples perf evsel: Move id_offset out of struct perf_evsel union member perf cpu_map: Add cpu_map__empty_new function perf stat: Cache aggregated map entries in extra cpumap perf symbols: Fix endless loop in dso__split_kallsyms_for_kcore perf tools: Make sure fixdep is built before libbpf Kan Liang (15): perf cpumap: Factor out functions to get core_id and socket_id perf tools: Store the cpu socket and core ids in the perf.data header perf session: Don't call dump_sample() when evsel is NULL perf/x86/intel: Fix LBR callstack issue caused by FREEZE_LBRS_ON_PMI perf test: Add entry to test cpu topology perf env: Read msr pmu type from header perf tools: Add processor socket info to hist_entry and addr_location perf tools: Introduce new sort type "socket" for the processor socket perf report: Introduce --socket-filter option perf hists browser: Zoom in/out for processor socket perf test: Add entry for hists socket filter perf/x86/intel: Fix static checker warning in lbr enable perf stat: Reduce min --interval-print to 10ms perf/x86: Add Intel cstate PMUs support perf cpu_map: Fix core dump caused by per-socket/core system-wide stat Kirill Tkhai (1): perf/core: Delete PF_EXITING checks from perf_cgroup_exit() callback Masami Hiramatsu (7): perf probe: Fix a segfault when removing uprobe events perf probe: Fix to remove dot suffix from second or latter events perf probe: Begin and end libdwfl report session correctly perf probe: Show correct source lines of probes on kmodules perf probe: Fix a segfault bug in debuginfo_cache perf probe: Improve error message when %return is on inlined function perf probe: Allow probing on kmodules without dwarf Matt Fleming (4): perf tests: Introduce iterator function for tests perf tests: Add arch tests perf tests: Move x86 tests into arch directory perf tests: Add Intel CQM test Namhyung Kim (23): perf probe: Split add_perf_probe_events() perf probe: Move print logic into cmd_probe() perf probe: Split del_perf_probe_events() perf probe: Print deleted events in cmd_probe() perf probe: Free perf_probe_event in cleanup_perf_probe_events() perf probe: Export init/exit_probe_symbol_maps() perf record: Synthesize COMM event for a command line workload perf record: Allocate area for sample_id_hdr in a synthesized comm event perf top: Fix unresolved comm when -s comm is used perf top: Register idle thread perf report: Fix a bug on "--call-graph none" option perf hists browser: Add 'm' key for context menu display perf test: Silence tracepoint event failures perf test: Suppress libtraceevent warnings perf tools: Move callchain help messages to callchain.h perf top: Support call-graph display options also perf tools: Defaults to 'caller' callchain order only if --children is enabled perf tools: Improve call graph documents and help messages perf annotate: Fix 'annotate.use_offset' config variable usage perf tools: Improve ambiguous option help message perf report: Rename to --show-cpu-utilization perf tools: Setup pager when printing usage and help perf tools: Introduce usage_with_options_msg() Paolo Bonzini (1): tools lib traceevent: update KVM plugin Peter Zijlstra (3): perf/abi: Document some more aspects of the perf ABI perf/core: Add group reads to perf_event_read() perf/core: Invert perf_read_group() loops Peter Zijlstra (Intel) (1): perf/core: Rename perf_event_read_{one,group}, perf_read_hw Rabin Vincent (4): perf callchain: Use debug_frame if eh_frame is unusable perf callchains: Fix unw_word_t pointer casts tools build: Fix libiberty feature detection perf unwind: Pass symbol source to libunwind Scott Wood (1): tools lib traceevent: Support %ps/%pS Stephane Eranian (5): perf: Add PERF_SAMPLE_BRANCH_CALL perf/x86: Add support for PERF_SAMPLE_BRANCH_CALL perf/powerpc: Add support for PERF_SAMPLE_BRANCH_CALL perf record: Add ability to sample call branches perf script: Enable printing of branch stack Sukadev Bhattiprolu (8): sparc, perf/sparc: Remove unnecessary assignment perf/core: Add a 'flags' parameter to the PMU transactional interfaces perf/core: Split perf_event_read() and perf_event_count() perf/core: Add return value for perf_event_read() perf/core: Define PERF_PMU_TXN_READ interface powerpc, perf/powerpc/hv-24x7: Use PMU_TXN_READ interface perf/core: Drop PERF_EVENT_TXN perf tools: Fix build break on powerpc due to sample_reg_masks Taku Izumi (1): perf/x86/intel/uncore: Fix multi-segment problem of perf_event_intel_uncore Vaishali Thakkar (1): perf/x86/intel/uncore: Do not use macro DEFINE_PCI_DEVICE_TABLE() Wang Nan (14): perf probe: Link trace_probe_event into perf_probe_event perf tools: regs_query_register_offset() infrastructure perf tools: Introduce regs_query_register_offset() for x86 perf tools: Don't assume that the parser returns non empty evsel list perf tools: Enable pre-event inherit setting by config terms perf tools: Make perf depend on libbpf perf ebpf: Add the libbpf glue perf tools: Enable passing bpf object file to --event perf tools: Create probe points for BPF programs perf tools: Load eBPF object into kernel perf bpf: Collect perf_evsel in BPF object files perf bpf: Attach eBPF filter to perf event perf record: Add clang options for compiling BPF scripts perf tools: Compile scriptlets to BPF objects when passing '.c' to --event Yang Shi (1): perf record: Change 'record.samples' type to unsigned long long Yunlong Song (2): perf help: Change 'usage' to 'Usage' for consistency perf build: Add fixdep to .gitignore arch/powerpc/perf/core-book3s.c | 36 +- arch/powerpc/perf/hv-24x7.c | 166 +++- arch/powerpc/perf/power8-pmu.c | 3 + arch/s390/kernel/perf_cpum_cf.c | 35 +- arch/sparc/kernel/perf_event.c | 32 +- arch/x86/kernel/cpu/Makefile | 1 + arch/x86/kernel/cpu/intel_cacheinfo.c | 8 +- arch/x86/kernel/cpu/perf_event.c | 39 +- arch/x86/kernel/cpu/perf_event.h | 2 +- arch/x86/kernel/cpu/perf_event_intel_bts.c | 13 + arch/x86/kernel/cpu/perf_event_intel_cstate.c | 694 ++++++++++++++++ arch/x86/kernel/cpu/perf_event_intel_ds.c | 40 +- arch/x86/kernel/cpu/perf_event_intel_lbr.c | 8 +- arch/x86/kernel/cpu/perf_event_intel_pt.c | 7 +- arch/x86/kernel/cpu/perf_event_intel_uncore.c | 61 +- arch/x86/kernel/cpu/perf_event_intel_uncore.h | 12 +- arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c | 16 +- .../x86/kernel/cpu/perf_event_intel_uncore_snbep.c | 34 +- arch/x86/kernel/tsc.c | 35 +- arch/x86/lib/x86-opcode-map.txt | 24 +- include/linux/perf_event.h | 120 ++- include/uapi/linux/perf_event.h | 6 +- kernel/events/core.c | 224 ++++-- tools/build/.gitignore | 1 + tools/build/Build | 1 + tools/build/Build.include | 17 +- tools/build/Documentation/Build.txt | 52 +- tools/build/Makefile | 43 + tools/build/Makefile.build | 7 + tools/build/Makefile.feature | 15 +- tools/build/Makefile.include | 10 + tools/build/feature/Makefile | 4 +- tools/build/fixdep.c | 168 ++++ tools/build/tests/ex/Build | 1 + tools/build/tests/ex/Makefile | 13 +- tools/build/tests/ex/ex.c | 2 + tools/build/tests/ex/inc.c | 8 + tools/build/tests/run.sh | 27 + tools/include/linux/compiler.h | 32 +- tools/include/linux/err.h | 49 ++ tools/include/linux/filter.h | 231 ++++++ tools/lib/api/Build | 1 + tools/lib/api/Makefile | 6 +- tools/lib/api/cpu.c | 18 + tools/lib/api/cpu.h | 6 + tools/lib/api/fs/Build | 4 +- tools/lib/api/fs/debugfs.c | 129 --- tools/lib/api/fs/debugfs.h | 23 - tools/lib/api/fs/findfs.c | 63 -- tools/lib/api/fs/findfs.h | 23 - tools/lib/api/fs/fs.c | 165 +++- tools/lib/api/fs/fs.h | 30 +- tools/lib/api/fs/tracefs.c | 78 -- tools/lib/api/fs/tracefs.h | 21 - tools/lib/api/fs/tracing_path.c | 135 ++++ tools/lib/api/fs/tracing_path.h | 16 + tools/lib/bpf/Makefile | 11 +- tools/lib/lockdep/Makefile | 6 +- tools/lib/symbol/kallsyms.c | 6 + tools/lib/symbol/kallsyms.h | 4 +- tools/lib/traceevent/event-parse.c | 60 +- tools/lib/traceevent/event-parse.h | 1 + tools/lib/traceevent/plugin_kvm.c | 25 +- tools/perf/Documentation/intel-pt.txt | 44 ++ tools/perf/Documentation/itrace.txt | 4 + tools/perf/Documentation/perf-bench.txt | 54 +- tools/perf/Documentation/perf-inject.txt | 3 + tools/perf/Documentation/perf-list.txt | 3 + tools/perf/Documentation/perf-record.txt | 16 +- tools/perf/Documentation/perf-report.txt | 48 +- tools/perf/Documentation/perf-script.txt | 17 +- tools/perf/Documentation/perf-stat.txt | 5 +- tools/perf/Documentation/perf-top.txt | 5 +- tools/perf/Documentation/perf.txt | 8 + tools/perf/MANIFEST | 5 + tools/perf/Makefile.perf | 53 +- tools/perf/arch/common.c | 10 +- tools/perf/arch/common.h | 4 +- tools/perf/arch/x86/Build | 2 +- tools/perf/arch/x86/Makefile | 1 + tools/perf/arch/x86/include/arch-tests.h | 19 + tools/perf/arch/x86/tests/Build | 10 +- tools/perf/arch/x86/tests/arch-tests.c | 34 + tools/perf/arch/x86/tests/dwarf-unwind.c | 1 + tools/perf/arch/x86/tests/gen-insn-x86-dat.awk | 75 ++ tools/perf/arch/x86/tests/gen-insn-x86-dat.sh | 43 + tools/perf/arch/x86/tests/insn-x86-dat-32.c | 658 ++++++++++++++++ tools/perf/arch/x86/tests/insn-x86-dat-64.c | 768 ++++++++++++++++++ tools/perf/arch/x86/tests/insn-x86-dat-src.c | 877 +++++++++++++++++++++ tools/perf/arch/x86/tests/insn-x86.c | 185 +++++ tools/perf/arch/x86/tests/intel-cqm.c | 124 +++ tools/perf/{ => arch/x86}/tests/perf-time-to-tsc.c | 4 +- tools/perf/{ => arch/x86}/tests/rdpmc.c | 7 +- tools/perf/arch/x86/util/dwarf-regs.c | 122 ++- tools/perf/arch/x86/util/intel-pt.c | 55 +- tools/perf/bench/Build | 2 +- tools/perf/bench/mem-functions.c | 379 +++++++++ tools/perf/bench/mem-memcpy.c | 434 ---------- tools/perf/bench/numa.c | 4 +- tools/perf/bench/sched-messaging.c | 10 +- tools/perf/builtin-annotate.c | 2 +- tools/perf/builtin-bench.c | 14 +- tools/perf/builtin-evlist.c | 4 +- tools/perf/builtin-help.c | 2 +- tools/perf/builtin-inject.c | 127 ++- tools/perf/builtin-kmem.c | 2 +- tools/perf/builtin-kvm.c | 1 - tools/perf/builtin-list.c | 20 +- tools/perf/builtin-probe.c | 147 +++- tools/perf/builtin-record.c | 56 +- tools/perf/builtin-report.c | 65 +- tools/perf/builtin-sched.c | 4 +- tools/perf/builtin-script.c | 113 ++- tools/perf/builtin-stat.c | 93 ++- tools/perf/builtin-top.c | 59 +- tools/perf/builtin-trace.c | 31 +- tools/perf/config/Makefile | 23 +- tools/perf/perf.c | 30 +- tools/perf/python/twatch.py | 23 +- tools/perf/scripts/python/export-to-postgresql.py | 221 ++++++ tools/perf/tests/Build | 4 +- tools/perf/tests/bpf-script-example.c | 44 ++ tools/perf/tests/builtin-test.c | 76 +- tools/perf/tests/code-reading.c | 76 +- tools/perf/tests/dwarf-unwind.c | 4 + tools/perf/tests/evsel-tp-sched.c | 10 +- tools/perf/tests/hists_filter.c | 55 +- tools/perf/tests/make | 4 +- tools/perf/tests/mmap-basic.c | 3 +- tools/perf/tests/openat-syscall-all-cpus.c | 13 +- tools/perf/tests/openat-syscall-tp-fields.c | 5 +- tools/perf/tests/openat-syscall.c | 13 +- tools/perf/tests/parse-events.c | 49 +- tools/perf/tests/tests.h | 10 +- tools/perf/tests/topology.c | 115 +++ tools/perf/tests/vmlinux-kallsyms.c | 4 +- tools/perf/trace/strace/groups/file | 2 + tools/perf/ui/browser.c | 14 + tools/perf/ui/browser.h | 2 +- tools/perf/ui/browsers/annotate.c | 14 +- tools/perf/ui/browsers/hists.c | 120 ++- tools/perf/ui/browsers/map.c | 2 +- tools/perf/ui/browsers/scripts.c | 2 +- tools/perf/ui/hist.c | 16 +- tools/perf/ui/tui/setup.c | 8 +- tools/perf/util/Build | 2 + tools/perf/util/annotate.c | 5 +- tools/perf/util/annotate.h | 2 +- tools/perf/util/auxtrace.c | 24 +- tools/perf/util/auxtrace.h | 4 + tools/perf/util/bpf-loader.c | 352 +++++++++ tools/perf/util/bpf-loader.h | 85 ++ tools/perf/util/callchain.c | 42 +- tools/perf/util/callchain.h | 26 + tools/perf/util/cpumap.c | 97 +-- tools/perf/util/cpumap.h | 10 +- tools/perf/util/env.c | 86 ++ tools/perf/util/env.h | 44 ++ tools/perf/util/event.c | 22 +- tools/perf/util/event.h | 6 + tools/perf/util/evlist.c | 47 +- tools/perf/util/evlist.h | 5 + tools/perf/util/evsel.c | 50 +- tools/perf/util/evsel.h | 10 +- tools/perf/util/header.c | 136 +++- tools/perf/util/header.h | 27 +- tools/perf/util/hist.c | 59 +- tools/perf/util/hist.h | 8 +- tools/perf/util/include/dwarf-regs.h | 8 + tools/perf/util/intel-pt-decoder/Build | 13 +- .../perf/util/intel-pt-decoder/intel-pt-decoder.c | 4 +- tools/perf/util/intel-pt-decoder/intel-pt-log.c | 21 +- tools/perf/util/intel-pt-decoder/intel-pt-log.h | 38 +- .../perf/util/intel-pt-decoder/x86-opcode-map.txt | 24 +- tools/perf/util/intel-pt.c | 266 ++++++- tools/perf/util/machine.c | 29 +- tools/perf/util/machine.h | 9 +- tools/perf/util/map.c | 21 +- tools/perf/util/map.h | 2 + tools/perf/util/parse-branch-options.c | 1 + tools/perf/util/parse-events.c | 374 ++++++++- tools/perf/util/parse-events.h | 16 +- tools/perf/util/parse-events.l | 12 +- tools/perf/util/parse-events.y | 82 +- tools/perf/util/parse-options.c | 156 +++- tools/perf/util/parse-options.h | 5 + tools/perf/util/pmu.c | 42 +- tools/perf/util/probe-event.c | 234 +++--- tools/perf/util/probe-event.h | 11 + tools/perf/util/probe-file.c | 56 +- tools/perf/util/probe-file.h | 4 + tools/perf/util/probe-finder.c | 58 +- tools/perf/util/python.c | 59 +- .../perf/util/scripting-engines/trace-event-perl.c | 1 + .../util/scripting-engines/trace-event-python.c | 3 +- tools/perf/util/session.c | 37 +- tools/perf/util/session.h | 2 + tools/perf/util/sort.c | 74 +- tools/perf/util/sort.h | 6 + tools/perf/util/srcline.c | 29 +- tools/perf/util/stat.c | 13 +- tools/perf/util/stat.h | 3 +- tools/perf/util/strbuf.c | 22 +- tools/perf/util/strbuf.h | 2 + tools/perf/util/symbol-minimal.c | 2 +- tools/perf/util/symbol.c | 31 +- tools/perf/util/symbol.h | 1 + tools/perf/util/trace-event-info.c | 2 +- tools/perf/util/trace-event.c | 16 +- tools/perf/util/trace-event.h | 2 + tools/perf/util/unwind-libunwind.c | 19 +- tools/perf/util/usage.c | 5 + tools/perf/util/util.c | 72 +- tools/perf/util/util.h | 12 +- tools/vm/page-types.c | 6 +- 215 files changed, 9951 insertions(+), 2026 deletions(-) create mode 100644 arch/x86/kernel/cpu/perf_event_intel_cstate.c create mode 100644 tools/build/.gitignore create mode 100644 tools/build/Build create mode 100644 tools/build/Makefile create mode 100644 tools/build/Makefile.include create mode 100644 tools/build/fixdep.c create mode 100644 tools/build/tests/ex/inc.c create mode 100644 tools/include/linux/err.h create mode 100644 tools/include/linux/filter.h create mode 100644 tools/lib/api/cpu.c create mode 100644 tools/lib/api/cpu.h delete mode 100644 tools/lib/api/fs/debugfs.c delete mode 100644 tools/lib/api/fs/debugfs.h delete mode 100644 tools/lib/api/fs/findfs.c delete mode 100644 tools/lib/api/fs/findfs.h delete mode 100644 tools/lib/api/fs/tracefs.c delete mode 100644 tools/lib/api/fs/tracefs.h create mode 100644 tools/lib/api/fs/tracing_path.c create mode 100644 tools/lib/api/fs/tracing_path.h create mode 100644 tools/perf/arch/x86/include/arch-tests.h create mode 100644 tools/perf/arch/x86/tests/arch-tests.c create mode 100644 tools/perf/arch/x86/tests/gen-insn-x86-dat.awk create mode 100755 tools/perf/arch/x86/tests/gen-insn-x86-dat.sh create mode 100644 tools/perf/arch/x86/tests/insn-x86-dat-32.c create mode 100644 tools/perf/arch/x86/tests/insn-x86-dat-64.c create mode 100644 tools/perf/arch/x86/tests/insn-x86-dat-src.c create mode 100644 tools/perf/arch/x86/tests/insn-x86.c create mode 100644 tools/perf/arch/x86/tests/intel-cqm.c rename tools/perf/{ => arch/x86}/tests/perf-time-to-tsc.c (98%) rename tools/perf/{ => arch/x86}/tests/rdpmc.c (97%) create mode 100644 tools/perf/bench/mem-functions.c delete mode 100644 tools/perf/bench/mem-memcpy.c create mode 100644 tools/perf/tests/bpf-script-example.c create mode 100644 tools/perf/tests/topology.c create mode 100644 tools/perf/util/bpf-loader.c create mode 100644 tools/perf/util/bpf-loader.h create mode 100644 tools/perf/util/env.c create mode 100644 tools/perf/util/env.h [ 600K+ diff omitted due to lkml mail size limits. ] -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/