Messages in this thread | | | Date | Mon, 6 May 2019 11:03:11 +0200 | From | Ingo Molnar <> | Subject | [GIT PULL] perf updates for v5.2 |
| |
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: d15d356887e770c5f2dcf963b52c7cb510c9e42d perf/x86: Make perf callchains work without CONFIG_FRAME_POINTER
The main kernel changes were:
- Add support for Intel's "adaptive PEBS v4" - which embedds LBS data in PEBS records and can thus batch up and reduce the IRQ (NMI) rate significantly - reducing overhead and making call-graph profiling less intrusive.
- Add Intel CPU core and uncore support updates for Tremont, Icelake,
- Extend the x86 PMU constraints scheduler with 'constraint ranges' to better support Icelake hw constraints,
- Make x86 call-chain support work better with CONFIG_FRAME_POINTER=y
- misc other changes.
Tooling changes:
- Updates to the main tools: 'perf record', 'perf trace', 'perf stat',
- Updated Intel and S/390 vendor events,
- libtraceevent updates,
- misc other updates and fixes.
Thanks,
Ingo
------------------> Alexey Budankov (2): tools build: Implement libzstd feature check, LIBZSTD_DIR and NO_LIBZSTD defines perf record: Implement --mmap-flush=<number> option
Andi Kleen (23): perf stat: Revert checks for duration_time perf stat: Implement duration_time as a proper event perf evsel: Support printing evsel name for 'duration_time' perf list: Output tool events perf vendor events intel: Update metrics from TMAM 3.5 perf vendor events intel: Update Broadwell events to v23 perf vendor events intel: Update Broadwell-DE events to v7 perf vendor events intel: Update Skylake events to v42 perf vendor events intel: Update SkylakeX events to v1.12 perf vendor events intel: Update BroadwellX events to v14 perf vendor events intel: Update HaswellX events to v20 perf vendor events intel: Update IvyTown events to v20 perf vendor events intel: Update JakeTown events to v20 perf vendor events intel: Update SandyBridge events to v16 perf vendor events intel: Update IvyBridge events to v21 perf vendor events intel: Update Haswell events to v28 perf vendor events intel: Update KnightsLanding events to v9 perf vendor events intel: Update Bonnell to V4 perf vendor events intel: Update Goldmont to v13 perf vendor events intel: Update GoldmontPlus to v1.01 perf vendor events intel: Update Silvermont to v14 perf/x86/intel: Extract memory code PEBS parser for reuse perf/x86/lbr: Avoid reading the LBRs when adaptive PEBS handles them
Arash Fotouhi (1): watchdog: Fix typo in comment
Arnaldo Carvalho de Melo (5): perf trace: Add 'string' event alias to select syscalls with string args perf augmented_raw_syscalls: Copy strings from all syscalls with 1st or 2nd string arg perf augmented_raw_syscalls: Use a PERCPU_ARRAY map to copy more string bytes perf trace beauty renameat: No need to include linux/fs.h perf tools: Add header defining used namespace struct to event.h
Kairui Song (1): perf/x86: Make perf callchains work without CONFIG_FRAME_POINTER
Kan Liang (9): perf/x86: Support outputting XMM registers perf/x86/intel/ds: Extract code of event update in short period perf/x86/intel: Support adaptive PEBS v4 perf/x86/intel: Add Icelake support perf/x86/intel/cstate: Add Icelake support perf/x86/intel/rapl: Add Icelake support perf/x86/msr: Add Icelake support perf/x86/intel/uncore: Add Intel Icelake uncore support perf/x86/intel: Add Tremont core PMU support
Peter Zijlstra (8): perf/x86/intel: Simplify intel_tfa_commit_scheduling() perf/x86: Simplify x86_pmu.get_constraints() interface perf/x86: Remove PERF_X86_EVENT_COMMITTED perf/x86/intel: Optimize intel_get_excl_constraints() perf/x86: Clear ->event_constraint[] on put perf/x86: Optimize x86_schedule_events() perf/x86: Add sanity checks to x86_schedule_events() perf/x86: Support constraint ranges
Shaokun Zhang (1): perf/headers: Fix stale comment for struct perf_addr_filter
Stephane Eranian (2): perf/core: Add perf_pmu_resched() as global function perf/x86/intel: Force resched when TFA sysctl is modified
Steven Rostedt (Red Hat) (1): tools lib traceevent: Add more debugging to see various internal ring buffer entries
Steven Rostedt (VMware) (3): tools lib traceevent: Handle trace_printk() "%px" tools lib traceevent: Add mono clocks to be parsed in seconds tools lib traceevent: Removed unneeded !! and return parenthesis
Thomas Richter (1): perf list: Fix s390 counter long description for L1D_RO_EXCL_WRITES
Tzvetomir Stoyanov (11): tools lib traceevent: Implement a new API, tep_list_events_copy() tools lib traceevent: Change description of few APIs tools lib traceevent: Coding style fixes tools lib traceevent: Implement new traceevent APIs for accessing struct tep_handler fields tools lib traceevent: Remove tep filter trivial APIs tools lib traceevent: Remove call to exit() from tep_filter_add_filter_str() tools tools, tools lib traceevent: Make traceevent APIs more consistent tools lib traceevent: Rename input arguments of libtraceevent APIs from pevent to tep perf tools, tools lib traceevent: Rename "pevent" member of struct tep_event to "tep" perf tools, tools lib traceevent: Rename "pevent" member of struct tep_event_filter to "tep" tools lib traceevent: Rename input arguments and local variables of libtraceevent from pevent to tep
Valdis Kletnieks (1): perf/core: Make perf_swevent_init_cpu() static
arch/x86/events/core.c | 95 +- arch/x86/events/intel/core.c | 296 ++- arch/x86/events/intel/cstate.c | 2 + arch/x86/events/intel/ds.c | 505 ++++- arch/x86/events/intel/lbr.c | 35 +- arch/x86/events/intel/rapl.c | 2 + arch/x86/events/intel/uncore.c | 6 + arch/x86/events/intel/uncore.h | 1 + arch/x86/events/intel/uncore_snb.c | 91 + arch/x86/events/msr.c | 1 + arch/x86/events/perf_event.h | 98 +- arch/x86/include/asm/intel_ds.h | 2 +- arch/x86/include/asm/msr-index.h | 1 + arch/x86/include/asm/perf_event.h | 57 +- arch/x86/include/asm/stacktrace.h | 13 - arch/x86/include/uapi/asm/perf_regs.h | 23 +- arch/x86/kernel/perf_regs.c | 27 +- include/linux/perf_event.h | 19 +- kernel/events/core.c | 12 +- kernel/watchdog.c | 2 +- tools/build/Makefile.feature | 2 + tools/build/feature/Makefile | 6 +- tools/build/feature/test-all.c | 5 + tools/build/feature/test-libzstd.c | 12 + tools/lib/traceevent/event-parse-api.c | 278 ++- tools/lib/traceevent/event-parse-local.h | 6 +- tools/lib/traceevent/event-parse.c | 909 ++++---- tools/lib/traceevent/event-parse.h | 154 +- tools/lib/traceevent/event-plugin.c | 32 +- tools/lib/traceevent/kbuffer-parse.c | 49 + tools/lib/traceevent/kbuffer.h | 13 + tools/lib/traceevent/parse-filter.c | 216 +- tools/lib/traceevent/plugin_cfg80211.c | 8 +- tools/lib/traceevent/plugin_function.c | 14 +- tools/lib/traceevent/plugin_hrtimer.c | 12 +- tools/lib/traceevent/plugin_jbd2.c | 12 +- tools/lib/traceevent/plugin_kmem.c | 32 +- tools/lib/traceevent/plugin_kvm.c | 48 +- tools/lib/traceevent/plugin_mac80211.c | 8 +- tools/lib/traceevent/plugin_sched_switch.c | 18 +- tools/lib/traceevent/plugin_scsi.c | 8 +- tools/lib/traceevent/plugin_xen.c | 8 +- tools/perf/Documentation/perf-record.txt | 19 + tools/perf/Makefile.config | 20 + tools/perf/Makefile.perf | 3 + tools/perf/builtin-kmem.c | 2 +- tools/perf/builtin-list.c | 6 +- tools/perf/builtin-record.c | 65 +- tools/perf/builtin-stat.c | 28 +- tools/perf/builtin-version.c | 2 + tools/perf/examples/bpf/augmented_raw_syscalls.c | 196 +- tools/perf/perf.h | 1 + .../perf/pmu-events/arch/s390/cf_z14/extended.json | 2 +- .../perf/pmu-events/arch/x86/bonnell/frontend.json | 2 +- .../perf/pmu-events/arch/x86/bonnell/pipeline.json | 2 +- .../pmu-events/arch/x86/broadwell/bdw-metrics.json | 260 ++- .../perf/pmu-events/arch/x86/broadwell/cache.json | 1630 +++++++-------- .../arch/x86/broadwell/floating-point.json | 51 +- .../pmu-events/arch/x86/broadwell/frontend.json | 4 +- .../perf/pmu-events/arch/x86/broadwell/memory.json | 1640 +++++++-------- .../pmu-events/arch/x86/broadwell/pipeline.json | 36 +- .../pmu-events/arch/x86/broadwellde/cache.json | 4 +- .../pmu-events/arch/x86/broadwellde/pipeline.json | 6 +- .../arch/x86/broadwellx/bdx-metrics.json | 278 ++- .../perf/pmu-events/arch/x86/broadwellx/cache.json | 161 +- .../arch/x86/broadwellx/floating-point.json | 16 +- .../pmu-events/arch/x86/broadwellx/memory.json | 148 +- .../pmu-events/arch/x86/broadwellx/pipeline.json | 50 +- .../arch/x86/cascadelakex/clx-metrics.json | 304 ++- tools/perf/pmu-events/arch/x86/goldmont/cache.json | 1244 +++-------- .../perf/pmu-events/arch/x86/goldmont/memory.json | 260 --- .../pmu-events/arch/x86/goldmont/pipeline.json | 5 +- .../arch/x86/goldmont/virtual-memory.json | 9 +- .../pmu-events/arch/x86/goldmontplus/cache.json | 74 +- .../pmu-events/arch/x86/goldmontplus/pipeline.json | 5 +- .../arch/x86/goldmontplus/virtual-memory.json | 9 +- tools/perf/pmu-events/arch/x86/haswell/cache.json | 175 +- .../arch/x86/haswell/floating-point.json | 33 +- .../pmu-events/arch/x86/haswell/hsw-metrics.json | 234 ++- tools/perf/pmu-events/arch/x86/haswell/memory.json | 172 +- .../perf/pmu-events/arch/x86/haswell/pipeline.json | 33 +- tools/perf/pmu-events/arch/x86/haswellx/cache.json | 173 +- .../pmu-events/arch/x86/haswellx/hsx-metrics.json | 252 ++- .../perf/pmu-events/arch/x86/haswellx/memory.json | 172 +- .../pmu-events/arch/x86/haswellx/pipeline.json | 10 +- .../perf/pmu-events/arch/x86/ivybridge/cache.json | 10 +- .../pmu-events/arch/x86/ivybridge/ivb-metrics.json | 250 ++- .../pmu-events/arch/x86/ivybridge/pipeline.json | 4 - .../pmu-events/arch/x86/ivytown/ivt-metrics.json | 256 ++- .../perf/pmu-events/arch/x86/ivytown/pipeline.json | 4 - tools/perf/pmu-events/arch/x86/jaketown/cache.json | 6 +- .../pmu-events/arch/x86/jaketown/jkt-metrics.json | 150 +- .../pmu-events/arch/x86/jaketown/pipeline.json | 12 +- .../pmu-events/arch/x86/knightslanding/cache.json | 666 +++--- .../pmu-events/arch/x86/knightslanding/memory.json | 268 +-- .../arch/x86/knightslanding/pipeline.json | 15 +- .../arch/x86/knightslanding/virtual-memory.json | 2 +- .../pmu-events/arch/x86/sandybridge/cache.json | 680 +++--- .../arch/x86/sandybridge/floating-point.json | 126 +- .../pmu-events/arch/x86/sandybridge/frontend.json | 268 +-- .../pmu-events/arch/x86/sandybridge/memory.json | 68 +- .../pmu-events/arch/x86/sandybridge/other.json | 18 +- .../pmu-events/arch/x86/sandybridge/pipeline.json | 1338 ++++++------ .../arch/x86/sandybridge/snb-metrics.json | 144 +- .../arch/x86/sandybridge/virtual-memory.json | 108 +- .../perf/pmu-events/arch/x86/silvermont/cache.json | 2 +- .../perf/pmu-events/arch/x86/silvermont/other.json | 20 + .../pmu-events/arch/x86/silvermont/pipeline.json | 5 +- tools/perf/pmu-events/arch/x86/skylake/cache.json | 2193 +++++++++++++++++++- .../perf/pmu-events/arch/x86/skylake/frontend.json | 14 +- tools/perf/pmu-events/arch/x86/skylake/memory.json | 1121 +++++++++- .../perf/pmu-events/arch/x86/skylake/pipeline.json | 39 +- .../pmu-events/arch/x86/skylake/skl-metrics.json | 274 ++- tools/perf/pmu-events/arch/x86/skylakex/cache.json | 786 ++++--- .../arch/x86/skylakex/floating-point.json | 2 - .../pmu-events/arch/x86/skylakex/frontend.json | 234 +-- .../perf/pmu-events/arch/x86/skylakex/memory.json | 751 +++---- .../pmu-events/arch/x86/skylakex/pipeline.json | 173 +- .../pmu-events/arch/x86/skylakex/skx-metrics.json | 304 ++- tools/perf/trace/beauty/renameat.c | 1 - tools/perf/trace/strace/groups/string | 65 + tools/perf/util/data-convert-bt.c | 4 +- tools/perf/util/event.h | 1 + tools/perf/util/evlist.c | 6 +- tools/perf/util/evlist.h | 3 +- tools/perf/util/evsel.c | 11 +- tools/perf/util/evsel.h | 6 + tools/perf/util/mmap.c | 4 +- tools/perf/util/mmap.h | 3 +- tools/perf/util/parse-events.c | 58 +- tools/perf/util/parse-events.h | 5 + tools/perf/util/parse-events.l | 11 +- tools/perf/util/parse-events.y | 12 + tools/perf/util/python.c | 2 +- .../perf/util/scripting-engines/trace-event-perl.c | 2 +- .../util/scripting-engines/trace-event-python.c | 2 +- tools/perf/util/stat-display.c | 18 - tools/perf/util/trace-event-parse.c | 2 +- tools/perf/util/trace-event-read.c | 2 +- tools/perf/util/trace-event.c | 4 +- 140 files changed, 13358 insertions(+), 8109 deletions(-) create mode 100644 tools/build/feature/test-libzstd.c create mode 100644 tools/perf/pmu-events/arch/x86/silvermont/other.json create mode 100644 tools/perf/trace/strace/groups/string
| |