Re: [GIT PULL 00/63] perf/core improvements and fixes

From: Ingo Molnar
Date: Thu Dec 20 2018 - 12:53:24 EST



* Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote:

> Hi Ingo,
>
> Please consider pulling,
>
> Best regards,
>
> - Arnaldo
>
> Test results at the end of this message, as usual.
>
> The following changes since commit ca46afdb2754dbb4a5d5772332fa16957d9bc618:
>
> Merge tag 'perf-core-for-mingo-4.21-20181217' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2018-12-18 14:39:00 +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-4.21-20181218
>
> for you to fetch changes up to 89a0948984896352cac1ebe079cb3d64d6c3adc6:
>
> tools uapi asm: Update asm-generic/unistd.h copy (2018-12-18 16:17:41 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> - Implement BPF based syscall filtering in 'perf trace', using BPF maps and
> the augmented_raw_syscalls.c BPF proggie (Arnaldo Carvalho de Melo)
>
> - Allow specifying in .perfconfig a set of events use in 'perf trace' in
> addition to any other specified from the command line. This initially
> will be used to always use the augmented_raw_syscalls.o precompiled
> BPF program for getting pointer contents. (Arnaldo Carvalho de Melo)
>
> - Allow fine grained control about how the syscall output should be
> formatted. This will be used to allow producing the same output produced
> by the 'strace' tool, to then use in regression tests comparing the
> output of 'perf trace' with the one produced from 'strace' (Arnaldo Carvalho de Melo)
>
> - Beautify the renameat2 olddirfd, newdirfd and flags arguments (Arnaldo Carvalho de Melo)
>
> - Beautify arch_prctl 'code' syscall arg (Arnaldo Carvalho de Melo)
>
> - Beautify fadvise64 'advice' syscall arg (Arnaldo Carvalho de Melo)
>
> - Relax checks on perf-PID.map ownership, resulting in symbols in
> executable anonymous maps setup by JITs in things like node.js to
> be resolved in a 'perf top' session run by root without the need
> for --force to be used (Arnaldo Carvalho de Melo)
>
> - Update asm-generic/unistd.h copy (Arnaldo Carvalho de Melo)
>
> - Do not use the first and last symbols when setting up address filters in
> auxtrace, this fails when we don't have a symbol table, filter the entire
> area based on the dso size. (Adrian Hunter)
>
> - Do not use kernel headers to build libsubcmd, we shouldn't use
> anything from outside tools/, fixes the build with the Android NDK (Arnaldo Carvalho de Melo)
>
> - Add several prototypes for systems lacking those, such as open_memstream(),
> sigqueue(), fixing warnings building with Android's bionic libc that were
> preventing the use of -Werror there (Arnaldo Carvalho de Melo)
>
> - Use LDFLAGS in the libtraceevent build commands, allowing developers
> to override its values (Jiri Olsa)
>
> - Link libperf-jvmti.so with LDFLAGS variable, allowing distro
> packages to propagate its settings when building this library (Jiri Olsa)
>
> - cs-etm (ARM CoreSight) fixes: (Leo Yan)
>
> - Correct packets swapping in cs_etm__flush()
> - Avoid stale branch samples when flush packet
> - Remove unused 'trace_on' in cs_etm_decoder
> - Refactor enumeration cs_etm_sample_type
> - Rename CS_ETM_TRACE_ON to CS_ETM_DISCONTINUITY
> - Treat NO_SYNC element as trace discontinuity
> - Treat EO_TRACE element as trace discontinuity
> - Generate branch sample for exception packet
>
> - Use shebangs in the 'perf test' shell scripts, making them identifiable as
> shell scripts (Michael Petlan)
>
> - Avoid segfaults caused by negated options in 'perf stat' (Michael Petlan)
>
> - Fix processing of dereferenced args in bprintk events in libtracevent (Steven Rostedt)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> ----------------------------------------------------------------
> Adrian Hunter (2):
> perf dso: Export data_file_size() method there are no symbols
> perf auxtrace: Alter addr_filter__entire_dso() to work if there are no symbols
>
> Arnaldo Carvalho de Melo (48):
> perf trace: Rename delivery functions to ease making ordered_events selectable
> perf trace: Allow selecting use the use of the ordered_events code
> perf trace beauty: Beautify renameat2's fd arg wrt AT_FDCWD
> perf beauty: Add a string table generator for renameat2's flags constants
> perf beauty: Wire up the renameat flags table generator to the Makefile
> perf trace: Beautify renameat2's flags argument
> perf trace beauty: renameat's newdirfd may also be AT_FDCWD
> tools lib subcmd: Don't add the kernel sources to the include path
> perf tools: Add missing sigqueue() prototype for systems lacking it
> perf header: Fix up argument to ctime()
> perf tools: Add missing open_memstream() prototype for systems lacking it
> perf tools: Cast off_t to s64 to avoid warning on bionic libc
> perf trace: Rename set_ev_qualifier_filter to clarify its a tracepoint filter
> perf trace: Avoid using raw_syscalls in duplicity with eBPF augmentation
> perf trace: Implement syscall filtering in augmented_syscalls
> perf bpf: Move perf_event_output() from stdio.h to bpf.h
> perf augmented_syscalls: Switch to using a struct for the syscalls map values
> perf trace: Switch to using a struct for the aumented_raw_syscalls syscalls map values
> perf augmented_raw_syscalls: Do not include stdio.h
> perf trace: Allow specifying a set of events to add in perfconfig
> perf trace: Allow configuring if zeroed syscall args should be printed
> perf trace: Allow configuring if the syscall duration should be printed
> perf config: Show the configuration when no arguments are provided
> perf trace: Allow configuring default for perf_event_attr.inherit
> perf trace: Allow configuring if the syscall start timestamp should be printed
> perf trace: Allow suppressing the syscall argument names
> perf trace: Make the alignment of the syscall args be configurable
> perf trace: Enclose strings with double quotes
> perf trace: Add a prefix member to the strarray class
> perf trace: Allow asking for not suppressing common string prefixes
> perf trace beauty: Print O_RDONLY when (flags & O_ACCMODE) == 0
> perf trace: Add alignment spaces after the closing parens
> perf augmented_raw_syscalls: Copy 'access' arg as well
> perf trace: Enclose the errno strings with ()
> perf trace: Show NULL when syscall pointer args are 0
> tools include arch: Grab a copy of x86's prctl.h
> perf beauty: Add a string table generator for x86's 'arch_prctl' codes
> perf beauty: Wire up the x86_arch prctl code table generator
> perf trace: Move strarrays to beauty.h for further reuse
> perf trace: When showing string prefixes show prefix + ??? for unknown entries
> perf trace beauty: Beautify arch_prctl()'s arguments
> perf beauty mmap: Print PROT_READ before PROT_EXEC to match strace output
> perf beauty mmap: Print mmap's 'offset' arg in hexadecimal
> tools headers uapi: Grab a copy of fadvise.h
> perf beauty: Add generator for fadvise64's 'advice' arg constants
> perf trace: Wire up the fadvise 'advice' table generator
> perf symbols: Relax checks on perf-PID.map ownership
> tools uapi asm: Update asm-generic/unistd.h copy
>
> Jiri Olsa (2):
> tools lib traceevent: Use LDFLAGS in the build commands
> perf tools: Link libperf-jvmti.so with LDFLAGS variable
>
> Leo Yan (8):
> perf cs-etm: Correct packets swapping in cs_etm__flush()
> perf cs-etm: Avoid stale branch samples when flush packet
> perf cs-etm: Remove unused 'trace_on' in cs_etm_decoder
> perf cs-etm: Refactor enumeration cs_etm_sample_type
> perf cs-etm: Rename CS_ETM_TRACE_ON to CS_ETM_DISCONTINUITY
> perf cs-etm: Treat NO_SYNC element as trace discontinuity
> perf cs-etm: Treat EO_TRACE element as trace discontinuity
> perf cs-etm: Generate branch sample for exception packet
>
> Michael Petlan (2):
> perf tests: Use shebangs in the shell scripts
> perf stat: Avoid segfaults caused by negated options
>
> Steven Rostedt (VMware) (1):
> tools lib traceevent: Fix processing of dereferenced args in bprintk events
>
> tools/arch/x86/include/uapi/asm/prctl.h | 17 +
> tools/include/uapi/asm-generic/unistd.h | 4 +
> tools/include/uapi/linux/fadvise.h | 22 ++
> tools/lib/subcmd/Makefile | 2 -
> tools/lib/traceevent/Makefile | 4 +-
> tools/lib/traceevent/event-parse.c | 1 +
> tools/perf/Documentation/perf-config.txt | 32 ++
> tools/perf/Documentation/perf-trace.txt | 6 +
> tools/perf/Makefile.config | 2 +
> tools/perf/Makefile.perf | 27 +-
> tools/perf/builtin-config.c | 7 +-
> tools/perf/builtin-stat.c | 8 +-
> tools/perf/builtin-timechart.c | 4 +
> tools/perf/builtin-trace.c | 370 ++++++++++++++++-----
> tools/perf/check-headers.sh | 2 +
> tools/perf/examples/bpf/augmented_raw_syscalls.c | 33 +-
> tools/perf/include/bpf/bpf.h | 2 +
> tools/perf/include/bpf/stdio.h | 3 -
> tools/perf/tests/builtin-test.c | 3 +
> tools/perf/tests/shell/probe_vfs_getname.sh | 1 +
> .../tests/shell/record+probe_libc_inet_pton.sh | 1 +
> .../tests/shell/record+script_probe_vfs_getname.sh | 1 +
> tools/perf/tests/shell/trace+probe_vfs_getname.sh | 1 +
> tools/perf/trace/beauty/Build | 2 +
> tools/perf/trace/beauty/arch_prctl.c | 33 ++
> tools/perf/trace/beauty/beauty.h | 36 +-
> tools/perf/trace/beauty/clone.c | 7 +-
> tools/perf/trace/beauty/eventfd.c | 4 +-
> tools/perf/trace/beauty/fadvise.sh | 22 ++
> tools/perf/trace/beauty/fcntl.c | 22 +-
> tools/perf/trace/beauty/flock.c | 4 +-
> tools/perf/trace/beauty/futex_op.c | 8 +-
> tools/perf/trace/beauty/futex_val3.c | 3 +-
> tools/perf/trace/beauty/ioctl.c | 31 +-
> tools/perf/trace/beauty/kcmp.c | 8 +-
> tools/perf/trace/beauty/mmap.c | 22 +-
> tools/perf/trace/beauty/mode_t.c | 4 +-
> tools/perf/trace/beauty/mount_flags.c | 8 +-
> tools/perf/trace/beauty/msg_flags.c | 4 +-
> tools/perf/trace/beauty/open_flags.c | 13 +-
> tools/perf/trace/beauty/perf_event_open.c | 4 +-
> tools/perf/trace/beauty/pkey_alloc.c | 14 +-
> tools/perf/trace/beauty/prctl.c | 16 +-
> tools/perf/trace/beauty/rename_flags.sh | 15 +
> tools/perf/trace/beauty/renameat.c | 19 ++
> tools/perf/trace/beauty/sched_policy.c | 6 +-
> tools/perf/trace/beauty/seccomp.c | 8 +-
> tools/perf/trace/beauty/signum.c | 4 +-
> tools/perf/trace/beauty/sockaddr.c | 4 +-
> tools/perf/trace/beauty/socket.c | 8 +-
> tools/perf/trace/beauty/socket_type.c | 4 +-
> tools/perf/trace/beauty/statx.c | 10 +-
> tools/perf/trace/beauty/waitid_options.c | 4 +-
> tools/perf/trace/beauty/x86_arch_prctl.sh | 26 ++
> tools/perf/util/auxtrace.c | 11 +-
> tools/perf/util/cs-etm-decoder/cs-etm-decoder.c | 42 ++-
> tools/perf/util/cs-etm-decoder/cs-etm-decoder.h | 10 +-
> tools/perf/util/cs-etm.c | 77 ++++-
> tools/perf/util/dso.c | 6 +-
> tools/perf/util/dso.h | 1 +
> tools/perf/util/evlist.c | 4 +
> tools/perf/util/header.c | 4 +-
> tools/perf/util/s390-cpumsf.c | 2 +-
> tools/perf/util/symbol.c | 11 -
> 64 files changed, 842 insertions(+), 252 deletions(-)
> create mode 100644 tools/arch/x86/include/uapi/asm/prctl.h
> create mode 100644 tools/include/uapi/linux/fadvise.h
> create mode 100644 tools/perf/trace/beauty/arch_prctl.c
> create mode 100755 tools/perf/trace/beauty/fadvise.sh
> create mode 100755 tools/perf/trace/beauty/rename_flags.sh
> create mode 100644 tools/perf/trace/beauty/renameat.c
> create mode 100755 tools/perf/trace/beauty/x86_arch_prctl.sh

Pulled, thanks a lot Arnaldo!

Ingo