From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnaldo Carvalho de Melo Subject: [GIT PULL 00/44] perf/core improvements and fixes for 5.2 Date: Tue, 2 Apr 2019 13:05:05 -0300 Message-ID: <20190402160549.13544-1-acme@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return-path: Sender: linux-kernel-owner@vger.kernel.org To: Ingo Molnar , Thomas Gleixner Cc: Jiri Olsa , Namhyung Kim , Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo , Alexey Budankov , Andi Kleen , Steven Rostedt , Thomas Richter , Tzvetomir Stoyanov , Arnaldo Carvalho de Melo List-Id: linux-perf-users.vger.kernel.org Hi Ingo, Thomas, Please consider pulling into tip/perf/core, for 5.2, this is on top of tip/perf/urgent. Thanks, - Arnaldo The following changes since commit 22261fdf68f23df3ddf359642696d6ce98e584fa: Merge tag 'perf-urgent-for-mingo-5.1-20190329' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2019-03-29 21:28:58 +0100) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-5.2-20190402 for you to fetch changes up to 1c3a2c864d2da0454bca1e41d3e0090c18678909: perf vendor events intel: Update Silvermont to v14 (2019-04-01 15:23:48 -0300) ---------------------------------------------------------------- perf/core improvements and fixes: perf record: Alexey Budankov: - Implement --mmap-flush= option, to control a threshold for draining the mmap ring buffers and consequently the size of the write calls to the output, be it perf.data, pipe mode or soon a compressor that with bigger buffers will do a better job before dumping compressed data into a new perf.data content mode, which is in the final steps of reviewing and testing. perf trace: Arnaldo Carvalho de Melo: - Add 'string' event alias to select syscalls with string args, i.e. for testing the BPF program used to copy those strings, allow for: # perf trace -e string To select all the syscalls that have things like pathnames. - Use a PERCPU_ARRAY BPF map to copy more string bytes than what is possible using the BPF stack, just like pioneered by the sysdig tool. Feature detection: Alexey Budankov: - Implement libzstd feature check, which is a library that provides a uniform API to various compression formats, will be used in 'perf record', see note about --mmap-flush feature. perf stat: Andi Kleen: - Implement a tool specific 'duration_time' event to allow showing the "time elapsed" line in the default 'perf stat' output as one of the events that can be asked for when using --field-separator and other script consumable outputs. Intel vendor events (JSON files): Andi Kleen: - Update metrics from TMAM 3.5. - Update events: Bonnell to V4 Broadwell-DE to v7 Broadwell to v23 BroadwellX to v14 GoldmontPlus to v1.01 Goldmont to v13 Haswell to v28 HaswellX to v20 IvyBridge to v21 IvyTown to v20 JakeTown to v20 KnightsLanding to v9 SandyBridge to v16 Silvermont to v14 Skylake to v42 SkylakeX to v1.12 IBM S/390 vendor events (JSON): Thomas Richter: - Fix s390 counter long description for L1D_RO_EXCL_WRITES. tools lib traceevent: Steven Rostedt (Red Hat): - Add more debugging to see various internal ring buffer entries. Steven Rostedt (VMWare): - Handle trace_printk() "%px". - Add mono clocks to be parsed in seconds. - Removed unneeded !! and return parenthesis. Tzvetomir Stoyanov : - Implement a new API, tep_list_events_copy(). - Implement new traceevent APIs for accessing struct tep_handler fields. - Remove tep filter trivial APIs, not used anymore. - Remove call to exit() from tep_filter_add_filter_str(), library routines shouldn't kill tools using it. - Make traceevent APIs more consistent. Signed-off-by: Arnaldo Carvalho de Melo ---------------------------------------------------------------- Alexey Budankov (2): tools build: Implement libzstd feature check, LIBZSTD_DIR and NO_LIBZSTD defines perf record: Implement --mmap-flush= option Andi Kleen (21): 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 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 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 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 +- 120 files changed, 12238 insertions(+), 7941 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