Messages in this thread | | | Date | Mon, 4 Sep 2017 09:15:53 +0200 | From | Ingo Molnar <> | Subject | [GIT PULL] perf changes for v4.14 |
| |
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 ... ]
| |