[GIT PULL] perf changes for v4.14
From: Ingo Molnar
Date: Mon Sep 04 2017 - 03:16:06 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: 1b2f76d77a277bb70d38ad0991ed7f16bbc115a9 Merge tag 'perf-core-for-mingo-4.14-20170829' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Kernel side changes:
- Add branch type profiling/tracing support. (Jin Yao)
- Add the PERF_SAMPLE_PHYS_ADDR ABI to allow the tracing/profiling of
physical memory addresses, where the PMU supports it. (Kan Liang)
- Export some PMU capability details in the new
/sys/bus/event_source/devices/cpu/caps/ sysfs directory. (Andi Kleen)
- Aux data fixes and updates (Will Deacon)
- kprobes fixes and updates (Masami Hiramatsu)
- AMD uncore PMU driver fixes and updates (Janakarajan Natarajan)
On the tooling side, here's a (limited!) list of highlights - there were many
other changes that I could not list, see the shortlog and git history for details:
UI improvements:
- Implement a visual marker for fused x86 instructions in the annotate
TUI browser, available now in 'perf report', more work needed to have
it available as well in 'perf top' (Jin Yao)
Further explanation from one of Jin's patches:
â âââcmpl $0x0,argp_program_version_hook
81.93 â âââje 20
â â lock cmpxchg %esi,0x38a9a4(%rip)
â ââ jne 29
â ââ jmp 43
11.47 â20:âââcmpxch %esi,0x38a999(%rip)
That means the cmpl+je is a fused instruction pair and they should be
considered together.
- Record the branch type and then show statistics and info about
in callchain entries (Jin Yao)
Example from one of Jin's patches:
# perf record -g -j any,save_type
# perf report --branch-history --stdio --no-children
38.50% div.c:45 [.] main div
|
---main div.c:42 (RET CROSS_2M cycles:2)
compute_flag div.c:28 (cycles:2)
compute_flag div.c:27 (RET CROSS_2M cycles:1)
rand rand.c:28 (cycles:1)
rand rand.c:28 (RET CROSS_2M cycles:1)
__random random.c:298 (cycles:1)
__random random.c:297 (COND_BWD CROSS_2M cycles:1)
__random random.c:295 (cycles:1)
__random random.c:295 (COND_BWD CROSS_2M cycles:1)
__random random.c:295 (cycles:1)
__random random.c:295 (RET CROSS_2M cycles:9)
namespaces support:
- Add initial support for namespaces, using setns to access files in
namespaces, grabbing their build-ids, etc. (Krister Johansen)
perf trace enhancements:
- Beautify pkey_{alloc,free,mprotect} arguments in 'perf trace' (Arnaldo Carvalho de Melo)
- Add initial 'clone' syscall args beautifier in 'perf trace' (Arnaldo Carvalho de Melo)
- Ignore 'fd' and 'offset' args for MAP_ANONYMOUS in 'perf trace'
(Arnaldo Carvalho de Melo)
- Beautifiers for the 'cmd' arg of several ioctl types, including:
sound, DRM, KVM, vhost virtio and perf_events. (Arnaldo Carvalho de Melo)
- Add PERF_SAMPLE_CALLCHAIN and PERF_RECORD_MMAP[2] to 'perf data' CTF
conversion, allowing CTF trace visualization tools to show callchains
and to resolve symbols (GeneviÃve Bastien)
- Beautify the fcntl syscall, which is an interesting one in the sense
that infrastructure had to be put in place to change the formatters of
some arguments according to the value in a previous one, i.e. cmd
dictates how arg and the syscall return will be formatted.
(Arnaldo Carvalho de Melo
perf stat enhancements:
- Use group read for event groups in 'perf stat', reducing overhead when
groups are defined in the event specification, i.e. when using {} to
enclose a list of events, asking them to be read at the same time,
e.g.: "perf stat -e '{cycles,instructions}'" (Jiri Olsa)
pipe mode improvements:
- Process tracing data in 'perf annotate' pipe mode (David Carrillo-Cisneros)
- Add header record types to pipe-mode, now this command:
$ perf record -o - -e cycles sleep 1 | perf report --stdio --header
Will show the same as in non-pipe mode, i.e. involving a perf.data
file (David Carrillo-Cisneros)
Vendor specific hardware event support updates/enhancements:
- Update POWER9 vendor events tables (Sukadev Bhattiprolu)
- Add POWER9 PMU events Sukadev (Bhattiprolu)
- Support additional POWER8+ PVR in PMU mapfile (Shriya)
- Add Skylake server uncore JSON vendor events (Andi Kleen)
- Support exporting Intel PT data to sqlite3 with python perf scripts,
this is in addition to the postgresql support that was already there (Adrian Hunter)
Thanks,
Ingo
------------------>
Adrian Hunter (5):
perf scripts python: Fix missing call_path_id in export-to-postgresql script
perf scripts python: Fix query in call-graph-from-postgresql.py
perf script python: Add support for exporting to sqlite3
perf script python: Rename call-graph-from-postgresql.py to call-graph-from-sql.py
perf script python: Add support for sqlite3 to call-graph-from-sql.py
Alexander Shishkin (1):
perf/core, pt, bts: Get rid of itrace_started
Andi Kleen (19):
perf jevents: Make build fail on JSON parse error
perf stat: Fix saved values rbtree lookup
perf tools: Add missing newline to expr parser error messages
perf jevents: Support FCMask and PortMask
perf xyarray: Save max_x, max_y
perf evsel: Fix buffer overflow while freeing events
perf bpf: Tighten detection of BPF events
perf tools: Add utility function to detect SMT status
perf tools: Expression parser enhancements for metrics
perf tools: Increase maximum number of events in expressions
perf tools: Dedup events in expression parsing
perf vendor events: Add core event list for Skylake Server
perf vendor events: Add Skylake server uncore event list
perf tools: Add support for printing new mem_info encodings
perf test: Add test cases for new data source encoding
perf/x86: Move Nehalem PEBS code to flag
perf/x86: Fix data source decoding for Skylake
perf/x86: Only show format attributes when supported
perf/x86: Export some PMU attributes in caps/ directory
Arnaldo Carvalho de Melo (98):
perf trace: Remove F_ from some of the fcntl command strings
perf trace: Beautify linux specific fcntl commands
tools: Update include/uapi/linux/fcntl.h copy from the kernel
perf trace beauty: Export the strarrays scnprintf method
perf trace: Only build tools/perf/trace/beauty/ when building 'perf trace'
perf trace beauty: Mask ignored fcntl 'arg' parameter
perf trace beauty: Allow accessing syscall args values in a syscall arg formatter
perf trace beauty: Export the "int" and "hex" syscall arg formatters
perf trace beauty: Introduce syscall arg beautifier for long integers
tools include uapi asm-generic: Grab a copy of fcntl.h
perf trace beauty fcntl: Basic 'arg' beautifier
perf trace: Beautify new write hint fcntl commands
perf beauty open: Detach the syscall_arg agnostic bits from the flags formatter
perf trace: Allow syscall_arg beautifiers to set a different return formatter
perf trace beauty open flags: Support O_TMPFILE and O_NOFOLLOW
perf trace beauty open flags: Do not depend on the system's O_LARGEFILE define
perf trace beauty fcntl: Beautify F_GETFL return value
perf trace beauty open flags: Move RDRW to the start of the output
perf trace beauty fcntl flags: Beautify F_SETFL arg
perf trace beauty fcntl: Beautify F_[GS]ETFD arg/return value
perf trace beauty: Give syscall return beautifier more context
perf trace beauty: Export the fd beautifier for use in more places
perf trace beauty fcntl: Augment the return of F_DUPFD(_CLOEXEC)
perf trace beauty: Export the pid beautifier for use in more places
perf trace beauty fcntl: Beautify F_GETOWN and F_SETOWN
tools include uapi x86: Grab a copy of unistd.h
tools include uapi x86: Add __NR_setns, if missing
tools build: Add test for setns()
perf evsel: Allow asking for max precise_ip in new_cycles()
perf evlist: Allow asking for max precise_ip in add_default()
perf record: Do not ask for precise_ip with --no-samples
perf test sdt: Handle realpath() failure
perf trace beauty: Export strarray for use in per-object beautifiers
perf trace beauty fcntl: Beautify F_GETLEASE and F_SETLEASE arg/return
perf trace: Group per syscall arg formatter info into one struct
perf trace: Allow syscall arg formatters to request non suppression of zeros
perf trace beauty fcntl: Do not suppress 'cmd' when zero, should be DUPFD
perf trace beauty fcntl: Beautify the 'arg' for DUPFD
perf trace beauty: Simplify syscall return formatting
perf trace: Add missing ' = ' in the default formatting of syscall returns
perf trace beauty mmap: Ignore 'fd' and 'offset' args for MAP_ANONYMOUS
perf trace: Allow allocating sc->arg_fmt even without the syscall tracepoint
perf trace: Use the syscall_fmt formatters without a tracepoint
perf trace: Ditch __syscall__arg_val() variant, not needed anymore
perf trace: Allow specifying number of syscall args for tracepointless syscalls
perf trace: Allow specifying names to syscall arguments formatters
tools include uapi: Grab a copy of linux/sched.h
perf trace beauty clone: Beautify syscall arguments
perf trace beauty clone: Suppress unused args according to 'flags' arg
perf trace: Introduce filter_loop_pids()
perf trace: Filter out 'sshd' in the tracer ancestry in syswide tracing
tools include: Adopt strstarts() from the kernel
tools lib: Update copy of strtobool from the kernel sources
perf cgroup: Fix refcount usage
perf tools: Add tools/include/uapi/asm-generic/fcntl.h to the MANIFEST
perf annotate: Do not overwrite perf_sample->weight
perf annotate stdio: Set enough columns for --show-total-period
perf annotate: Fix storing per line sym_hist_entry
perf annotate TUI: Use sym_hist_entry in disasm_line_samples
perf annotate TUI: Clarify calculation of column header widths
perf annotate TUI: Set appropriate column width for period/percent
tools headers: Fixup tools/include/uapi/linux/bpf.h copy of kernel ABI header
tools include uapi: Grab a copy of asm-generic/ioctls.h
tools perf: Do not check spaces/blank lines when checking header file copy drift
tools headers: Fixup tools/include/uapi/linux/bpf.h copy of kernel ABI header
perf trace beauty ioctl: Improve 'cmd' beautifier
tools include uapi: Grab copies of drm/{drm,i915_drm}.h
perf trace beauty ioctl: Beautify DRM ioctl cmds
tools include uapi: Grab a copy of sound/asound.h
perf trace beautify ioctl: Beautify sound ioctl's 'cmd' arg
tools include uapi: Grab a copy of linux/kvm.h
perf trace beautify ioctl: Beautify KVM ioctl's 'cmd' arg
perf trace beauty ioctl: Pass _IOC_DIR to the per _IOC_TYPE scnprintf
tools include uapi: Grab a copy of linux/vhost.h
perf trace beautify ioctl: Beautify vhost virtio ioctl's 'cmd' arg
perf trace beautify ioctl: Beautify perf ioctl's 'cmd' arg
perf test: Make 'list' subcommand match main 'perf test' numbering/matching
perf test: Add 'struct test *' to the test functions
perf test: Add infrastructure to run shell based tests
perf test: Make 'list' use same filtering code as main 'perf test'
perf test shell: Add 'probe_vfs_getname' shell test
perf test shell: Install shell tests
perf test shell: Move vfs_getname probe function to lib
perf test shell: Add test using probe:vfs_getname and verifying results
perf test shell: Add test using vfs_getname + 'perf trace'
perf test shell: Add uprobes + backtrace ping test
perf tests shell: Remove duplicate skip_if_no_debuginfo() function
perf test shell: Check if 'perf probe' is available, skip tests if not
perf test shell vfs_getname: Skip for tools built with NO_LIBDWARF=1
perf trace: Fix off by one string allocation problem
perf events parse: Remove some needless local variables
perf events parse: Rename parsing state struct to clearer name
perf events parse: Use just one parse events state struct
perf events parse: Rename parse_events_parse arguments
perf tools: Remove unused cpu_relax() macros
perf tools: Use default CPUINFO_PROC where it fits
tools headers: Sync cpu features kernel ABI headers with tooling headers
perf trace beauty: Beautify pkey_{alloc,free,mprotect} arguments
Arun Kalyanasundaram (5):
perf script python: Allocate memory only if handler exists
perf script python: Refactor creation of perf sample dict
perf script python: Add sample_read to dict
perf script python: Add perf_sample dict to tracepoint handlers
perf script python: Generate hooks with additional argument
Dan Carpenter (1):
perf script: Remove some bogus error handling
Daniel DÃaz (1):
tools lib bpf: Fix double file test in Makefile
David Carrillo-Cisneros (24):
perf header: Encapsulate read and swap
perf header: Add PROCESS_STR_FUN macro
perf header: Fail on write_padded error
perf util: Add const modifier to buf in "writen" function
perf header: Revamp do_write()
perf header: Add struct feat_fd for write
perf header: Use struct feat_fd for print
perf header: Use struct feat_fd to process header records
perf header: Don't pass struct perf_file_section to process_##_feat
perf header: Use struct feat_fd in read header records
perf header: Make write_pmu_mappings pipe-mode friendly
perf header: Add a buffer to struct feat_fd
perf header: Change FEAT_OP* macros
perf tool: Add show_feature_header to perf_tool
perf tools: Add feature header record to pipe-mode
perf header: Add event desc to pipe-mode header
perf tools: Add EXCLUDE_EXTLIBS and EXTRA_PERFLIBS to makefile
perf annotate: Process tracing data in pipe mode
perf sort: Use default sort if evlist is empty
tools build tests: Don't hardcode gcc name
perf tools: Allow external definition of flex and bison binary names
tools lib: Allow external definition of CC, AR and LD
perf tools: Robustify detection of clang binary
perf tools: Pass full path of FEATURES_DUMP
GeneviÃve Bastien (3):
perf data: Add callchain to CTF conversion
perf data: Add mmap[2] events to CTF conversion
perf data: Add doc when no conversion support compiled
Ingo Molnar (3):
perf build: Clarify header version warning message
perf build: Clarify open-coded header version warning message
tools headers: Sync kernel ABI headers with tooling headers
Jack Henschel (1):
perf stat: Fix path to PMU formats in documentation
Janakarajan Natarajan (2):
perf/x86/amd/uncore: Rename cpufeatures macro for cache counters
perf/x86/amd/uncore: Get correct number of cores sharing last level cache
Jesper Dangaard Brouer (1):
tracing, perf: Adjust code layout in get_recursion_context()
Jin Yao (12):
perf annotate: Check for fused instructions
perf annotate: Implement visual marker for macro fusion
perf report: Enable finding kernel inline functions
perf/core: Define the common branch type classification
perf/x86/intel: Record branch type
perf record: Create a new option save_type in --branch-filter
perf report: Refactor the branch info printing code
perf util: Create branch.c/.h for common branch functions
perf report: Show branch type statistics for stdio mode
perf report: Show branch type in callchain entry
perf report: Make --branch-history work without callgraphs(-g) option in perf record
perf report: Tag branch type/flag on "to" and tag cycles on "from"
Jiri Olsa (25):
perf tests attr: Do not store failed events
perf tests attr: Add test_attr__ready function
perf tests attr: Make compare_data global
perf tests attr: Rename compare_data to data_equal
perf tests attr: Add 1s for exclude_kernel and task base bits
perf tests attr: Fix record dwarf test
perf tests attr: Fix no-delay test
perf tests attr: Add proper return values
perf tests attr: Fix cpu test disabled term setup
perf tests attr: Fix sample_period setup
perf tests attr: Fix precise_ip setup
perf tests attr: Fix stat sample_type setup
perf tests attr: Add optional term
perf evsel: Add verbose output for sys_perf_event_open fallback
perf tools: Add perf_evsel__read_size function
perf evsel: Add read_counter()
perf stat: Use group read for event groups
perf tools: Fix static build with newer toolchains
perf c2c: Fix remote HITM detection for Skylake
perf record: Set read_format for inherit_stat
perf report: Add dump_read function
perf values: Fix thread index bug
perf values: Fix allocation check
perf values: Zero value buffers
perf report: Group stat values on global event id
Kan Liang (3):
perf intel-pt: Set no_aux_samples for the tracking event
perf intel-pt: Always set no branch for dummy event
perf/core, x86: Add PERF_SAMPLE_PHYS_ADDR
Kim Phillips (1):
perf test shell: Replace '|&' with '2>&1 |' to work with more shells
Konstantin Khlebnikov (4):
perf tools: Really install manpages via 'make install-man'
perf: Fix documentation for sysctls perf_event_paranoid and perf_event_mlock_kb
perf tools: Fix static linking with libdw from elfutils
perf tools: Fix static linking with libunwind
Krister Johansen (6):
perf symbols: Find symbols in different mount namespace
perf maps: Lookup maps in both intitial mountns and inner mountns.
perf probe: Allow placing uprobes in alternate namespaces.
perf buildid-cache: Support binary objects from other namespaces
perf buildid-cache: Cache debuginfo
perf top: Support lookup of symbols in other mount namespaces.
Li Bin (2):
perf probe: Fix kprobe blacklist checking condition
perf symbols: Fix plt entry calculation for ARM and AARCH64
Masami Hiramatsu (5):
h8300: Mark _stext and _etext as char-arrays, not single char variables
xtensa: Mark _stext and _end as char-arrays, not single char variables
cris: Mark _stext and _end as char-arrays, not single char variables
irq: Make the irqentry text section unconditional
kprobes/x86: Do not jump-optimize kprobes on irq entry code
Milian Wolff (2):
perf util: Take elf_name as const string in dso__demangle_sym
perf srcline: Do not consider empty files as valid srclines
Naveen N. Rao (1):
perf scripting python: Add ppc64le to audit uname list
Oleg Nesterov (1):
perf/core: Don't report zero PIDs for exiting tasks
Peter Zijlstra (1):
perf/x86: Fix caps/ for !Intel
Shriya (1):
perf pmu-events: Support additional POWER8+ PVR in mapfile
Sudeep Holla (1):
perf jvmti: Fix linker error when libelf config is disabled
Sukadev Bhattiprolu (4):
perf vendor events: Add POWER9 PMU events
perf vendor events: Add POWER9 PVRs to mapfile
perf vendor events powerpc: remove suffix in mapfile
perf vendor events powerpc: Update POWER9 events
Taeung Song (13):
perf annotate: Introduce struct sym_hist_entry
perf annotate: Rename 'sum' to 'nr_samples' in struct sym_hist
perf hists: Pass perf_sample to __symbol__inc_addr_samples()
perf annotate: Store the sample period in each histogram bucket
perf annotate: Do not overwrite sample->period
perf annotate stdio: Fix --show-total-period
perf annotate stdio: Fix column header when using --show-total-period
perf annotate TUI: Fix --show-total-period
perf annotate TUI: Fix column header when toggling period/percent
perf annotate stdio: Support --show-nr-samples option
perf annotate: Document --show-total-period option
perf annotate browser: Support --show-nr-samples option
perf annotate browser: Circulate percent, total-period and nr-samples view
Thomas Richter (3):
perf report: Fix kernel symbol adjustment for s390x
perf record: Fix wrong size in perf_record_mmap for last kernel module
perf report: Fix module symbol adjustment for s390x
Wang Nan (1):
perf bpf: Fix endianness problem when loading parameters in prologue
Will Deacon (2):
perf/aux: Make aux_{head,wakeup} ring_buffer members long
perf/aux: Ensure aux_wakeup represents most recent wakeup index
leilei.lin (1):
perf/core: Reduce context switch overhead
Documentation/sysctl/kernel.txt | 13 +-
arch/arm/include/asm/traps.h | 7 -
arch/arm64/include/asm/traps.h | 7 -
arch/cris/arch-v32/mach-a3/arbiter.c | 4 +-
arch/cris/arch-v32/mach-fs/arbiter.c | 4 +-
arch/cris/kernel/traps.c | 6 +-
arch/h8300/include/asm/traps.h | 6 +-
arch/powerpc/perf/core-book3s.c | 3 +-
arch/x86/entry/entry_64.S | 9 +-
arch/x86/events/amd/uncore.c | 21 +-
arch/x86/events/core.c | 57 +-
arch/x86/events/intel/bts.c | 2 +-
arch/x86/events/intel/core.c | 107 +-
arch/x86/events/intel/ds.c | 58 +-
arch/x86/events/intel/lbr.c | 52 +-
arch/x86/events/intel/pt.c | 5 +-
arch/x86/events/perf_event.h | 10 +-
arch/x86/include/asm/cpufeatures.h | 2 +-
arch/x86/kernel/kprobes/opt.c | 9 +-
arch/x86/kernel/unwind_frame.c | 2 -
arch/xtensa/kernel/setup.c | 6 +-
include/asm-generic/sections.h | 4 +
include/asm-generic/vmlinux.lds.h | 8 -
include/linux/interrupt.h | 14 +-
include/linux/perf_event.h | 7 +-
include/uapi/linux/perf_event.h | 61 +-
kernel/events/core.c | 85 +-
kernel/events/internal.h | 6 +-
kernel/events/ring_buffer.c | 31 +-
tools/arch/arm/include/uapi/asm/kvm.h | 8 +
tools/arch/arm64/include/uapi/asm/kvm.h | 3 +
tools/arch/powerpc/include/uapi/asm/kvm.h | 6 +
tools/arch/s390/include/uapi/asm/kvm.h | 12 +
tools/arch/x86/include/asm/cpufeatures.h | 3 +-
tools/arch/x86/include/asm/unistd_32.h | 3 +
tools/arch/x86/include/asm/unistd_64.h | 3 +
tools/arch/x86/include/uapi/asm/unistd.h | 17 +
tools/build/Makefile.feature | 3 +-
tools/build/feature/Makefile | 6 +-
tools/build/feature/test-all.c | 5 +
tools/build/feature/test-setns.c | 7 +
tools/build/tests/ex/Makefile | 2 +-
tools/include/linux/string.h | 12 +-
tools/include/uapi/asm-generic/fcntl.h | 220 ++
tools/include/uapi/asm-generic/ioctls.h | 118 +
tools/include/uapi/drm/drm.h | 933 ++++++++
tools/include/uapi/drm/i915_drm.h | 1474 ++++++++++++
tools/include/uapi/linux/bpf.h | 16 +-
tools/include/uapi/linux/fcntl.h | 21 +
tools/include/uapi/linux/kvm.h | 1419 +++++++++++
tools/include/uapi/linux/perf_event.h | 57 +-
tools/include/uapi/linux/sched.h | 52 +
tools/include/uapi/linux/vhost.h | 209 ++
tools/include/uapi/sound/asound.h | 1026 ++++++++
tools/lib/api/Makefile | 8 +-
tools/lib/bpf/Makefile | 8 +-
tools/lib/string.c | 41 +-
tools/lib/subcmd/Makefile | 2 +-
tools/lib/subcmd/help.c | 2 +-
tools/lib/subcmd/parse-options.c | 18 +-
tools/perf/Build | 2 +-
tools/perf/Documentation/Makefile | 2 +-
tools/perf/Documentation/intel-pt.txt | 6 +-
tools/perf/Documentation/perf-annotate.txt | 6 +
tools/perf/Documentation/perf-buildid-cache.txt | 5 +
tools/perf/Documentation/perf-probe.txt | 14 +
tools/perf/Documentation/perf-record.txt | 1 +
tools/perf/Documentation/perf-stat.txt | 4 +-
tools/perf/Documentation/perf-top.txt | 4 +
tools/perf/Documentation/perf.data-file-format.txt | 10 +-
tools/perf/MANIFEST | 8 +
tools/perf/Makefile.config | 25 +-
tools/perf/Makefile.perf | 101 +-
tools/perf/arch/powerpc/util/sym-handling.c | 2 +-
tools/perf/arch/s390/util/Build | 1 +
tools/perf/arch/s390/util/sym-handling.c | 29 +
tools/perf/arch/x86/Makefile | 2 +-
tools/perf/arch/x86/annotate/instructions.c | 46 +
tools/perf/arch/x86/include/arch-tests.h | 11 +-
tools/perf/arch/x86/tests/insn-x86.c | 2 +-
tools/perf/arch/x86/tests/intel-cqm.c | 2 +-
tools/perf/arch/x86/tests/perf-time-to-tsc.c | 2 +-
tools/perf/arch/x86/tests/rdpmc.c | 2 +-
tools/perf/arch/x86/util/intel-pt.c | 3 +
tools/perf/builtin-annotate.c | 23 +-
tools/perf/builtin-buildid-cache.c | 54 +-
tools/perf/builtin-config.c | 3 +-
tools/perf/builtin-data.c | 2 +-
tools/perf/builtin-ftrace.c | 2 +-
tools/perf/builtin-help.c | 6 +-
tools/perf/builtin-inject.c | 1 +
tools/perf/builtin-probe.c | 45 +-
tools/perf/builtin-record.c | 9 +-
tools/perf/builtin-report.c | 63 +-
tools/perf/builtin-script.c | 11 +-
tools/perf/builtin-stat.c | 30 +-
tools/perf/builtin-top.c | 22 +-
tools/perf/builtin-trace.c | 744 +++---
tools/perf/check-headers.sh | 20 +-
tools/perf/perf-sys.h | 28 +-
tools/perf/perf.c | 16 +-
tools/perf/perf.h | 1 +
tools/perf/pmu-events/README | 4 -
tools/perf/pmu-events/arch/powerpc/mapfile.csv | 16 +-
.../perf/pmu-events/arch/powerpc/power9/cache.json | 137 ++
.../arch/powerpc/power9/floating-point.json | 32 +
.../pmu-events/arch/powerpc/power9/frontend.json | 377 +++
.../pmu-events/arch/powerpc/power9/marked.json | 647 +++++
.../pmu-events/arch/powerpc/power9/memory.json | 132 +
.../perf/pmu-events/arch/powerpc/power9/other.json | 2512 ++++++++++++++++++++
.../pmu-events/arch/powerpc/power9/pipeline.json | 557 +++++
tools/perf/pmu-events/arch/powerpc/power9/pmc.json | 127 +
.../arch/powerpc/power9/translation.json | 232 ++
tools/perf/pmu-events/arch/x86/mapfile.csv | 1 +
tools/perf/pmu-events/arch/x86/skylakex/cache.json | 1672 +++++++++++++
.../arch/x86/skylakex/floating-point.json | 88 +
.../pmu-events/arch/x86/skylakex/frontend.json | 482 ++++
.../perf/pmu-events/arch/x86/skylakex/memory.json | 1396 +++++++++++
tools/perf/pmu-events/arch/x86/skylakex/other.json | 72 +
.../pmu-events/arch/x86/skylakex/pipeline.json | 950 ++++++++
.../arch/x86/skylakex/uncore-memory.json | 172 ++
.../pmu-events/arch/x86/skylakex/uncore-other.json | 1156 +++++++++
.../arch/x86/skylakex/virtual-memory.json | 284 +++
tools/perf/pmu-events/jevents.c | 23 +-
.../python/Perf-Trace-Util/lib/Perf/Trace/Util.py | 1 +
.../scripts/python/bin/export-to-sqlite-record | 8 +
.../scripts/python/bin/export-to-sqlite-report | 29 +
...h-from-postgresql.py => call-graph-from-sql.py} | 70 +-
tools/perf/scripts/python/export-to-postgresql.py | 5 +-
tools/perf/scripts/python/export-to-sqlite.py | 451 ++++
tools/perf/tests/Build | 1 +
tools/perf/tests/attr.c | 14 +-
tools/perf/tests/attr.py | 50 +-
tools/perf/tests/attr/base-record | 6 +-
tools/perf/tests/attr/base-stat | 4 +-
tools/perf/tests/attr/test-record-C0 | 1 +
tools/perf/tests/attr/test-record-basic | 1 +
tools/perf/tests/attr/test-record-branch-any | 2 +-
.../perf/tests/attr/test-record-branch-filter-any | 2 +-
.../tests/attr/test-record-branch-filter-any_call | 2 +-
.../tests/attr/test-record-branch-filter-any_ret | 2 +-
tools/perf/tests/attr/test-record-branch-filter-hv | 2 +-
.../tests/attr/test-record-branch-filter-ind_call | 2 +-
tools/perf/tests/attr/test-record-branch-filter-k | 2 +-
tools/perf/tests/attr/test-record-branch-filter-u | 2 +-
tools/perf/tests/attr/test-record-count | 1 +
tools/perf/tests/attr/test-record-data | 3 +-
tools/perf/tests/attr/test-record-freq | 1 +
tools/perf/tests/attr/test-record-graph-default | 1 +
tools/perf/tests/attr/test-record-graph-dwarf | 4 +-
tools/perf/tests/attr/test-record-graph-fp | 1 +
tools/perf/tests/attr/test-record-group | 1 +
tools/perf/tests/attr/test-record-group-sampling | 1 +
tools/perf/tests/attr/test-record-group1 | 1 +
...st-record-no-delay => test-record-no-buffering} | 4 +-
tools/perf/tests/attr/test-record-no-inherit | 1 +
tools/perf/tests/attr/test-record-no-samples | 1 +
tools/perf/tests/attr/test-record-period | 1 +
tools/perf/tests/attr/test-record-raw | 2 +-
tools/perf/tests/attr/test-stat-C0 | 4 +-
tools/perf/tests/attr/test-stat-default | 2 +
tools/perf/tests/attr/test-stat-detailed-1 | 2 +
tools/perf/tests/attr/test-stat-detailed-2 | 3 +
tools/perf/tests/attr/test-stat-detailed-3 | 5 +
tools/perf/tests/backward-ring-buffer.c | 2 +-
tools/perf/tests/bitmap.c | 2 +-
tools/perf/tests/bp_signal.c | 2 +-
tools/perf/tests/bp_signal_overflow.c | 2 +-
tools/perf/tests/bpf-script-test-prologue.c | 4 +-
tools/perf/tests/bpf.c | 20 +-
tools/perf/tests/builtin-test.c | 188 +-
tools/perf/tests/clang.c | 4 +-
tools/perf/tests/code-reading.c | 2 +-
tools/perf/tests/cpumap.c | 4 +-
tools/perf/tests/dso-data.c | 6 +-
tools/perf/tests/dwarf-unwind.c | 2 +-
tools/perf/tests/event-times.c | 2 +-
tools/perf/tests/event_update.c | 2 +-
tools/perf/tests/evsel-roundtrip-name.c | 2 +-
tools/perf/tests/evsel-tp-sched.c | 2 +-
tools/perf/tests/expr.c | 7 +-
tools/perf/tests/fdarray.c | 4 +-
tools/perf/tests/hists_cumulate.c | 2 +-
tools/perf/tests/hists_filter.c | 2 +-
tools/perf/tests/hists_link.c | 2 +-
tools/perf/tests/hists_output.c | 2 +-
tools/perf/tests/is_printable_array.c | 2 +-
tools/perf/tests/keep-tracking.c | 2 +-
tools/perf/tests/kmod-path.c | 2 +-
tools/perf/tests/llvm.c | 2 +-
tools/perf/tests/mem.c | 56 +
tools/perf/tests/mmap-basic.c | 2 +-
tools/perf/tests/mmap-thread-lookup.c | 2 +-
tools/perf/tests/openat-syscall-all-cpus.c | 4 +-
tools/perf/tests/openat-syscall-tp-fields.c | 2 +-
tools/perf/tests/openat-syscall.c | 4 +-
tools/perf/tests/parse-events.c | 2 +-
tools/perf/tests/parse-no-sample-id-all.c | 2 +-
tools/perf/tests/perf-hooks.c | 2 +-
tools/perf/tests/perf-record.c | 2 +-
tools/perf/tests/pmu.c | 2 +-
tools/perf/tests/python-use.c | 2 +-
tools/perf/tests/sample-parsing.c | 2 +-
tools/perf/tests/sdt.c | 12 +-
tools/perf/tests/shell/lib/probe.sh | 6 +
tools/perf/tests/shell/lib/probe_vfs_getname.sh | 23 +
tools/perf/tests/shell/probe_vfs_getname.sh | 14 +
.../tests/shell/record+script_probe_vfs_getname.sh | 41 +
.../perf/tests/shell/trace+probe_libc_inet_pton.sh | 43 +
tools/perf/tests/shell/trace+probe_vfs_getname.sh | 35 +
tools/perf/tests/stat.c | 6 +-
tools/perf/tests/sw-clock.c | 2 +-
tools/perf/tests/switch-tracking.c | 2 +-
tools/perf/tests/task-exit.c | 2 +-
tools/perf/tests/tests.h | 114 +-
tools/perf/tests/thread-map.c | 6 +-
tools/perf/tests/thread-mg-share.c | 2 +-
tools/perf/tests/topology.c | 2 +-
tools/perf/tests/unit_number__scnprintf.c | 2 +-
tools/perf/tests/vmlinux-kallsyms.c | 2 +-
tools/perf/trace/beauty/Build | 6 +
tools/perf/trace/beauty/beauty.h | 74 +
tools/perf/trace/beauty/clone.c | 75 +
tools/perf/trace/beauty/drm_ioctl.sh | 13 +
tools/perf/trace/beauty/fcntl.c | 100 +
tools/perf/trace/beauty/ioctl.c | 162 ++
tools/perf/trace/beauty/kvm_ioctl.sh | 11 +
tools/perf/trace/beauty/mmap.c | 3 +
tools/perf/trace/beauty/open_flags.c | 29 +-
tools/perf/trace/beauty/perf_ioctl.sh | 10 +
tools/perf/trace/beauty/pid.c | 4 +-
tools/perf/trace/beauty/pkey_alloc.c | 50 +
.../perf/trace/beauty/pkey_alloc_access_rights.sh | 10 +
tools/perf/trace/beauty/sndrv_ctl_ioctl.sh | 8 +
tools/perf/trace/beauty/sndrv_pcm_ioctl.sh | 8 +
tools/perf/trace/beauty/vhost_virtio_ioctl.sh | 17 +
tools/perf/ui/browser.c | 32 +-
tools/perf/ui/browser.h | 2 +
tools/perf/ui/browsers/annotate.c | 94 +-
tools/perf/ui/browsers/hists.c | 3 -
tools/perf/ui/gtk/annotate.c | 6 +-
tools/perf/ui/stdio/hist.c | 6 +-
tools/perf/util/Build | 6 +
tools/perf/util/annotate.c | 137 +-
tools/perf/util/annotate.h | 22 +-
tools/perf/util/bpf-loader.c | 2 +-
tools/perf/util/bpf-prologue.c | 49 +-
tools/perf/util/branch.c | 147 ++
tools/perf/util/branch.h | 25 +
tools/perf/util/build-id.c | 129 +-
tools/perf/util/build-id.h | 16 +-
tools/perf/util/callchain.c | 249 +-
tools/perf/util/callchain.h | 5 +-
tools/perf/util/cgroup.c | 8 +-
tools/perf/util/config.c | 13 +-
tools/perf/util/counts.h | 1 +
tools/perf/util/data-convert-bt.c | 127 +-
tools/perf/util/dso.c | 21 +-
tools/perf/util/dso.h | 3 +
tools/perf/util/event.c | 1 +
tools/perf/util/event.h | 11 +-
tools/perf/util/evlist.c | 16 +-
tools/perf/util/evlist.h | 14 +-
tools/perf/util/evsel.c | 213 +-
tools/perf/util/evsel.h | 12 +-
tools/perf/util/expr.h | 2 +-
tools/perf/util/expr.y | 76 +-
tools/perf/util/header.c | 1018 ++++----
tools/perf/util/header.h | 16 +-
tools/perf/util/hist.c | 7 +-
tools/perf/util/intel-pt-decoder/Build | 2 +-
tools/perf/util/llvm-utils.c | 2 +-
tools/perf/util/machine.c | 50 +-
tools/perf/util/map.c | 23 +-
tools/perf/util/map.h | 2 +-
tools/perf/util/mem-events.c | 54 +-
tools/perf/util/namespaces.c | 211 ++
tools/perf/util/namespaces.h | 38 +
tools/perf/util/parse-branch-options.c | 1 +
tools/perf/util/parse-events.c | 98 +-
tools/perf/util/parse-events.h | 19 +-
tools/perf/util/parse-events.l | 23 +-
tools/perf/util/parse-events.y | 94 +-
tools/perf/util/probe-event.c | 88 +-
tools/perf/util/probe-event.h | 10 +-
tools/perf/util/probe-file.c | 19 +-
tools/perf/util/probe-file.h | 4 +-
tools/perf/util/python-ext-sources | 1 +
.../util/scripting-engines/trace-event-python.c | 246 +-
tools/perf/util/session.c | 29 +
tools/perf/util/setns.c | 8 +
tools/perf/util/smt.c | 44 +
tools/perf/util/smt.h | 6 +
tools/perf/util/sort.c | 2 +-
tools/perf/util/srcline.c | 6 +
tools/perf/util/stat-shadow.c | 6 +-
tools/perf/util/stat.c | 4 +
tools/perf/util/stat.h | 5 +-
tools/perf/util/symbol-elf.c | 39 +-
tools/perf/util/symbol-minimal.c | 2 +-
tools/perf/util/symbol.c | 113 +-
tools/perf/util/symbol.h | 7 +-
tools/perf/util/thread.c | 3 +
tools/perf/util/thread.h | 1 +
tools/perf/util/tool.h | 10 +-
tools/perf/util/util.c | 40 +-
tools/perf/util/util.h | 8 +-
tools/perf/util/values.c | 17 +-
tools/perf/util/xyarray.c | 2 +
tools/perf/util/xyarray.h | 12 +
tools/scripts/Makefile.include | 4 +-
311 files changed, 22585 insertions(+), 1963 deletions(-)
create mode 100644 tools/arch/x86/include/uapi/asm/unistd.h
create mode 100644 tools/build/feature/test-setns.c
create mode 100644 tools/include/uapi/asm-generic/fcntl.h
create mode 100644 tools/include/uapi/asm-generic/ioctls.h
create mode 100644 tools/include/uapi/drm/drm.h
create mode 100644 tools/include/uapi/drm/i915_drm.h
create mode 100644 tools/include/uapi/linux/kvm.h
create mode 100644 tools/include/uapi/linux/sched.h
create mode 100644 tools/include/uapi/linux/vhost.h
create mode 100644 tools/include/uapi/sound/asound.h
create mode 100644 tools/perf/arch/s390/util/sym-handling.c
create mode 100644 tools/perf/pmu-events/arch/powerpc/power9/cache.json
create mode 100644 tools/perf/pmu-events/arch/powerpc/power9/floating-point.json
create mode 100644 tools/perf/pmu-events/arch/powerpc/power9/frontend.json
create mode 100644 tools/perf/pmu-events/arch/powerpc/power9/marked.json
create mode 100644 tools/perf/pmu-events/arch/powerpc/power9/memory.json
create mode 100644 tools/perf/pmu-events/arch/powerpc/power9/other.json
create mode 100644 tools/perf/pmu-events/arch/powerpc/power9/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/powerpc/power9/pmc.json
create mode 100644 tools/perf/pmu-events/arch/powerpc/power9/translation.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/floating-point.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/frontend.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/other.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/uncore-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/virtual-memory.json
create mode 100644 tools/perf/scripts/python/bin/export-to-sqlite-record
create mode 100644 tools/perf/scripts/python/bin/export-to-sqlite-report
rename tools/perf/scripts/python/{call-graph-from-postgresql.py => call-graph-from-sql.py} (87%)
create mode 100644 tools/perf/scripts/python/export-to-sqlite.py
rename tools/perf/tests/attr/{test-record-no-delay => test-record-no-buffering} (61%)
create mode 100644 tools/perf/tests/mem.c
create mode 100644 tools/perf/tests/shell/lib/probe.sh
create mode 100644 tools/perf/tests/shell/lib/probe_vfs_getname.sh
create mode 100755 tools/perf/tests/shell/probe_vfs_getname.sh
create mode 100755 tools/perf/tests/shell/record+script_probe_vfs_getname.sh
create mode 100755 tools/perf/tests/shell/trace+probe_libc_inet_pton.sh
create mode 100755 tools/perf/tests/shell/trace+probe_vfs_getname.sh
create mode 100644 tools/perf/trace/beauty/clone.c
create mode 100755 tools/perf/trace/beauty/drm_ioctl.sh
create mode 100644 tools/perf/trace/beauty/fcntl.c
create mode 100644 tools/perf/trace/beauty/ioctl.c
create mode 100755 tools/perf/trace/beauty/kvm_ioctl.sh
create mode 100755 tools/perf/trace/beauty/perf_ioctl.sh
create mode 100644 tools/perf/trace/beauty/pkey_alloc.c
create mode 100755 tools/perf/trace/beauty/pkey_alloc_access_rights.sh
create mode 100755 tools/perf/trace/beauty/sndrv_ctl_ioctl.sh
create mode 100755 tools/perf/trace/beauty/sndrv_pcm_ioctl.sh
create mode 100755 tools/perf/trace/beauty/vhost_virtio_ioctl.sh
create mode 100644 tools/perf/util/branch.c
create mode 100644 tools/perf/util/branch.h
create mode 100644 tools/perf/util/setns.c
create mode 100644 tools/perf/util/smt.c
create mode 100644 tools/perf/util/smt.h
[ ... interdiff skipped due to size ... ]