[GIT PULL] perf changes for v4.4

From: Ingo Molnar
Date: Tue Nov 03 2015 - 05:02:29 EST


Linus,

Please pull the latest perf-core-for-linus git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf-core-for-linus

# HEAD: 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/