linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL 0/8] perf/urgent fixes
@ 2019-02-05 15:07 Arnaldo Carvalho de Melo
  2019-02-05 15:07 ` [PATCH 1/8] perf tests evsel-tp-sched: Fix bitwise operator Arnaldo Carvalho de Melo
                   ` (8 more replies)
  0 siblings, 9 replies; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-02-05 15:07 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Clark Williams, linux-kernel, linux-perf-users,
	Arnaldo Carvalho de Melo, Gustavo A . R . Silva, Michael Petlan,
	Ravi Bangoria, Tony Jones, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo
Test results at the end of this message, as usual.

The following changes since commit 9dff0aa95a324e262ffb03f425d00e4751f3294e:

  perf/core: Don't WARN() for impossible ring-buffer sizes (2019-02-04 08:45:25 +0100)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-5.0-20190205

for you to fetch changes up to 8f2f350cbdb2c2fbff654cb778139144b48a59ba:

  perf script python: Add Python3 support to tests/attr.py (2019-02-05 10:31:08 -0300)

----------------------------------------------------------------
perf/urgent fixes:

perf trace:

  Arnaldo Carvalho de Melo:

    Fix handling of probe:vfs_getname when the probed routine is
    inlined in multiple places, fixing the collection of the 'filename'
    parameter in open syscalls.

perf test:

  Gustavo A. R. Silva:

    Fix bitwise operator usage in evsel-tp-sched test, which made tat
    test always detect fields as signed.

  Jiri Olsa:

    Filter out hidden symbols from labels, added in systems where the
    annobin plugin is used, such as RHEL8, which, if left in place make
    the DWARF unwind 'perf test' to fail on PPC.

  Tony Jones:

    Fix 'perf_event_attr' tests when building with python3.

perf mem/c2c:

  Ravi Bangoria:

    Fix perf_mem_events on PowerPC.

tools headers UAPI:

  Arnaldo Carvalho de Melo:

    Sync linux/in.h copy from the kernel sources, silencing a perf build warning.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Arnaldo Carvalho de Melo (4):
      perf clang: Do not use 'return std::move(something)'
      tools headers uapi: Sync linux/in.h copy from the kernel sources
      perf symbols: Add fallback definitions for GELF_ST_VISIBILITY()
      perf trace: Support multiple "vfs_getname" probes

Gustavo A. R. Silva (1):
      perf tests evsel-tp-sched: Fix bitwise operator

Jiri Olsa (1):
      perf symbols: Filter out hidden symbols from labels

Ravi Bangoria (1):
      perf mem/c2c: Fix perf_mem_events to support powerpc

Tony Jones (1):
      perf script python: Add Python3 support to tests/attr.py

 tools/include/uapi/linux/in.h             |  2 +-
 tools/perf/Documentation/perf-c2c.txt     | 16 ++++++++++++----
 tools/perf/Documentation/perf-mem.txt     |  2 +-
 tools/perf/arch/powerpc/util/Build        |  1 +
 tools/perf/arch/powerpc/util/mem-events.c | 11 +++++++++++
 tools/perf/builtin-trace.c                | 25 +++++++++++++++++-------
 tools/perf/tests/attr.py                  | 32 ++++++++++++++++++-------------
 tools/perf/tests/evsel-tp-sched.c         |  2 +-
 tools/perf/util/c++/clang.cpp             |  2 +-
 tools/perf/util/mem-events.c              |  2 +-
 tools/perf/util/symbol-elf.c              | 23 +++++++++++++++++++++-
 11 files changed, 88 insertions(+), 30 deletions(-)
 create mode 100644 tools/perf/arch/powerpc/util/mem-events.c

Test results:

The first ones are container based builds of tools/perf with and without libelf
support.  Where clang is available, it is also used to build perf with/without
libelf, and building with LIBCLANGLLVM=1 (built-in clang) with gcc and clang
when clang and its devel libraries are installed.

The objtool and samples/bpf/ builds are disabled now that I'm switching from
using the sources in a local volume to fetching them from a http server to
build it inside the container, to make it easier to build in a container cluster.
Those will come back later.

Several are cross builds, the ones with -x-ARCH and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.

The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
with a variety of command line event specifications to then intercept the
sys_perf_event syscall to check that the perf_event_attr fields are set up as
expected, among a variety of other unit tests.

Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.

  # export PERF_TARBALL=http://192.168.124.1/perf/perf-5.0.0-rc5.tar.xz
  # dm 
   1 alpine:3.4                    : Ok   gcc (Alpine 5.3.0) 5.3.0
   2 alpine:3.5                    : Ok   gcc (Alpine 6.2.1) 6.2.1 20160822
   3 alpine:3.6                    : Ok   gcc (Alpine 6.3.0) 6.3.0
   4 alpine:3.7                    : Ok   gcc (Alpine 6.4.0) 6.4.0
   5 alpine:3.8                    : Ok   gcc (Alpine 6.4.0) 6.4.0
   6 alpine:3.9                    : Ok   gcc (Alpine 8.2.0) 8.2.0
   7 alpine:edge                   : Ok   gcc (Alpine 8.2.0) 8.2.0
   8 amazonlinux:1                 : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
   9 amazonlinux:2                 : Ok   gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
  10 android-ndk:r12b-arm          : Ok   gcc (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6)
  11 android-ndk:r15c-arm          : Ok   gcc (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6)
  12 centos:5                      : Ok   gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
  13 centos:6                      : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
  14 centos:7                      : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)
  15 clearlinux:latest             : Ok   gcc (Clear Linux OS for Intel Architecture) 8.2.1 20180502
  16 debian:7                      : Ok   gcc (Debian 4.7.2-5) 4.7.2
  17 debian:8                      : Ok   gcc (Debian 4.9.2-10+deb8u2) 4.9.2
  18 debian:9                      : Ok   gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
  19 debian:experimental           : Ok   gcc (Debian 8.2.0-16) 8.2.0
  20 debian:experimental-x-arm64   : Ok   gcc (Debian 8.2.0-16) 8.2.0
  21 debian:experimental-x-mips    : Ok   gcc (Debian 8.2.0-16) 8.2.0
  22 debian:experimental-x-mips64  : Ok   gcc (Debian 8.2.0-16) 8.2.0
  23 fedora:20                     : Ok   gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7)
  24 fedora:21                     : Ok   gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
  25 fedora:25                     : Ok   gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1)
  26 fedora:26                     : Ok   gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2)
  27 fedora:27                     : Ok   gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6)
  28 fedora:28                     : Ok   gcc (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6)
  29 fedora:29                     : Ok   gcc (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6)
  30 fedora:rawhide                : Ok   gcc (GCC) 9.0.0 20190119 (Red Hat 9.0.0-0.3)
  31 gentoo-stage3-amd64:latest    : Ok   gcc (Gentoo 7.3.0-r3 p1.4) 7.3.0
  32 mageia:5                      : Ok   gcc (GCC) 4.9.2
  33 mageia:6                      : Ok   gcc (Mageia 5.5.0-1.mga6) 5.5.0
  34 opensuse:13.2                 : Ok   gcc (SUSE Linux) 4.8.3 20140627 [gcc-4_8-branch revision 212064]
  35 opensuse:15.0                 : Ok   gcc (SUSE Linux) 7.3.1 20180323 [gcc-7-branch revision 258812]
  36 opensuse:15.1                 : Ok   gcc (SUSE Linux) 7.4.0
  37 opensuse:42.1                 : Ok   gcc (SUSE Linux) 4.8.5
  38 opensuse:42.2                 : Ok   gcc (SUSE Linux) 4.8.5
  39 opensuse:42.3                 : Ok   gcc (SUSE Linux) 4.8.5
  40 opensuse:tumbleweed           : Ok   gcc (SUSE Linux) 8.2.1 20190103 [gcc-8-branch revision 267549]
  41 oraclelinux:6                 : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23.0.1)
  42 oraclelinux:7                 : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36.0.1)
  43 ubuntu:12.04.5                : Ok   gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
  44 ubuntu:14.04.4                : Ok   gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
  45 ubuntu:14.04.4-x-linaro-arm64 : Ok   gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
  46 ubuntu:16.04                  : Ok   gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
  47 ubuntu:16.04-x-arm            : Ok   gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
  48 ubuntu:16.04-x-arm64          : Ok   gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
  49 ubuntu:16.04-x-powerpc        : Ok   gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
  50 ubuntu:16.04-x-powerpc64      : Ok   gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
  51 ubuntu:16.04-x-powerpc64el    : Ok   gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
  52 ubuntu:16.04-x-s390           : Ok   gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
  53 ubuntu:17.10                  : Ok   gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0
  54 ubuntu:18.04                  : Ok   gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  55 ubuntu:18.04-x-arm            : Ok   gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  56 ubuntu:18.04-x-arm64          : Ok   gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  57 ubuntu:18.04-x-m68k           : Ok   gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  58 ubuntu:18.04-x-powerpc        : Ok   gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  59 ubuntu:18.04-x-powerpc64      : Ok   gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  60 ubuntu:18.04-x-powerpc64el    : Ok   gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  61 ubuntu:18.04-x-riscv64        : Ok   gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  62 ubuntu:18.04-x-s390           : Ok   gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  63 ubuntu:18.04-x-sh4            : Ok   gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  64 ubuntu:18.04-x-sparc64        : Ok   gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  65 ubuntu:18.10                  : Ok   gcc (Ubuntu 8.2.0-7ubuntu1) 8.2.0
  66 ubuntu:19.04                  : Ok   gcc (Ubuntu 8.2.0-15ubuntu1) 8.2.0
  67 ubuntu:19.04-x-alpha          : Ok   gcc (Ubuntu 8.2.0-15ubuntu1) 8.2.0
  68 ubuntu:19.04-x-hppa           : Ok   gcc (Ubuntu 8.2.0-15ubuntu1) 8.2.0
  # 

  # uname -a
  Linux quaco 4.20.3-200.fc29.x86_64 #1 SMP Thu Jan 17 15:19:35 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
  # git log --oneline -1
  8f2f350cbdb2 perf script python: Add Python3 support to tests/attr.py
  # perf version --build-options
  perf version 5.0.rc5.g8f2f350
                   dwarf: [ on  ]  # HAVE_DWARF_SUPPORT
      dwarf_getlocations: [ on  ]  # HAVE_DWARF_GETLOCATIONS_SUPPORT
                   glibc: [ on  ]  # HAVE_GLIBC_SUPPORT
                    gtk2: [ on  ]  # HAVE_GTK2_SUPPORT
           syscall_table: [ on  ]  # HAVE_SYSCALL_TABLE_SUPPORT
                  libbfd: [ on  ]  # HAVE_LIBBFD_SUPPORT
                  libelf: [ on  ]  # HAVE_LIBELF_SUPPORT
                 libnuma: [ on  ]  # HAVE_LIBNUMA_SUPPORT
  numa_num_possible_cpus: [ on  ]  # HAVE_LIBNUMA_SUPPORT
                 libperl: [ on  ]  # HAVE_LIBPERL_SUPPORT
               libpython: [ on  ]  # HAVE_LIBPYTHON_SUPPORT
                libslang: [ on  ]  # HAVE_SLANG_SUPPORT
               libcrypto: [ on  ]  # HAVE_LIBCRYPTO_SUPPORT
               libunwind: [ on  ]  # HAVE_LIBUNWIND_SUPPORT
      libdw-dwarf-unwind: [ on  ]  # HAVE_DWARF_SUPPORT
                    zlib: [ on  ]  # HAVE_ZLIB_SUPPORT
                    lzma: [ on  ]  # HAVE_LZMA_SUPPORT
               get_cpuid: [ on  ]  # HAVE_AUXTRACE_SUPPORT
                     bpf: [ on  ]  # HAVE_LIBBPF_SUPPORT
  # perf test
   1: vmlinux symtab matches kallsyms                       : Ok
   2: Detect openat syscall event                           : Ok
   3: Detect openat syscall event on all cpus               : Ok
   4: Read samples using the mmap interface                 : Ok
   5: Test data source output                               : Ok
   6: Parse event definition strings                        : Ok
   7: Simple expression parser                              : Ok
   8: PERF_RECORD_* events & perf_sample fields             : Ok
   9: Parse perf pmu format                                 : Ok
  10: DSO data read                                         : Ok
  11: DSO data cache                                        : Ok
  12: DSO data reopen                                       : Ok
  13: Roundtrip evsel->name                                 : Ok
  14: Parse sched tracepoints fields                        : Ok
  15: syscalls:sys_enter_openat event fields                : Ok
  16: Setup struct perf_event_attr                          : Ok
  17: Match and link multiple hists                         : Ok
  18: 'import perf' in python                               : Ok
  19: Breakpoint overflow signal handler                    : Ok
  20: Breakpoint overflow sampling                          : Ok
  21: Breakpoint accounting                                 : Ok
  22: Watchpoint                                            :
  22.1: Read Only Watchpoint                                : Skip
  22.2: Write Only Watchpoint                               : Ok
  22.3: Read / Write Watchpoint                             : Ok
  22.4: Modify Watchpoint                                   : Ok
  23: Number of exit events of a simple workload            : Ok
  24: Software clock events period values                   : Ok
  25: Object code reading                                   : Ok
  26: Sample parsing                                        : Ok
  27: Use a dummy software event to keep tracking           : Ok
  28: Parse with no sample_id_all bit set                   : Ok
  29: Filter hist entries                                   : Ok
  30: Lookup mmap thread                                    : Ok
  31: Share thread mg                                       : Ok
  32: Sort output of hist entries                           : Ok
  33: Cumulate child hist entries                           : Ok
  34: Track with sched_switch                               : Ok
  35: Filter fds with revents mask in a fdarray             : Ok
  36: Add fd to a fdarray, making it autogrow               : Ok
  37: kmod_path__parse                                      : Ok
  38: Thread map                                            : Ok
  39: LLVM search and compile                               :
  39.1: Basic BPF llvm compile                              : Ok
  39.2: kbuild searching                                    : Ok
  39.3: Compile source for BPF prologue generation          : Ok
  39.4: Compile source for BPF relocation                   : Ok
  40: Session topology                                      : Ok
  41: BPF filter                                            :
  41.1: Basic BPF filtering                                 : Ok
  41.2: BPF pinning                                         : Ok
  41.3: BPF prologue generation                             : Ok
  41.4: BPF relocation checker                              : Ok
  42: Synthesize thread map                                 : Ok
  43: Remove thread map                                     : Ok
  44: Synthesize cpu map                                    : Ok
  45: Synthesize stat config                                : Ok
  46: Synthesize stat                                       : Ok
  47: Synthesize stat round                                 : Ok
  48: Synthesize attr update                                : Ok
  49: Event times                                           : Ok
  50: Read backward ring buffer                             : Ok
  51: Print cpu map                                         : Ok
  52: Probe SDT events                                      : Ok
  53: is_printable_array                                    : Ok
  54: Print bitmap                                          : Ok
  55: perf hooks                                            : Ok
  56: builtin clang support                                 : Skip (not compiled in)
  57: unit_number__scnprintf                                : Ok
  58: mem2node                                              : Ok
  59: x86 rdpmc                                             : Ok
  60: Convert perf time to TSC                              : Ok
  61: DWARF unwind                                          : Ok
  62: x86 instruction decoder - new instructions            : Ok
  63: x86 bp modify                                         : Ok
  64: probe libc's inet_pton & backtrace it with ping       : Ok
  65: Use vfs_getname probe to get syscall args filenames   : Ok
  66: Add vfs_getname probe to get syscall args filenames   : Ok
  67: Check open filename arg using perf trace + vfs_getname: Ok

  $ make -C tools/perf build-test
  make: Entering directory '/home/acme/git/perf/tools/perf'
  - tarpkg: ./tests/perf-targz-src-pkg .
                make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
                   make_pure_O: make
                    make_doc_O: make doc
               make_no_slang_O: make NO_SLANG=1
                 make_perf_o_O: make perf.o
                 make_static_O: make LDFLAGS=-static
           make_no_libunwind_O: make NO_LIBUNWIND=1
              make_clean_all_O: make clean all
              make_no_libelf_O: make NO_LIBELF=1
             make_no_libnuma_O: make NO_LIBNUMA=1
   make_install_prefix_slash_O: make install prefix=/tmp/krava/
            make_no_libaudit_O: make NO_LIBAUDIT=1
            make_no_demangle_O: make NO_DEMANGLE=1
       make_util_pmu_bison_o_O: make util/pmu-bison.o
         make_with_clangllvm_O: make LIBCLANGLLVM=1
           make_no_libpython_O: make NO_LIBPYTHON=1
            make_no_auxtrace_O: make NO_AUXTRACE=1
        make_with_babeltrace_O: make LIBBABELTRACE=1
             make_util_map_o_O: make util/map.o
                  make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
                   make_tags_O: make tags
              make_no_libbpf_O: make NO_LIBBPF=1
            make_install_bin_O: make install-bin
             make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
                make_install_O: make install
         make_install_prefix_O: make install prefix=/tmp/krava
                make_no_newt_O: make NO_NEWT=1
           make_no_backtrace_O: make NO_BACKTRACE=1
             make_no_libperl_O: make NO_LIBPERL=1
                  make_debug_O: make DEBUG=1
  make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
                   make_help_O: make help
                make_no_gtk2_O: make NO_GTK2=1
           make_no_libbionic_O: make NO_LIBBIONIC=1
  OK
  make: Leaving directory '/home/acme/git/perf/tools/perf'
  $

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 1/8] perf tests evsel-tp-sched: Fix bitwise operator
  2019-02-05 15:07 [GIT PULL 0/8] perf/urgent fixes Arnaldo Carvalho de Melo
@ 2019-02-05 15:07 ` Arnaldo Carvalho de Melo
  2019-02-05 15:07 ` [PATCH 2/8] perf mem/c2c: Fix perf_mem_events to support powerpc Arnaldo Carvalho de Melo
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-02-05 15:07 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Clark Williams, linux-kernel, linux-perf-users,
	Gustavo A. R. Silva, Jiri Olsa, Alexander Shishkin, Namhyung Kim,
	Peter Zijlstra, stable, Arnaldo Carvalho de Melo

From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>

Notice that the use of the bitwise OR operator '|' always leads to true
in this particular case, which seems a bit suspicious due to the context
in which this expression is being used.

Fix this by using bitwise AND operator '&' instead.

This bug was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: stable@vger.kernel.org
Fixes: 6a6cd11d4e57 ("perf test: Add test for the sched tracepoint format fields")
Link: http://lkml.kernel.org/r/20190122233439.GA5868@embeddedor
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/tests/evsel-tp-sched.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/tests/evsel-tp-sched.c b/tools/perf/tests/evsel-tp-sched.c
index 5f8501c68da4..5cbba70bcdd0 100644
--- a/tools/perf/tests/evsel-tp-sched.c
+++ b/tools/perf/tests/evsel-tp-sched.c
@@ -17,7 +17,7 @@ static int perf_evsel__test_field(struct perf_evsel *evsel, const char *name,
 		return -1;
 	}
 
-	is_signed = !!(field->flags | TEP_FIELD_IS_SIGNED);
+	is_signed = !!(field->flags & TEP_FIELD_IS_SIGNED);
 	if (should_be_signed && !is_signed) {
 		pr_debug("%s: \"%s\" signedness(%d) is wrong, should be %d\n",
 			 evsel->name, name, is_signed, should_be_signed);
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 2/8] perf mem/c2c: Fix perf_mem_events to support powerpc
  2019-02-05 15:07 [GIT PULL 0/8] perf/urgent fixes Arnaldo Carvalho de Melo
  2019-02-05 15:07 ` [PATCH 1/8] perf tests evsel-tp-sched: Fix bitwise operator Arnaldo Carvalho de Melo
@ 2019-02-05 15:07 ` Arnaldo Carvalho de Melo
  2019-02-05 15:07 ` [PATCH 3/8] perf clang: Do not use 'return std::move(something)' Arnaldo Carvalho de Melo
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-02-05 15:07 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Clark Williams, linux-kernel, linux-perf-users, Ravi Bangoria,
	Jiri Olsa, Dick Fowles, Don Zickus, Joe Mario,
	Madhavan Srinivasan, Michael Ellerman, Namhyung Kim,
	linuxppc-dev, Arnaldo Carvalho de Melo

From: Ravi Bangoria <ravi.bangoria@linux.ibm.com>

PowerPC hardware does not have a builtin latency filter (--ldlat) for
the "mem-load" event and perf_mem_events by default includes
"/ldlat=30/" which is causing a failure on PowerPC. Refactor the code to
support "perf mem/c2c" on PowerPC.

This patch depends on kernel side changes done my Madhavan:
https://lists.ozlabs.org/pipermail/linuxppc-dev/2018-December/182596.html

Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Dick Fowles <fowles@inreach.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Joe Mario <jmario@redhat.com>
Cc: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: linuxppc-dev@lists.ozlabs.org
Link: http://lkml.kernel.org/r/20190129132412.771-1-ravi.bangoria@linux.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/Documentation/perf-c2c.txt     | 16 ++++++++++++----
 tools/perf/Documentation/perf-mem.txt     |  2 +-
 tools/perf/arch/powerpc/util/Build        |  1 +
 tools/perf/arch/powerpc/util/mem-events.c | 11 +++++++++++
 tools/perf/util/mem-events.c              |  2 +-
 5 files changed, 26 insertions(+), 6 deletions(-)
 create mode 100644 tools/perf/arch/powerpc/util/mem-events.c

diff --git a/tools/perf/Documentation/perf-c2c.txt b/tools/perf/Documentation/perf-c2c.txt
index 095aebdc5bb7..e6150f21267d 100644
--- a/tools/perf/Documentation/perf-c2c.txt
+++ b/tools/perf/Documentation/perf-c2c.txt
@@ -19,8 +19,11 @@ C2C stands for Cache To Cache.
 The perf c2c tool provides means for Shared Data C2C/HITM analysis. It allows
 you to track down the cacheline contentions.
 
-The tool is based on x86's load latency and precise store facility events
-provided by Intel CPUs. These events provide:
+On x86, the tool is based on load latency and precise store facility events
+provided by Intel CPUs. On PowerPC, the tool uses random instruction sampling
+with thresholding feature.
+
+These events provide:
   - memory address of the access
   - type of the access (load and store details)
   - latency (in cycles) of the load access
@@ -46,7 +49,7 @@ RECORD OPTIONS
 
 -l::
 --ldlat::
-	Configure mem-loads latency.
+	Configure mem-loads latency. (x86 only)
 
 -k::
 --all-kernel::
@@ -119,11 +122,16 @@ Following perf record options are configured by default:
   -W,-d,--phys-data,--sample-cpu
 
 Unless specified otherwise with '-e' option, following events are monitored by
-default:
+default on x86:
 
   cpu/mem-loads,ldlat=30/P
   cpu/mem-stores/P
 
+and following on PowerPC:
+
+  cpu/mem-loads/
+  cpu/mem-stores/
+
 User can pass any 'perf record' option behind '--' mark, like (to enable
 callchains and system wide monitoring):
 
diff --git a/tools/perf/Documentation/perf-mem.txt b/tools/perf/Documentation/perf-mem.txt
index f8d2167cf3e7..199ea0f0a6c0 100644
--- a/tools/perf/Documentation/perf-mem.txt
+++ b/tools/perf/Documentation/perf-mem.txt
@@ -82,7 +82,7 @@ RECORD OPTIONS
 	Be more verbose (show counter open errors, etc)
 
 --ldlat <n>::
-	Specify desired latency for loads event.
+	Specify desired latency for loads event. (x86 only)
 
 In addition, for report all perf report options are valid, and for record
 all perf record options.
diff --git a/tools/perf/arch/powerpc/util/Build b/tools/perf/arch/powerpc/util/Build
index 2e6595310420..ba98bd006488 100644
--- a/tools/perf/arch/powerpc/util/Build
+++ b/tools/perf/arch/powerpc/util/Build
@@ -2,6 +2,7 @@ libperf-y += header.o
 libperf-y += sym-handling.o
 libperf-y += kvm-stat.o
 libperf-y += perf_regs.o
+libperf-y += mem-events.o
 
 libperf-$(CONFIG_DWARF) += dwarf-regs.o
 libperf-$(CONFIG_DWARF) += skip-callchain-idx.o
diff --git a/tools/perf/arch/powerpc/util/mem-events.c b/tools/perf/arch/powerpc/util/mem-events.c
new file mode 100644
index 000000000000..d08311f04e95
--- /dev/null
+++ b/tools/perf/arch/powerpc/util/mem-events.c
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "mem-events.h"
+
+/* PowerPC does not support 'ldlat' parameter. */
+char *perf_mem_events__name(int i)
+{
+	if (i == PERF_MEM_EVENTS__LOAD)
+		return (char *) "cpu/mem-loads/";
+
+	return (char *) "cpu/mem-stores/";
+}
diff --git a/tools/perf/util/mem-events.c b/tools/perf/util/mem-events.c
index 93f74d8d3cdd..42c3e5a229d2 100644
--- a/tools/perf/util/mem-events.c
+++ b/tools/perf/util/mem-events.c
@@ -28,7 +28,7 @@ struct perf_mem_event perf_mem_events[PERF_MEM_EVENTS__MAX] = {
 static char mem_loads_name[100];
 static bool mem_loads_name__init;
 
-char *perf_mem_events__name(int i)
+char * __weak perf_mem_events__name(int i)
 {
 	if (i == PERF_MEM_EVENTS__LOAD) {
 		if (!mem_loads_name__init) {
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 3/8] perf clang: Do not use 'return std::move(something)'
  2019-02-05 15:07 [GIT PULL 0/8] perf/urgent fixes Arnaldo Carvalho de Melo
  2019-02-05 15:07 ` [PATCH 1/8] perf tests evsel-tp-sched: Fix bitwise operator Arnaldo Carvalho de Melo
  2019-02-05 15:07 ` [PATCH 2/8] perf mem/c2c: Fix perf_mem_events to support powerpc Arnaldo Carvalho de Melo
@ 2019-02-05 15:07 ` Arnaldo Carvalho de Melo
  2019-02-05 15:07 ` [PATCH 4/8] tools headers uapi: Sync linux/in.h copy from the kernel sources Arnaldo Carvalho de Melo
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-02-05 15:07 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Clark Williams, linux-kernel, linux-perf-users,
	Arnaldo Carvalho de Melo, Adrian Hunter, Jiri Olsa,
	Luis Cláudio Gonçalves, Namhyung Kim, Wang Nan

From: Arnaldo Carvalho de Melo <acme@redhat.com>

It prevents copy elision, generating this warning when building with
fedora:rawhide's clang:

  clang version 7.0.1 (Fedora 7.0.1-2.fc30)
  Target: x86_64-unknown-linux-gnu
  Thread model: posix
  InstalledDir: /usr/bin
  Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-redhat-linux/9
  Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
  Selected GCC installation: /usr/bin/../lib/gcc/x86_64-redhat-linux/9
  Candidate multilib: .;@m64
  Candidate multilib: 32;@m32
  Selected multilib: .;@m64

  $ make -C tools/perf CC=clang LIBCLANGLLVM=1
  <SNIP>
  util/c++/clang.cpp: In function 'std::unique_ptr<llvm::SmallVectorImpl<char> > perf::getBPFObjectFromModule(llvm::Module*)':
  util/c++/clang.cpp:163:18: error: moving a local object in a return statement prevents copy elision [-Werror=pessimizing-move]
    163 |  return std::move(Buffer);
        |         ~~~~~~~~~^~~~~~~~
  util/c++/clang.cpp:163:18: note: remove 'std::move' call
  cc1plus: all warnings being treated as errors
  <SNIP>

References:

  http://www.cplusplus.com/forum/general/186411/#msg908572
  https://en.cppreference.com/w/cpp/language/return#Notes
  https://en.cppreference.com/w/cpp/language/copy_elision

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Luis Cláudio Gonçalves <lclaudio@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: https://lkml.kernel.org/n/tip-lehqf5x5q96l0o8myhb6blz6@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/c++/clang.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/c++/clang.cpp b/tools/perf/util/c++/clang.cpp
index 89512504551b..39c0004f2886 100644
--- a/tools/perf/util/c++/clang.cpp
+++ b/tools/perf/util/c++/clang.cpp
@@ -160,7 +160,7 @@ getBPFObjectFromModule(llvm::Module *Module)
 	}
 	PM.run(*Module);
 
-	return std::move(Buffer);
+	return Buffer;
 }
 
 }
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 4/8] tools headers uapi: Sync linux/in.h copy from the kernel sources
  2019-02-05 15:07 [GIT PULL 0/8] perf/urgent fixes Arnaldo Carvalho de Melo
                   ` (2 preceding siblings ...)
  2019-02-05 15:07 ` [PATCH 3/8] perf clang: Do not use 'return std::move(something)' Arnaldo Carvalho de Melo
@ 2019-02-05 15:07 ` Arnaldo Carvalho de Melo
  2019-02-05 15:07 ` [PATCH 5/8] perf symbols: Add fallback definitions for GELF_ST_VISIBILITY() Arnaldo Carvalho de Melo
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-02-05 15:07 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Clark Williams, linux-kernel, linux-perf-users,
	Arnaldo Carvalho de Melo, Adrian Hunter, David S . Miller,
	Greg Kroah-Hartman, Jiri Olsa, Namhyung Kim

From: Arnaldo Carvalho de Melo <acme@redhat.com>

To get the changes in this cset:

  f275ee0fa3a0 ("IN_BADCLASS: fix macro to actually work")

The macros changed in this cset are not used in tools/, so this is just
to silence this perf tools build warning:

  Warning: Kernel ABI header at 'tools/include/uapi/linux/in.h' differs from latest version at 'include/uapi/linux/in.h'
  diff -u tools/include/uapi/linux/in.h include/uapi/linux/in.h

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-xbk34kwamn8bw8ywpuxetct9@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/include/uapi/linux/in.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/include/uapi/linux/in.h b/tools/include/uapi/linux/in.h
index f6052e70bf40..a55cb8b10165 100644
--- a/tools/include/uapi/linux/in.h
+++ b/tools/include/uapi/linux/in.h
@@ -268,7 +268,7 @@ struct sockaddr_in {
 #define	IN_MULTICAST(a)		IN_CLASSD(a)
 #define	IN_MULTICAST_NET	0xe0000000
 
-#define	IN_BADCLASS(a)		((((long int) (a) ) == 0xffffffff)
+#define	IN_BADCLASS(a)		(((long int) (a) ) == (long int)0xffffffff)
 #define	IN_EXPERIMENTAL(a)	IN_BADCLASS((a))
 
 #define	IN_CLASSE(a)		((((long int) (a)) & 0xf0000000) == 0xf0000000)
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 5/8] perf symbols: Add fallback definitions for GELF_ST_VISIBILITY()
  2019-02-05 15:07 [GIT PULL 0/8] perf/urgent fixes Arnaldo Carvalho de Melo
                   ` (3 preceding siblings ...)
  2019-02-05 15:07 ` [PATCH 4/8] tools headers uapi: Sync linux/in.h copy from the kernel sources Arnaldo Carvalho de Melo
@ 2019-02-05 15:07 ` Arnaldo Carvalho de Melo
  2019-02-05 15:07 ` [PATCH 6/8] perf symbols: Filter out hidden symbols from labels Arnaldo Carvalho de Melo
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-02-05 15:07 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Clark Williams, linux-kernel, linux-perf-users,
	Arnaldo Carvalho de Melo, Adrian Hunter, Alexander Shishkin,
	Jiri Olsa, Masami Hiramatsu, Michael Petlan, Namhyung Kim,
	Nick Clifton, Peter Zijlstra

From: Arnaldo Carvalho de Melo <acme@redhat.com>

Those aren't present in Alpine Linux 3.4 to edge, so provide fallback
defines to get the next patch building there keeping the build
bisectable.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Nick Clifton <nickc@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lkml.kernel.org/n/tip-03cg3gya2ju4ba2x6ibb9fuz@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/symbol-elf.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
index 66a84d5846c8..695a73940329 100644
--- a/tools/perf/util/symbol-elf.c
+++ b/tools/perf/util/symbol-elf.c
@@ -19,6 +19,20 @@
 #define EM_AARCH64	183  /* ARM 64 bit */
 #endif
 
+#ifndef ELF32_ST_VISIBILITY
+#define ELF32_ST_VISIBILITY(o)	((o) & 0x03)
+#endif
+
+/* For ELF64 the definitions are the same.  */
+#ifndef ELF64_ST_VISIBILITY
+#define ELF64_ST_VISIBILITY(o)	ELF32_ST_VISIBILITY (o)
+#endif
+
+/* How to extract information held in the st_other field.  */
+#ifndef GELF_ST_VISIBILITY
+#define GELF_ST_VISIBILITY(val)	ELF64_ST_VISIBILITY (val)
+#endif
+
 typedef Elf64_Nhdr GElf_Nhdr;
 
 #ifdef HAVE_CPLUS_DEMANGLE_SUPPORT
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 6/8] perf symbols: Filter out hidden symbols from labels
  2019-02-05 15:07 [GIT PULL 0/8] perf/urgent fixes Arnaldo Carvalho de Melo
                   ` (4 preceding siblings ...)
  2019-02-05 15:07 ` [PATCH 5/8] perf symbols: Add fallback definitions for GELF_ST_VISIBILITY() Arnaldo Carvalho de Melo
@ 2019-02-05 15:07 ` Arnaldo Carvalho de Melo
  2019-02-05 15:07 ` [PATCH 7/8] perf trace: Support multiple "vfs_getname" probes Arnaldo Carvalho de Melo
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-02-05 15:07 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Clark Williams, linux-kernel, linux-perf-users, Jiri Olsa,
	Jiri Olsa, Alexander Shishkin, Masami Hiramatsu, Michael Petlan,
	Namhyung Kim, Nick Clifton, Peter Zijlstra,
	Arnaldo Carvalho de Melo

From: Jiri Olsa <jolsa@redhat.com>

When perf is built with the annobin plugin (RHEL8 build) extra symbols
are added to its binary:

  # nm perf | grep annobin | head -10
  0000000000241100 t .annobin_annotate.c
  0000000000326490 t .annobin_annotate.c
  0000000000249255 t .annobin_annotate.c_end
  00000000003283a8 t .annobin_annotate.c_end
  00000000001bce18 t .annobin_annotate.c_end.hot
  00000000001bce18 t .annobin_annotate.c_end.hot
  00000000001bc3e2 t .annobin_annotate.c_end.unlikely
  00000000001bc400 t .annobin_annotate.c_end.unlikely
  00000000001bce18 t .annobin_annotate.c.hot
  00000000001bce18 t .annobin_annotate.c.hot
  ...

Those symbols have no use for report or annotation and should be
skipped.  Moreover they interfere with the DWARF unwind test on the PPC
arch, where they are mixed with checked symbols and then the test fails:

  # perf test dwarf -v
  59: Test dwarf unwind                                     :
  --- start ---
  test child forked, pid 8515
  unwind: .annobin_dwarf_unwind.c:ip = 0x10dba40dc (0x2740dc)
  ...
  got: .annobin_dwarf_unwind.c 0x10dba40dc, expecting test__arch_unwind_sample
  unwind: failed with 'no error'

The annobin symbols are defined as NOTYPE/LOCAL/HIDDEN:

  # readelf -s ./perf | grep annobin | head -1
    40: 00000000001bce4f     0 NOTYPE  LOCAL  HIDDEN    13 .annobin_init.c

They can still pass the check for the label symbol. Adding check for
HIDDEN and INTERNAL (as suggested by Nick below) visibility and filter
out such symbols.

>   Just to be awkward, if you are going to ignore STV_HIDDEN
>   symbols then you should probably also ignore STV_INTERNAL ones
>   as well...  Annobin does not generate them, but you never know,
>   one day some other tool might create some.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Nick Clifton <nickc@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20190128133526.GD15461@krava
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/symbol-elf.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
index 695a73940329..dca7dfae69ad 100644
--- a/tools/perf/util/symbol-elf.c
+++ b/tools/perf/util/symbol-elf.c
@@ -101,6 +101,11 @@ static inline uint8_t elf_sym__type(const GElf_Sym *sym)
 	return GELF_ST_TYPE(sym->st_info);
 }
 
+static inline uint8_t elf_sym__visibility(const GElf_Sym *sym)
+{
+	return GELF_ST_VISIBILITY(sym->st_other);
+}
+
 #ifndef STT_GNU_IFUNC
 #define STT_GNU_IFUNC 10
 #endif
@@ -125,7 +130,9 @@ static inline int elf_sym__is_label(const GElf_Sym *sym)
 	return elf_sym__type(sym) == STT_NOTYPE &&
 		sym->st_name != 0 &&
 		sym->st_shndx != SHN_UNDEF &&
-		sym->st_shndx != SHN_ABS;
+		sym->st_shndx != SHN_ABS &&
+		elf_sym__visibility(sym) != STV_HIDDEN &&
+		elf_sym__visibility(sym) != STV_INTERNAL;
 }
 
 static bool elf_sym__filter(GElf_Sym *sym)
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 7/8] perf trace: Support multiple "vfs_getname" probes
  2019-02-05 15:07 [GIT PULL 0/8] perf/urgent fixes Arnaldo Carvalho de Melo
                   ` (5 preceding siblings ...)
  2019-02-05 15:07 ` [PATCH 6/8] perf symbols: Filter out hidden symbols from labels Arnaldo Carvalho de Melo
@ 2019-02-05 15:07 ` Arnaldo Carvalho de Melo
  2019-02-05 15:07 ` [PATCH 8/8] perf script python: Add Python3 support to tests/attr.py Arnaldo Carvalho de Melo
  2019-02-09 12:15 ` [GIT PULL 0/8] perf/urgent fixes Ingo Molnar
  8 siblings, 0 replies; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-02-05 15:07 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Clark Williams, linux-kernel, linux-perf-users,
	Arnaldo Carvalho de Melo, Michael Petlan, Adrian Hunter,
	Jiri Olsa, Namhyung Kim

From: Arnaldo Carvalho de Melo <acme@redhat.com>

With a suitably defined "probe:vfs_getname" probe, 'perf trace' can
"beautify" its output, so syscalls like open() or openat() can print the
"filename" argument instead of just its hex address, like:

  $ perf trace -e open -- touch /dev/null
  [...]
       0.590 ( 0.014 ms): touch/18063 open(filename: /dev/null, flags: CREAT|NOCTTY|NONBLOCK|WRONLY, mode: IRUGO|IWUGO) = 3
  [...]

The output without such beautifier looks like:

     0.529 ( 0.011 ms): touch/18075 open(filename: 0xc78cf288, flags: CREAT|NOCTTY|NONBLOCK|WRONLY, mode: IRUGO|IWUGO) = 3

However, when the vfs_getname probe expands to multiple probes and it is
not the first one that is hit, the beautifier fails, as following:

     0.326 ( 0.010 ms): touch/18072 open(filename: , flags: CREAT|NOCTTY|NONBLOCK|WRONLY, mode: IRUGO|IWUGO) = 3

Fix it by hooking into all the expanded probes (inlines), now, for instance:

  [root@quaco ~]# perf probe -l
    probe:vfs_getname    (on getname_flags:73@fs/namei.c with pathname)
    probe:vfs_getname_1  (on getname_flags:73@fs/namei.c with pathname)
  [root@quaco ~]# perf trace -e open* sleep 1
       0.010 ( 0.005 ms): sleep/5588 openat(dfd: CWD, filename: /etc/ld.so.cache, flags: RDONLY|CLOEXEC)   = 3
       0.029 ( 0.006 ms): sleep/5588 openat(dfd: CWD, filename: /lib64/libc.so.6, flags: RDONLY|CLOEXEC)   = 3
       0.194 ( 0.008 ms): sleep/5588 openat(dfd: CWD, filename: /usr/lib/locale/locale-archive, flags: RDONLY|CLOEXEC) = 3
  [root@quaco ~]#

Works, further verified with:

  [root@quaco ~]# perf test vfs
  65: Use vfs_getname probe to get syscall args filenames   : Ok
  66: Add vfs_getname probe to get syscall args filenames   : Ok
  67: Check open filename arg using perf trace + vfs_getname: Ok
  [root@quaco ~]#

Reported-by: Michael Petlan <mpetlan@redhat.com>
Tested-by: Michael Petlan <mpetlan@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-mv8kolk17xla1smvmp3qabv1@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/builtin-trace.c | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index ed4583128b9c..b36061cd1ab8 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -2514,19 +2514,30 @@ static size_t trace__fprintf_thread_summary(struct trace *trace, FILE *fp);
 
 static bool perf_evlist__add_vfs_getname(struct perf_evlist *evlist)
 {
-	struct perf_evsel *evsel = perf_evsel__newtp("probe", "vfs_getname");
+	bool found = false;
+	struct perf_evsel *evsel, *tmp;
+	struct parse_events_error err = { .idx = 0, };
+	int ret = parse_events(evlist, "probe:vfs_getname*", &err);
 
-	if (IS_ERR(evsel))
+	if (ret)
 		return false;
 
-	if (perf_evsel__field(evsel, "pathname") == NULL) {
+	evlist__for_each_entry_safe(evlist, evsel, tmp) {
+		if (!strstarts(perf_evsel__name(evsel), "probe:vfs_getname"))
+			continue;
+
+		if (perf_evsel__field(evsel, "pathname")) {
+			evsel->handler = trace__vfs_getname;
+			found = true;
+			continue;
+		}
+
+		list_del_init(&evsel->node);
+		evsel->evlist = NULL;
 		perf_evsel__delete(evsel);
-		return false;
 	}
 
-	evsel->handler = trace__vfs_getname;
-	perf_evlist__add(evlist, evsel);
-	return true;
+	return found;
 }
 
 static struct perf_evsel *perf_evsel__new_pgfault(u64 config)
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 8/8] perf script python: Add Python3 support to tests/attr.py
  2019-02-05 15:07 [GIT PULL 0/8] perf/urgent fixes Arnaldo Carvalho de Melo
                   ` (6 preceding siblings ...)
  2019-02-05 15:07 ` [PATCH 7/8] perf trace: Support multiple "vfs_getname" probes Arnaldo Carvalho de Melo
@ 2019-02-05 15:07 ` Arnaldo Carvalho de Melo
  2019-02-09 12:15 ` [GIT PULL 0/8] perf/urgent fixes Ingo Molnar
  8 siblings, 0 replies; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-02-05 15:07 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Clark Williams, linux-kernel, linux-perf-users, Tony Jones,
	Jiri Olsa, Arnaldo Carvalho de Melo, Jonathan Corbet,
	Ravi Bangoria, Seeteena Thoufeek

From: Tony Jones <tonyj@suse.de>

Support both Python 2 and Python 3 in tests/attr.py

The use of "except as" syntax implies the minimum supported Python2 version is
now v2.6

Committer testing:

  $ make -C tools/perf PYTHON3=python install-bin

Before:

  # perf test attr
  16: Setup struct perf_event_attr                          : FAILED!
  48: Synthesize attr update                                : Ok
  [root@quaco ~]# perf test -v attr
  16: Setup struct perf_event_attr                          :
  --- start ---
  test child forked, pid 3121
    File "/home/acme/libexec/perf-core/tests/attr.py", line 324
      except Unsup, obj:
                ^
  SyntaxError: invalid syntax
  test child finished with -1
  ---- end ----
  Setup struct perf_event_attr: FAILED!
  48: Synthesize attr update                                :
  --- start ---
  test child forked, pid 3124
  test child finished with 0
  ---- end ----
  Synthesize attr update: Ok
  #

After:

   # perf test attr
  16: Setup struct perf_event_attr                          : Ok
  48: Synthesize attr update                                : Ok
  #

Signed-off-by: Tony Jones <tonyj@suse.de>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Cc: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/r/20190124005229.16146-7-tonyj@suse.de
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/tests/attr.py | 32 +++++++++++++++++++-------------
 1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/tools/perf/tests/attr.py b/tools/perf/tests/attr.py
index 44090a9a19f3..e952127e4fb0 100644
--- a/tools/perf/tests/attr.py
+++ b/tools/perf/tests/attr.py
@@ -1,6 +1,8 @@
 #! /usr/bin/python
 # SPDX-License-Identifier: GPL-2.0
 
+from __future__ import print_function
+
 import os
 import sys
 import glob
@@ -8,7 +10,11 @@ import optparse
 import tempfile
 import logging
 import shutil
-import ConfigParser
+
+try:
+    import configparser
+except ImportError:
+    import ConfigParser as configparser
 
 def data_equal(a, b):
     # Allow multiple values in assignment separated by '|'
@@ -100,20 +106,20 @@ class Event(dict):
     def equal(self, other):
         for t in Event.terms:
             log.debug("      [%s] %s %s" % (t, self[t], other[t]));
-            if not self.has_key(t) or not other.has_key(t):
+            if t not in self or t not in other:
                 return False
             if not data_equal(self[t], other[t]):
                 return False
         return True
 
     def optional(self):
-        if self.has_key('optional') and self['optional'] == '1':
+        if 'optional' in self and self['optional'] == '1':
             return True
         return False
 
     def diff(self, other):
         for t in Event.terms:
-            if not self.has_key(t) or not other.has_key(t):
+            if t not in self or t not in other:
                 continue
             if not data_equal(self[t], other[t]):
                 log.warning("expected %s=%s, got %s" % (t, self[t], other[t]))
@@ -134,7 +140,7 @@ class Event(dict):
 #   - expected values assignments
 class Test(object):
     def __init__(self, path, options):
-        parser = ConfigParser.SafeConfigParser()
+        parser = configparser.SafeConfigParser()
         parser.read(path)
 
         log.warning("running '%s'" % path)
@@ -193,7 +199,7 @@ class Test(object):
         return True
 
     def load_events(self, path, events):
-        parser_event = ConfigParser.SafeConfigParser()
+        parser_event = configparser.SafeConfigParser()
         parser_event.read(path)
 
         # The event record section header contains 'event' word,
@@ -207,7 +213,7 @@ class Test(object):
             # Read parent event if there's any
             if (':' in section):
                 base = section[section.index(':') + 1:]
-                parser_base = ConfigParser.SafeConfigParser()
+                parser_base = configparser.SafeConfigParser()
                 parser_base.read(self.test_dir + '/' + base)
                 base_items = parser_base.items('event')
 
@@ -322,9 +328,9 @@ def run_tests(options):
     for f in glob.glob(options.test_dir + '/' + options.test):
         try:
             Test(f, options).run()
-        except Unsup, obj:
+        except Unsup as obj:
             log.warning("unsupp  %s" % obj.getMsg())
-        except Notest, obj:
+        except Notest as obj:
             log.warning("skipped %s" % obj.getMsg())
 
 def setup_log(verbose):
@@ -363,7 +369,7 @@ def main():
     parser.add_option("-p", "--perf",
                       action="store", type="string", dest="perf")
     parser.add_option("-v", "--verbose",
-                      action="count", dest="verbose")
+                      default=0, action="count", dest="verbose")
 
     options, args = parser.parse_args()
     if args:
@@ -373,7 +379,7 @@ def main():
     setup_log(options.verbose)
 
     if not options.test_dir:
-        print 'FAILED no -d option specified'
+        print('FAILED no -d option specified')
         sys.exit(-1)
 
     if not options.test:
@@ -382,8 +388,8 @@ def main():
     try:
         run_tests(options)
 
-    except Fail, obj:
-        print "FAILED %s" % obj.getMsg();
+    except Fail as obj:
+        print("FAILED %s" % obj.getMsg())
         sys.exit(-1)
 
     sys.exit(0)
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [GIT PULL 0/8] perf/urgent fixes
  2019-02-05 15:07 [GIT PULL 0/8] perf/urgent fixes Arnaldo Carvalho de Melo
                   ` (7 preceding siblings ...)
  2019-02-05 15:07 ` [PATCH 8/8] perf script python: Add Python3 support to tests/attr.py Arnaldo Carvalho de Melo
@ 2019-02-09 12:15 ` Ingo Molnar
  8 siblings, 0 replies; 19+ messages in thread
From: Ingo Molnar @ 2019-02-09 12:15 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Clark Williams, linux-kernel, linux-perf-users,
	Gustavo A . R . Silva, Michael Petlan, Ravi Bangoria, Tony Jones,
	Arnaldo Carvalho de Melo


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> Test results at the end of this message, as usual.
> 
> The following changes since commit 9dff0aa95a324e262ffb03f425d00e4751f3294e:
> 
>   perf/core: Don't WARN() for impossible ring-buffer sizes (2019-02-04 08:45:25 +0100)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-5.0-20190205
> 
> for you to fetch changes up to 8f2f350cbdb2c2fbff654cb778139144b48a59ba:
> 
>   perf script python: Add Python3 support to tests/attr.py (2019-02-05 10:31:08 -0300)
> 
> ----------------------------------------------------------------
> perf/urgent fixes:
> 
> perf trace:
> 
>   Arnaldo Carvalho de Melo:
> 
>     Fix handling of probe:vfs_getname when the probed routine is
>     inlined in multiple places, fixing the collection of the 'filename'
>     parameter in open syscalls.
> 
> perf test:
> 
>   Gustavo A. R. Silva:
> 
>     Fix bitwise operator usage in evsel-tp-sched test, which made tat
>     test always detect fields as signed.
> 
>   Jiri Olsa:
> 
>     Filter out hidden symbols from labels, added in systems where the
>     annobin plugin is used, such as RHEL8, which, if left in place make
>     the DWARF unwind 'perf test' to fail on PPC.
> 
>   Tony Jones:
> 
>     Fix 'perf_event_attr' tests when building with python3.
> 
> perf mem/c2c:
> 
>   Ravi Bangoria:
> 
>     Fix perf_mem_events on PowerPC.
> 
> tools headers UAPI:
> 
>   Arnaldo Carvalho de Melo:
> 
>     Sync linux/in.h copy from the kernel sources, silencing a perf build warning.
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (4):
>       perf clang: Do not use 'return std::move(something)'
>       tools headers uapi: Sync linux/in.h copy from the kernel sources
>       perf symbols: Add fallback definitions for GELF_ST_VISIBILITY()
>       perf trace: Support multiple "vfs_getname" probes
> 
> Gustavo A. R. Silva (1):
>       perf tests evsel-tp-sched: Fix bitwise operator
> 
> Jiri Olsa (1):
>       perf symbols: Filter out hidden symbols from labels
> 
> Ravi Bangoria (1):
>       perf mem/c2c: Fix perf_mem_events to support powerpc
> 
> Tony Jones (1):
>       perf script python: Add Python3 support to tests/attr.py
> 
>  tools/include/uapi/linux/in.h             |  2 +-
>  tools/perf/Documentation/perf-c2c.txt     | 16 ++++++++++++----
>  tools/perf/Documentation/perf-mem.txt     |  2 +-
>  tools/perf/arch/powerpc/util/Build        |  1 +
>  tools/perf/arch/powerpc/util/mem-events.c | 11 +++++++++++
>  tools/perf/builtin-trace.c                | 25 +++++++++++++++++-------
>  tools/perf/tests/attr.py                  | 32 ++++++++++++++++++-------------
>  tools/perf/tests/evsel-tp-sched.c         |  2 +-
>  tools/perf/util/c++/clang.cpp             |  2 +-
>  tools/perf/util/mem-events.c              |  2 +-
>  tools/perf/util/symbol-elf.c              | 23 +++++++++++++++++++++-
>  11 files changed, 88 insertions(+), 30 deletions(-)
>  create mode 100644 tools/perf/arch/powerpc/util/mem-events.c

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [GIT PULL 0/8] perf/urgent fixes
  2019-07-08 21:54   ` Arnaldo Carvalho de Melo
@ 2019-07-09 11:23     ` Ingo Molnar
  0 siblings, 0 replies; 19+ messages in thread
From: Ingo Molnar @ 2019-07-09 11:23 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Thomas Gleixner, Jiri Olsa, Namhyung Kim, Clark Williams,
	linux-kernel, linux-perf-users, David Carrillo Cisneros,
	Konstantin Kharlamov, Seeteena Thoufeek, Song Liu, Wei Li,
	Arnaldo Carvalho de Melo


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Em Mon, Jul 08, 2019 at 06:50:58PM -0300, Arnaldo Carvalho de Melo escreveu:
> > Em Mon, Jul 08, 2019 at 12:41:59PM -0300, Arnaldo Carvalho de Melo escreveu:
> > > Hi Ingo,
> > > 
> > > 	Please consider pulling, I did a git merge with torvalds/master
> > > late last week to fixup some kernel headers ABI sync warnings, but I had
> > > to cherry pick some csets from my perf/core branch to get the container
> > > builds to all work, so ended up slipping past v5.2, oh well, but here it
> > > is, all containers building ok, I'll now test perf/core to then push
> > > that too.
> > 
> > Hi Ingo,
> > 
> > 	As requested I merged tip/perf/core with this branch and now its
> > available as the perf-urgent-for-mingo-5.3-20190708-2 signed tag, that
> > has only one extra cset:
> > 
> >   commit 686cbe9e5d88ad639bbe26d963e7d5dafa1c1c28 (HEAD -> perf/urgent, tag: perf-urgent-for-mingo-5.3-20190708-2, acme/perf/urgent, acme.korg/perf/urgent)
> >   Author: Arnaldo Carvalho de Melo <acme@redhat.com>
> >   Date:   Mon Jul 8 13:47:14 2019 -0300
> >   
> >       tools arch x86: Sync asm/cpufeatures.h with the with the kernel
> 
> BTW, I ran all the tests as before, same results.

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [GIT PULL 0/8] perf/urgent fixes
  2019-07-08 21:50 ` Arnaldo Carvalho de Melo
@ 2019-07-08 21:54   ` Arnaldo Carvalho de Melo
  2019-07-09 11:23     ` Ingo Molnar
  0 siblings, 1 reply; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-07-08 21:54 UTC (permalink / raw)
  To: Ingo Molnar, Thomas Gleixner
  Cc: Jiri Olsa, Namhyung Kim, Clark Williams, linux-kernel,
	linux-perf-users, David Carrillo Cisneros, Konstantin Kharlamov,
	Seeteena Thoufeek, Song Liu, Wei Li, Arnaldo Carvalho de Melo

Em Mon, Jul 08, 2019 at 06:50:58PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Mon, Jul 08, 2019 at 12:41:59PM -0300, Arnaldo Carvalho de Melo escreveu:
> > Hi Ingo,
> > 
> > 	Please consider pulling, I did a git merge with torvalds/master
> > late last week to fixup some kernel headers ABI sync warnings, but I had
> > to cherry pick some csets from my perf/core branch to get the container
> > builds to all work, so ended up slipping past v5.2, oh well, but here it
> > is, all containers building ok, I'll now test perf/core to then push
> > that too.
> 
> Hi Ingo,
> 
> 	As requested I merged tip/perf/core with this branch and now its
> available as the perf-urgent-for-mingo-5.3-20190708-2 signed tag, that
> has only one extra cset:
> 
>   commit 686cbe9e5d88ad639bbe26d963e7d5dafa1c1c28 (HEAD -> perf/urgent, tag: perf-urgent-for-mingo-5.3-20190708-2, acme/perf/urgent, acme.korg/perf/urgent)
>   Author: Arnaldo Carvalho de Melo <acme@redhat.com>
>   Date:   Mon Jul 8 13:47:14 2019 -0300
>   
>       tools arch x86: Sync asm/cpufeatures.h with the with the kernel

BTW, I ran all the tests as before, same results.

- Arnaldo
 
> Best regards,
> 
> - Arnaldo
>  
> > Best regards,
> > 
> > - Arnaldo
> > 
> > Test results at the end of this message, as usual.
> > 
> > - Arnaldo
> > 
> > The following changes since commit 69bf4b6b54fb7f52b7ea9ce28d4a360cd5ec956d:
> > 
> >   Revert "mm: page cache: store only head pages in i_pages" (2019-07-05 19:55:18 -0700)
> > 
> > are available in the Git repository at:
> > 
> >   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-5.3-20190708
> > 
> > for you to fetch changes up to 05c78468a60f2fd961cd0a0c01c27f288bf81204:
> > 
> >   tools build: Check if gettid() is available before providing helper (2019-07-07 17:53:09 -0300)
> > 
> > ----------------------------------------------------------------
> > perf/urgent fixes:
> > 
> > core:
> > 
> >   Arnaldo Carvalho de Melo:
> > 
> >   - Allow references to thread objects after__machine_exit(), fixing a bug with
> >     'perf sched lat' where that happens, i.e. after perf_session__delete() we
> >     still have references to threads that were in a linked list whose head was
> >     freed in perf_session__delete(), causing a segfault, fix it.
> > 
> >   Jiri Olsa:
> > 
> >   - Do not rely on errno values for precise_ip fallback, fixing the default
> >     use case for 'perf record' on some AMD servers, when no events are specified
> >     and we try to use "cycles:P", i.e. with the maximum precision level.
> > 
> > BPF:
> > 
> >   Song Liu:
> > 
> >   - Assign proper ff->ph in perf_event__synthesize_features(), fixing a bug
> >     when using pipe mode, i.e.  'perf record -o -'.
> > 
> > tools headers:
> > 
> >   Arnaldo Carvalho de Melo:
> > 
> >   - Sync kvm headers with the kernel sources
> > 
> > perf tests:
> > 
> >   Seeteena Thoufeek:
> > 
> >   - Fix record+probe_libc_inet_pton.sh for powerpc64, where without the
> >     debuginfo package for the 'ping' utility we can't resolve its symbols,
> >     so admit getting "[unknown]" for that backtrace line.
> > 
> > perf python:
> > 
> >   Arnaldo Carvalho de Melo:
> > 
> >   - Remove -fstack-protector-strong if clang doesn't have it, fixing the build
> >     with clang on fedora:30, oracleline:7, centos:7.
> > 
> > perf jvmti:
> > 
> >   Jiri Olsa:
> > 
> >   - Address gcc string overflow warning for strncpy()
> > 
> > build:
> > 
> >   Arnaldo Carvalho de Melo:
> > 
> >   - Check if gettid() is available before providing helper, as recent
> >     versions of glibc started to provide gettid().
> > 
> > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> > 
> > ----------------------------------------------------------------
> > Arnaldo Carvalho de Melo (5):
> >       tools arch kvm: Sync kvm headers with the kernel sources
> >       perf thread: Allow references to thread objects after machine__exit()
> >       perf annotate TUI browser: Do not use member from variable within its own initialization
> >       perf python: Remove -fstack-protector-strong if clang doesn't have it
> >       tools build: Check if gettid() is available before providing helper
> > 
> > Jiri Olsa (2):
> >       perf evsel: Do not rely on errno values for precise_ip fallback
> >       perf jvmti: Address gcc string overflow warning for strncpy()
> > 
> > Seeteena Thoufeek (1):
> >       perf tests: Fix record+probe_libc_inet_pton.sh for powerpc64
> > 
> > Song Liu (1):
> >       perf header: Assign proper ff->ph in perf_event__synthesize_features()
> > 
> >  tools/arch/arm64/include/uapi/asm/kvm.h            |  7 +++++
> >  tools/arch/x86/include/uapi/asm/kvm.h              | 31 +++++++++++++++-------
> >  tools/build/Makefile.feature                       |  1 +
> >  tools/build/feature/Makefile                       |  4 +++
> >  tools/build/feature/test-all.c                     |  5 ++++
> >  tools/build/feature/test-gettid.c                  | 11 ++++++++
> >  tools/perf/Makefile.config                         |  4 +++
> >  tools/perf/jvmti/jvmti_agent.c                     |  2 ++
> >  tools/perf/jvmti/libjvmti.c                        |  4 +--
> >  .../tests/shell/record+probe_libc_inet_pton.sh     |  2 +-
> >  tools/perf/ui/browsers/annotate.c                  |  5 ++--
> >  tools/perf/util/evsel.c                            | 10 ++-----
> >  tools/perf/util/header.c                           |  1 +
> >  tools/perf/util/machine.c                          | 25 +++++++++++++++--
> >  tools/perf/util/setup.py                           |  2 ++
> >  tools/perf/util/thread.c                           | 23 +++++++++++++---
> >  16 files changed, 109 insertions(+), 28 deletions(-)
> >  create mode 100644 tools/build/feature/test-gettid.c
> > 
> > Test results:
> > 
> > The first ones are container based builds of tools/perf with and without libelf
> > support.  Where clang is available, it is also used to build perf with/without
> > libelf, and building with LIBCLANGLLVM=1 (built-in clang) with gcc and clang
> > when clang and its devel libraries are installed.
> > 
> > The objtool and samples/bpf/ builds are disabled now that I'm switching from
> > using the sources in a local volume to fetching them from a http server to
> > build it inside the container, to make it easier to build in a container cluster.
> > Those will come back later.
> > 
> > Several are cross builds, the ones with -x-ARCH and the android one, and those
> > may not have all the features built, due to lack of multi-arch devel packages,
> > available and being used so far on just a few, like
> > debian:experimental-x-{arm64,mipsel}.
> > 
> > The 'perf test' one will perform a variety of tests exercising
> > tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
> > with a variety of command line event specifications to then intercept the
> > sys_perf_event syscall to check that the perf_event_attr fields are set up as
> > expected, among a variety of other unit tests.
> > 
> > Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
> > with a variety of feature sets, exercising the build with an incomplete set of
> > features as well as with a complete one. It is planned to have it run on each
> > of the containers mentioned above, using some container orchestration
> > infrastructure. Get in contact if interested in helping having this in place.
> > 
> > The '41: BPF filter' 'perf test' entry is being investigated, it
> > shouldn't be with "Skip" status, some problem with BPF maps.
> > 
> >   $ export PERF_TARBALL=http://192.168.124.1/perf/perf-5.2.0-rc7.tar.xz
> >   $ dm
> >    1  alpine:3.4                    : Ok   gcc (Alpine 5.3.0) 5.3.0, clang version 3.8.0 (tags/RELEASE_380/final)
> >    2  alpine:3.5                    : Ok   gcc (Alpine 6.2.1) 6.2.1 20160822, clang version 3.8.1 (tags/RELEASE_381/final)
> >    3  alpine:3.6                    : Ok   gcc (Alpine 6.3.0) 6.3.0, clang version 4.0.0 (tags/RELEASE_400/final)
> >    4  alpine:3.7                    : Ok   gcc (Alpine 6.4.0) 6.4.0, Alpine clang version 5.0.0 (tags/RELEASE_500/final) (based on LLVM 5.0.0)
> >    5  alpine:3.8                    : Ok   gcc (Alpine 6.4.0) 6.4.0, Alpine clang version 5.0.1 (tags/RELEASE_501/final) (based on LLVM 5.0.1)
> >    6  alpine:3.9                    : Ok   gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 5.0.1 (tags/RELEASE_502/final) (based on LLVM 5.0.1)
> >    7  alpine:3.10                   : Ok   gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 8.0.0 (tags/RELEASE_800/final) (based on LLVM 8.0.0)
> >    8  alpine:edge                   : Ok   gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 7.0.1 (tags/RELEASE_701/final) (based on LLVM 7.0.1)
> >    9  amazonlinux:1                 : Ok   gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2), clang version 3.6.2 (tags/RELEASE_362/final)
> >   10  amazonlinux:2                 : Ok   gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5), clang version 7.0.1 (Amazon Linux 2 7.0.1-1.amzn2.0.2)
> >   11  android-ndk:r12b-arm          : Ok   arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
> >   12  android-ndk:r15c-arm          : Ok   arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
> >   13  centos:5                      : Ok   gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
> >   14  centos:6                      : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
> >   15  centos:7                      : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), clang version 3.4.2 (tags/RELEASE_34/dot2-final)
> >   16  clearlinux:latest             : Ok   gcc (Clear Linux OS for Intel Architecture) 9.1.1 20190628 gcc-9-branch@272773, clang version 8.0.0 (tags/RELEASE_800/final)
> >   17  debian:8                      : Ok   gcc (Debian 4.9.2-10+deb8u2) 4.9.2, Debian clang version 3.5.0-10 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
> >   18  debian:9                      : Ok   gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, clang version 3.8.1-24 (tags/RELEASE_381/final)
> >   19  debian:experimental           : Ok   gcc (Debian 8.3.0-7) 8.3.0, clang version 7.0.1-8 (tags/RELEASE_701/final)
> >   20  debian:experimental-x-arm64   : Ok   aarch64-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0
> >   21  debian:experimental-x-mips    : Ok   mips-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0
> >   22  debian:experimental-x-mips64  : Ok   mips64-linux-gnuabi64-gcc (Debian 8.3.0-7) 8.3.0
> >   23  debian:experimental-x-mipsel  : Ok   mipsel-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0
> >   24  fedora:20                     : Ok   gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7), clang version 3.4.2 (tags/RELEASE_34/dot2-final)
> >   25  fedora:22                     : Ok   gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6), clang version 3.5.0 (tags/RELEASE_350/final)
> >   26  fedora:23                     : Ok   gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6), clang version 3.7.0 (tags/RELEASE_370/final)
> >   27  fedora:24                     : Ok   gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1), clang version 3.8.1 (tags/RELEASE_381/final)
> >   28  fedora:24-x-ARC-uClibc        : Ok   arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710
> >   29  fedora:25                     : Ok   gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1), clang version 3.9.1 (tags/RELEASE_391/final)
> >   30  fedora:26                     : Ok   gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2), clang version 4.0.1 (tags/RELEASE_401/final)
> >   31  fedora:27                     : Ok   gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6), clang version 5.0.2 (tags/RELEASE_502/final)
> >   32  fedora:28                     : Ok   gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2), clang version 6.0.1 (tags/RELEASE_601/final)
> >   33  fedora:29                     : Ok   gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2), clang version 7.0.1 (Fedora 7.0.1-6.fc29)
> >   34  fedora:30                     : Ok   gcc (GCC) 9.1.1 20190503 (Red Hat 9.1.1-1), clang version 8.0.0 (Fedora 8.0.0-1.fc30)
> >   35  fedora:30-x-ARC-glibc         : Ok   arc-linux-gcc (ARC HS GNU/Linux glibc toolchain 2019.03-rc1) 8.3.1 20190225
> >   36  fedora:30-x-ARC-uClibc        : Ok   arc-linux-gcc (ARCv2 ISA Linux uClibc toolchain 2019.03-rc1) 8.3.1 20190225
> >   37  fedora:31                     : Ok   gcc (GCC) 9.1.1 20190605 (Red Hat 9.1.1-2), clang version 8.0.0 (Fedora 8.0.0-3.fc31)
> >   38  fedora:rawhide                : Ok   gcc (GCC) 9.1.1 20190605 (Red Hat 9.1.1-2), clang version 8.0.0 (Fedora 8.0.0-3.fc31)
> >   39  gentoo-stage3-amd64:latest    : Ok   gcc (Gentoo 8.3.0-r1 p1.1) 8.3.0
> >   40  mageia:5                      : Ok   gcc (GCC) 4.9.2, clang version 3.5.2 (tags/RELEASE_352/final)
> >   41  mageia:6                      : Ok   gcc (Mageia 5.5.0-1.mga6) 5.5.0, clang version 3.9.1 (tags/RELEASE_391/final)
> >   42  mageia:7                      : Ok   gcc (Mageia 8.3.1-0.20190524.1.mga7) 8.3.1 20190524, clang version 8.0.0 (Mageia 8.0.0-1.mga7)
> >   43  manjaro:latest                : Ok   gcc (GCC) 9.1.0, clang version 8.0.0 (tags/RELEASE_800/final)
> >   44  openmandriva:cooker           : Ok   gcc (GCC) 9.1.1 20190622 (OpenMandriva)
> >   45  opensuse:15.0                 : Ok   gcc (SUSE Linux) 7.4.1 20190424 [gcc-7-branch revision 270538], clang version 5.0.1 (tags/RELEASE_501/final 312548)
> >   46  opensuse:15.1                 : Ok   gcc (SUSE Linux) 7.4.0, clang version 7.0.1 (tags/RELEASE_701/final 349238)
> >   47  opensuse:42.3                 : Ok   gcc (SUSE Linux) 4.8.5, clang version 3.8.0 (tags/RELEASE_380/final 262553)
> >   48  opensuse:tumbleweed           : Ok   gcc (SUSE Linux) 9.1.1 20190611 [gcc-9-branch revision 272147], clang version 8.0.0 (tags/RELEASE_800/final 356365)
> >   49  oraclelinux:6                 : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23.0.1)
> >   50  oraclelinux:7                 : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36.0.1), clang version 3.4.2 (tags/RELEASE_34/dot2-final)
> >   51  ubuntu:12.04                  : Ok   gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
> >   52  ubuntu:14.04                  : Ok   gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4, Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4)
> >   53  ubuntu:16.04                  : Ok   gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609, clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
> >   54  ubuntu:16.04-x-arm            : Ok   arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
> >   55  ubuntu:16.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
> >   56  ubuntu:16.04-x-powerpc        : Ok   powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
> >   57  ubuntu:16.04-x-powerpc64      : Ok   powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
> >   58  ubuntu:16.04-x-powerpc64el    : Ok   powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
> >   59  ubuntu:16.04-x-s390           : Ok   s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
> >   60  ubuntu:18.04                  : Ok   gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
> >   61  ubuntu:18.04-x-arm            : Ok   arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) 7.4.0
> >   62  ubuntu:18.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) 7.4.0
> >   63  ubuntu:18.04-x-m68k           : Ok   m68k-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
> >   64  ubuntu:18.04-x-powerpc        : Ok   powerpc-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
> >   65  ubuntu:18.04-x-powerpc64      : Ok   powerpc64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
> >   66  ubuntu:18.04-x-powerpc64el    : Ok   powerpc64le-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
> >   67  ubuntu:18.04-x-riscv64        : Ok   riscv64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
> >   68  ubuntu:18.04-x-s390           : Ok   s390x-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
> >   69  ubuntu:18.04-x-sh4            : Ok   sh4-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
> >   70  ubuntu:18.04-x-sparc64        : Ok   sparc64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
> >   71  ubuntu:18.10                  : Ok   gcc (Ubuntu 8.3.0-6ubuntu1~18.10.1) 8.3.0, clang version 7.0.0-3 (tags/RELEASE_700/final)
> >   72  ubuntu:19.04                  : Ok   gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0, clang version 8.0.0-3 (tags/RELEASE_800/final)
> >   73  ubuntu:19.04-x-alpha          : Ok   alpha-linux-gnu-gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0
> >   74  ubuntu:19.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 8.3.0-6ubuntu1) 8.3.0
> >   75  ubuntu:19.04-x-hppa           : Ok   hppa-linux-gnu-gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0
> >   76  ubuntu:19.10                  : Ok   gcc (Ubuntu 8.3.0-14ubuntu1) 8.3.0, clang version 8.0.1-+rc1-1~exp1 (tags/RELEASE_801/rc1)
> >   $
> > 
> >   # uname -a
> >   Linux quaco 5.2.0-rc7+ #4 SMP Sat Jul 6 14:43:41 -03 2019 x86_64 x86_64 x86_64 GNU/Linux
> >   # git log --oneline -1
> >   05c78468a60f tools build: Check if gettid() is available before providing helper
> >   # perf version --build-options
> >   perf version 5.2.rc7.g05c784
> >                    dwarf: [ on  ]  # HAVE_DWARF_SUPPORT
> >       dwarf_getlocations: [ on  ]  # HAVE_DWARF_GETLOCATIONS_SUPPORT
> >                    glibc: [ on  ]  # HAVE_GLIBC_SUPPORT
> >                     gtk2: [ on  ]  # HAVE_GTK2_SUPPORT
> >            syscall_table: [ on  ]  # HAVE_SYSCALL_TABLE_SUPPORT
> >                   libbfd: [ on  ]  # HAVE_LIBBFD_SUPPORT
> >                   libelf: [ on  ]  # HAVE_LIBELF_SUPPORT
> >                  libnuma: [ on  ]  # HAVE_LIBNUMA_SUPPORT
> >   numa_num_possible_cpus: [ on  ]  # HAVE_LIBNUMA_SUPPORT
> >                  libperl: [ on  ]  # HAVE_LIBPERL_SUPPORT
> >                libpython: [ on  ]  # HAVE_LIBPYTHON_SUPPORT
> >                 libslang: [ on  ]  # HAVE_SLANG_SUPPORT
> >                libcrypto: [ on  ]  # HAVE_LIBCRYPTO_SUPPORT
> >                libunwind: [ on  ]  # HAVE_LIBUNWIND_SUPPORT
> >       libdw-dwarf-unwind: [ on  ]  # HAVE_DWARF_SUPPORT
> >                     zlib: [ on  ]  # HAVE_ZLIB_SUPPORT
> >                     lzma: [ on  ]  # HAVE_LZMA_SUPPORT
> >                get_cpuid: [ on  ]  # HAVE_AUXTRACE_SUPPORT
> >                      bpf: [ on  ]  # HAVE_LIBBPF_SUPPORT
> >                      aio: [ on  ]  # HAVE_AIO_SUPPORT
> >                     zstd: [ on  ]  # HAVE_ZSTD_SUPPORT
> >   # perf test
> >    1: vmlinux symtab matches kallsyms                       : Ok
> >    2: Detect openat syscall event                           : Ok
> >    3: Detect openat syscall event on all cpus               : Ok
> >    4: Read samples using the mmap interface                 : Ok
> >    5: Test data source output                               : Ok
> >    6: Parse event definition strings                        : Ok
> >    7: Simple expression parser                              : Ok
> >    8: PERF_RECORD_* events & perf_sample fields             : Ok
> >    9: Parse perf pmu format                                 : Ok
> >   10: DSO data read                                         : Ok
> >   11: DSO data cache                                        : Ok
> >   12: DSO data reopen                                       : Ok
> >   13: Roundtrip evsel->name                                 : Ok
> >   14: Parse sched tracepoints fields                        : Ok
> >   15: syscalls:sys_enter_openat event fields                : Ok
> >   16: Setup struct perf_event_attr                          : Ok
> >   17: Match and link multiple hists                         : Ok
> >   18: 'import perf' in python                               : Ok
> >   19: Breakpoint overflow signal handler                    : Ok
> >   20: Breakpoint overflow sampling                          : Ok
> >   21: Breakpoint accounting                                 : Ok
> >   22: Watchpoint                                            :
> >   22.1: Read Only Watchpoint                                : Skip
> >   22.2: Write Only Watchpoint                               : Ok
> >   22.3: Read / Write Watchpoint                             : Ok
> >   22.4: Modify Watchpoint                                   : Ok
> >   23: Number of exit events of a simple workload            : Ok
> >   24: Software clock events period values                   : Ok
> >   25: Object code reading                                   : Ok
> >   26: Sample parsing                                        : Ok
> >   27: Use a dummy software event to keep tracking           : Ok
> >   28: Parse with no sample_id_all bit set                   : Ok
> >   29: Filter hist entries                                   : Ok
> >   30: Lookup mmap thread                                    : Ok
> >   31: Share thread mg                                       : Ok
> >   32: Sort output of hist entries                           : Ok
> >   33: Cumulate child hist entries                           : Ok
> >   34: Track with sched_switch                               : Ok
> >   35: Filter fds with revents mask in a fdarray             : Ok
> >   36: Add fd to a fdarray, making it autogrow               : Ok
> >   37: kmod_path__parse                                      : Ok
> >   38: Thread map                                            : Ok
> >   39: LLVM search and compile                               :
> >   39.1: Basic BPF llvm compile                              : Ok
> >   39.2: kbuild searching                                    : Ok
> >   39.3: Compile source for BPF prologue generation          : Ok
> >   39.4: Compile source for BPF relocation                   : Ok
> >   40: Session topology                                      : Ok
> >   41: BPF filter                                            :
> >   41.1: Basic BPF filtering                                 : Skip
> >   41.2: BPF pinning                                         : Skip
> >   41.3: BPF prologue generation                             : Skip
> >   41.4: BPF relocation checker                              : Skip
> >   42: Synthesize thread map                                 : Ok
> >   43: Remove thread map                                     : Ok
> >   44: Synthesize cpu map                                    : Ok
> >   45: Synthesize stat config                                : Ok
> >   46: Synthesize stat                                       : Ok
> >   47: Synthesize stat round                                 : Ok
> >   48: Synthesize attr update                                : Ok
> >   49: Event times                                           : Ok
> >   50: Read backward ring buffer                             : Ok
> >   51: Print cpu map                                         : Ok
> >   52: Probe SDT events                                      : Ok
> >   53: is_printable_array                                    : Ok
> >   54: Print bitmap                                          : Ok
> >   55: perf hooks                                            : Ok
> >   56: builtin clang support                                 : Skip (not compiled in)
> >   57: unit_number__scnprintf                                : Ok
> >   58: mem2node                                              : Ok
> >   59: x86 rdpmc                                             : Ok
> >   60: Convert perf time to TSC                              : Ok
> >   61: DWARF unwind                                          : Ok
> >   62: x86 instruction decoder - new instructions            : Ok
> >   63: x86 bp modify                                         : Ok
> >   64: probe libc's inet_pton & backtrace it with ping       : Ok
> >   65: Use vfs_getname probe to get syscall args filenames   : Ok
> >   66: Add vfs_getname probe to get syscall args filenames   : Ok
> >   67: Check open filename arg using perf trace + vfs_getname: Ok
> >   68: Zstd perf.data compression/decompression              : Ok
> > 
> >   $ make -C tools/perf build-test
> >   make: Entering directory '/home/acme/git/perf/tools/perf'
> >   - tarpkg: ./tests/perf-targz-src-pkg .
> >                    make_help_O: make help
> >                  make_perf_o_O: make perf.o
> >                    make_pure_O: make
> >                make_no_slang_O: make NO_SLANG=1
> >               make_no_libelf_O: make NO_LIBELF=1
> >                   make_debug_O: make DEBUG=1
> >          make_with_clangllvm_O: make LIBCLANGLLVM=1
> >             make_no_libaudit_O: make NO_LIBAUDIT=1
> >                 make_install_O: make install
> >              make_util_map_o_O: make util/map.o
> >                 make_no_gtk2_O: make NO_GTK2=1
> >        make_util_pmu_bison_o_O: make util/pmu-bison.o
> >    make_install_prefix_slash_O: make install prefix=/tmp/krava/
> >              make_no_libnuma_O: make NO_LIBNUMA=1
> >            make_no_libunwind_O: make NO_LIBUNWIND=1
> >            make_no_libbionic_O: make NO_LIBBIONIC=1
> >               make_clean_all_O: make clean all
> >             make_no_auxtrace_O: make NO_AUXTRACE=1
> >              make_no_libperl_O: make NO_LIBPERL=1
> >            make_no_libpython_O: make NO_LIBPYTHON=1
> >             make_no_demangle_O: make NO_DEMANGLE=1
> >   make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
> >            make_no_backtrace_O: make NO_BACKTRACE=1
> >                  make_cscope_O: make cscope
> >                    make_tags_O: make tags
> >              make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
> >               make_no_libbpf_O: make NO_LIBBPF=1
> >                  make_static_O: make LDFLAGS=-static
> >                   make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
> >                 make_no_newt_O: make NO_NEWT=1
> >         make_with_babeltrace_O: make LIBBABELTRACE=1
> >                     make_doc_O: make doc
> >          make_install_prefix_O: make install prefix=/tmp/krava
> >                 make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1 NO_LIBZSTD=1
> >             make_install_bin_O: make install-bin
> >   OK
> >   make: Leaving directory '/home/acme/git/perf/tools/perf'
> >   
> 
> -- 
> 
> - Arnaldo

-- 

- Arnaldo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [GIT PULL 0/8] perf/urgent fixes
  2019-07-08 15:41 Arnaldo Carvalho de Melo
@ 2019-07-08 21:50 ` Arnaldo Carvalho de Melo
  2019-07-08 21:54   ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-07-08 21:50 UTC (permalink / raw)
  To: Ingo Molnar, Thomas Gleixner
  Cc: Jiri Olsa, Namhyung Kim, Clark Williams, linux-kernel,
	linux-perf-users, David Carrillo Cisneros, Konstantin Kharlamov,
	Seeteena Thoufeek, Song Liu, Wei Li, Arnaldo Carvalho de Melo

Em Mon, Jul 08, 2019 at 12:41:59PM -0300, Arnaldo Carvalho de Melo escreveu:
> Hi Ingo,
> 
> 	Please consider pulling, I did a git merge with torvalds/master
> late last week to fixup some kernel headers ABI sync warnings, but I had
> to cherry pick some csets from my perf/core branch to get the container
> builds to all work, so ended up slipping past v5.2, oh well, but here it
> is, all containers building ok, I'll now test perf/core to then push
> that too.

Hi Ingo,

	As requested I merged tip/perf/core with this branch and now its
available as the perf-urgent-for-mingo-5.3-20190708-2 signed tag, that
has only one extra cset:

  commit 686cbe9e5d88ad639bbe26d963e7d5dafa1c1c28 (HEAD -> perf/urgent, tag: perf-urgent-for-mingo-5.3-20190708-2, acme/perf/urgent, acme.korg/perf/urgent)
  Author: Arnaldo Carvalho de Melo <acme@redhat.com>
  Date:   Mon Jul 8 13:47:14 2019 -0300
  
      tools arch x86: Sync asm/cpufeatures.h with the with the kernel

Best regards,

- Arnaldo
 
> Best regards,
> 
> - Arnaldo
> 
> Test results at the end of this message, as usual.
> 
> - Arnaldo
> 
> The following changes since commit 69bf4b6b54fb7f52b7ea9ce28d4a360cd5ec956d:
> 
>   Revert "mm: page cache: store only head pages in i_pages" (2019-07-05 19:55:18 -0700)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-5.3-20190708
> 
> for you to fetch changes up to 05c78468a60f2fd961cd0a0c01c27f288bf81204:
> 
>   tools build: Check if gettid() is available before providing helper (2019-07-07 17:53:09 -0300)
> 
> ----------------------------------------------------------------
> perf/urgent fixes:
> 
> core:
> 
>   Arnaldo Carvalho de Melo:
> 
>   - Allow references to thread objects after__machine_exit(), fixing a bug with
>     'perf sched lat' where that happens, i.e. after perf_session__delete() we
>     still have references to threads that were in a linked list whose head was
>     freed in perf_session__delete(), causing a segfault, fix it.
> 
>   Jiri Olsa:
> 
>   - Do not rely on errno values for precise_ip fallback, fixing the default
>     use case for 'perf record' on some AMD servers, when no events are specified
>     and we try to use "cycles:P", i.e. with the maximum precision level.
> 
> BPF:
> 
>   Song Liu:
> 
>   - Assign proper ff->ph in perf_event__synthesize_features(), fixing a bug
>     when using pipe mode, i.e.  'perf record -o -'.
> 
> tools headers:
> 
>   Arnaldo Carvalho de Melo:
> 
>   - Sync kvm headers with the kernel sources
> 
> perf tests:
> 
>   Seeteena Thoufeek:
> 
>   - Fix record+probe_libc_inet_pton.sh for powerpc64, where without the
>     debuginfo package for the 'ping' utility we can't resolve its symbols,
>     so admit getting "[unknown]" for that backtrace line.
> 
> perf python:
> 
>   Arnaldo Carvalho de Melo:
> 
>   - Remove -fstack-protector-strong if clang doesn't have it, fixing the build
>     with clang on fedora:30, oracleline:7, centos:7.
> 
> perf jvmti:
> 
>   Jiri Olsa:
> 
>   - Address gcc string overflow warning for strncpy()
> 
> build:
> 
>   Arnaldo Carvalho de Melo:
> 
>   - Check if gettid() is available before providing helper, as recent
>     versions of glibc started to provide gettid().
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (5):
>       tools arch kvm: Sync kvm headers with the kernel sources
>       perf thread: Allow references to thread objects after machine__exit()
>       perf annotate TUI browser: Do not use member from variable within its own initialization
>       perf python: Remove -fstack-protector-strong if clang doesn't have it
>       tools build: Check if gettid() is available before providing helper
> 
> Jiri Olsa (2):
>       perf evsel: Do not rely on errno values for precise_ip fallback
>       perf jvmti: Address gcc string overflow warning for strncpy()
> 
> Seeteena Thoufeek (1):
>       perf tests: Fix record+probe_libc_inet_pton.sh for powerpc64
> 
> Song Liu (1):
>       perf header: Assign proper ff->ph in perf_event__synthesize_features()
> 
>  tools/arch/arm64/include/uapi/asm/kvm.h            |  7 +++++
>  tools/arch/x86/include/uapi/asm/kvm.h              | 31 +++++++++++++++-------
>  tools/build/Makefile.feature                       |  1 +
>  tools/build/feature/Makefile                       |  4 +++
>  tools/build/feature/test-all.c                     |  5 ++++
>  tools/build/feature/test-gettid.c                  | 11 ++++++++
>  tools/perf/Makefile.config                         |  4 +++
>  tools/perf/jvmti/jvmti_agent.c                     |  2 ++
>  tools/perf/jvmti/libjvmti.c                        |  4 +--
>  .../tests/shell/record+probe_libc_inet_pton.sh     |  2 +-
>  tools/perf/ui/browsers/annotate.c                  |  5 ++--
>  tools/perf/util/evsel.c                            | 10 ++-----
>  tools/perf/util/header.c                           |  1 +
>  tools/perf/util/machine.c                          | 25 +++++++++++++++--
>  tools/perf/util/setup.py                           |  2 ++
>  tools/perf/util/thread.c                           | 23 +++++++++++++---
>  16 files changed, 109 insertions(+), 28 deletions(-)
>  create mode 100644 tools/build/feature/test-gettid.c
> 
> Test results:
> 
> The first ones are container based builds of tools/perf with and without libelf
> support.  Where clang is available, it is also used to build perf with/without
> libelf, and building with LIBCLANGLLVM=1 (built-in clang) with gcc and clang
> when clang and its devel libraries are installed.
> 
> The objtool and samples/bpf/ builds are disabled now that I'm switching from
> using the sources in a local volume to fetching them from a http server to
> build it inside the container, to make it easier to build in a container cluster.
> Those will come back later.
> 
> Several are cross builds, the ones with -x-ARCH and the android one, and those
> may not have all the features built, due to lack of multi-arch devel packages,
> available and being used so far on just a few, like
> debian:experimental-x-{arm64,mipsel}.
> 
> The 'perf test' one will perform a variety of tests exercising
> tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
> with a variety of command line event specifications to then intercept the
> sys_perf_event syscall to check that the perf_event_attr fields are set up as
> expected, among a variety of other unit tests.
> 
> Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
> with a variety of feature sets, exercising the build with an incomplete set of
> features as well as with a complete one. It is planned to have it run on each
> of the containers mentioned above, using some container orchestration
> infrastructure. Get in contact if interested in helping having this in place.
> 
> The '41: BPF filter' 'perf test' entry is being investigated, it
> shouldn't be with "Skip" status, some problem with BPF maps.
> 
>   $ export PERF_TARBALL=http://192.168.124.1/perf/perf-5.2.0-rc7.tar.xz
>   $ dm
>    1  alpine:3.4                    : Ok   gcc (Alpine 5.3.0) 5.3.0, clang version 3.8.0 (tags/RELEASE_380/final)
>    2  alpine:3.5                    : Ok   gcc (Alpine 6.2.1) 6.2.1 20160822, clang version 3.8.1 (tags/RELEASE_381/final)
>    3  alpine:3.6                    : Ok   gcc (Alpine 6.3.0) 6.3.0, clang version 4.0.0 (tags/RELEASE_400/final)
>    4  alpine:3.7                    : Ok   gcc (Alpine 6.4.0) 6.4.0, Alpine clang version 5.0.0 (tags/RELEASE_500/final) (based on LLVM 5.0.0)
>    5  alpine:3.8                    : Ok   gcc (Alpine 6.4.0) 6.4.0, Alpine clang version 5.0.1 (tags/RELEASE_501/final) (based on LLVM 5.0.1)
>    6  alpine:3.9                    : Ok   gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 5.0.1 (tags/RELEASE_502/final) (based on LLVM 5.0.1)
>    7  alpine:3.10                   : Ok   gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 8.0.0 (tags/RELEASE_800/final) (based on LLVM 8.0.0)
>    8  alpine:edge                   : Ok   gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 7.0.1 (tags/RELEASE_701/final) (based on LLVM 7.0.1)
>    9  amazonlinux:1                 : Ok   gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2), clang version 3.6.2 (tags/RELEASE_362/final)
>   10  amazonlinux:2                 : Ok   gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5), clang version 7.0.1 (Amazon Linux 2 7.0.1-1.amzn2.0.2)
>   11  android-ndk:r12b-arm          : Ok   arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
>   12  android-ndk:r15c-arm          : Ok   arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
>   13  centos:5                      : Ok   gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
>   14  centos:6                      : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
>   15  centos:7                      : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), clang version 3.4.2 (tags/RELEASE_34/dot2-final)
>   16  clearlinux:latest             : Ok   gcc (Clear Linux OS for Intel Architecture) 9.1.1 20190628 gcc-9-branch@272773, clang version 8.0.0 (tags/RELEASE_800/final)
>   17  debian:8                      : Ok   gcc (Debian 4.9.2-10+deb8u2) 4.9.2, Debian clang version 3.5.0-10 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
>   18  debian:9                      : Ok   gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, clang version 3.8.1-24 (tags/RELEASE_381/final)
>   19  debian:experimental           : Ok   gcc (Debian 8.3.0-7) 8.3.0, clang version 7.0.1-8 (tags/RELEASE_701/final)
>   20  debian:experimental-x-arm64   : Ok   aarch64-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0
>   21  debian:experimental-x-mips    : Ok   mips-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0
>   22  debian:experimental-x-mips64  : Ok   mips64-linux-gnuabi64-gcc (Debian 8.3.0-7) 8.3.0
>   23  debian:experimental-x-mipsel  : Ok   mipsel-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0
>   24  fedora:20                     : Ok   gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7), clang version 3.4.2 (tags/RELEASE_34/dot2-final)
>   25  fedora:22                     : Ok   gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6), clang version 3.5.0 (tags/RELEASE_350/final)
>   26  fedora:23                     : Ok   gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6), clang version 3.7.0 (tags/RELEASE_370/final)
>   27  fedora:24                     : Ok   gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1), clang version 3.8.1 (tags/RELEASE_381/final)
>   28  fedora:24-x-ARC-uClibc        : Ok   arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710
>   29  fedora:25                     : Ok   gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1), clang version 3.9.1 (tags/RELEASE_391/final)
>   30  fedora:26                     : Ok   gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2), clang version 4.0.1 (tags/RELEASE_401/final)
>   31  fedora:27                     : Ok   gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6), clang version 5.0.2 (tags/RELEASE_502/final)
>   32  fedora:28                     : Ok   gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2), clang version 6.0.1 (tags/RELEASE_601/final)
>   33  fedora:29                     : Ok   gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2), clang version 7.0.1 (Fedora 7.0.1-6.fc29)
>   34  fedora:30                     : Ok   gcc (GCC) 9.1.1 20190503 (Red Hat 9.1.1-1), clang version 8.0.0 (Fedora 8.0.0-1.fc30)
>   35  fedora:30-x-ARC-glibc         : Ok   arc-linux-gcc (ARC HS GNU/Linux glibc toolchain 2019.03-rc1) 8.3.1 20190225
>   36  fedora:30-x-ARC-uClibc        : Ok   arc-linux-gcc (ARCv2 ISA Linux uClibc toolchain 2019.03-rc1) 8.3.1 20190225
>   37  fedora:31                     : Ok   gcc (GCC) 9.1.1 20190605 (Red Hat 9.1.1-2), clang version 8.0.0 (Fedora 8.0.0-3.fc31)
>   38  fedora:rawhide                : Ok   gcc (GCC) 9.1.1 20190605 (Red Hat 9.1.1-2), clang version 8.0.0 (Fedora 8.0.0-3.fc31)
>   39  gentoo-stage3-amd64:latest    : Ok   gcc (Gentoo 8.3.0-r1 p1.1) 8.3.0
>   40  mageia:5                      : Ok   gcc (GCC) 4.9.2, clang version 3.5.2 (tags/RELEASE_352/final)
>   41  mageia:6                      : Ok   gcc (Mageia 5.5.0-1.mga6) 5.5.0, clang version 3.9.1 (tags/RELEASE_391/final)
>   42  mageia:7                      : Ok   gcc (Mageia 8.3.1-0.20190524.1.mga7) 8.3.1 20190524, clang version 8.0.0 (Mageia 8.0.0-1.mga7)
>   43  manjaro:latest                : Ok   gcc (GCC) 9.1.0, clang version 8.0.0 (tags/RELEASE_800/final)
>   44  openmandriva:cooker           : Ok   gcc (GCC) 9.1.1 20190622 (OpenMandriva)
>   45  opensuse:15.0                 : Ok   gcc (SUSE Linux) 7.4.1 20190424 [gcc-7-branch revision 270538], clang version 5.0.1 (tags/RELEASE_501/final 312548)
>   46  opensuse:15.1                 : Ok   gcc (SUSE Linux) 7.4.0, clang version 7.0.1 (tags/RELEASE_701/final 349238)
>   47  opensuse:42.3                 : Ok   gcc (SUSE Linux) 4.8.5, clang version 3.8.0 (tags/RELEASE_380/final 262553)
>   48  opensuse:tumbleweed           : Ok   gcc (SUSE Linux) 9.1.1 20190611 [gcc-9-branch revision 272147], clang version 8.0.0 (tags/RELEASE_800/final 356365)
>   49  oraclelinux:6                 : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23.0.1)
>   50  oraclelinux:7                 : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36.0.1), clang version 3.4.2 (tags/RELEASE_34/dot2-final)
>   51  ubuntu:12.04                  : Ok   gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
>   52  ubuntu:14.04                  : Ok   gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4, Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4)
>   53  ubuntu:16.04                  : Ok   gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609, clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
>   54  ubuntu:16.04-x-arm            : Ok   arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
>   55  ubuntu:16.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
>   56  ubuntu:16.04-x-powerpc        : Ok   powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
>   57  ubuntu:16.04-x-powerpc64      : Ok   powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
>   58  ubuntu:16.04-x-powerpc64el    : Ok   powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
>   59  ubuntu:16.04-x-s390           : Ok   s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
>   60  ubuntu:18.04                  : Ok   gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
>   61  ubuntu:18.04-x-arm            : Ok   arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) 7.4.0
>   62  ubuntu:18.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) 7.4.0
>   63  ubuntu:18.04-x-m68k           : Ok   m68k-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
>   64  ubuntu:18.04-x-powerpc        : Ok   powerpc-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
>   65  ubuntu:18.04-x-powerpc64      : Ok   powerpc64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
>   66  ubuntu:18.04-x-powerpc64el    : Ok   powerpc64le-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
>   67  ubuntu:18.04-x-riscv64        : Ok   riscv64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
>   68  ubuntu:18.04-x-s390           : Ok   s390x-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
>   69  ubuntu:18.04-x-sh4            : Ok   sh4-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
>   70  ubuntu:18.04-x-sparc64        : Ok   sparc64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
>   71  ubuntu:18.10                  : Ok   gcc (Ubuntu 8.3.0-6ubuntu1~18.10.1) 8.3.0, clang version 7.0.0-3 (tags/RELEASE_700/final)
>   72  ubuntu:19.04                  : Ok   gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0, clang version 8.0.0-3 (tags/RELEASE_800/final)
>   73  ubuntu:19.04-x-alpha          : Ok   alpha-linux-gnu-gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0
>   74  ubuntu:19.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 8.3.0-6ubuntu1) 8.3.0
>   75  ubuntu:19.04-x-hppa           : Ok   hppa-linux-gnu-gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0
>   76  ubuntu:19.10                  : Ok   gcc (Ubuntu 8.3.0-14ubuntu1) 8.3.0, clang version 8.0.1-+rc1-1~exp1 (tags/RELEASE_801/rc1)
>   $
> 
>   # uname -a
>   Linux quaco 5.2.0-rc7+ #4 SMP Sat Jul 6 14:43:41 -03 2019 x86_64 x86_64 x86_64 GNU/Linux
>   # git log --oneline -1
>   05c78468a60f tools build: Check if gettid() is available before providing helper
>   # perf version --build-options
>   perf version 5.2.rc7.g05c784
>                    dwarf: [ on  ]  # HAVE_DWARF_SUPPORT
>       dwarf_getlocations: [ on  ]  # HAVE_DWARF_GETLOCATIONS_SUPPORT
>                    glibc: [ on  ]  # HAVE_GLIBC_SUPPORT
>                     gtk2: [ on  ]  # HAVE_GTK2_SUPPORT
>            syscall_table: [ on  ]  # HAVE_SYSCALL_TABLE_SUPPORT
>                   libbfd: [ on  ]  # HAVE_LIBBFD_SUPPORT
>                   libelf: [ on  ]  # HAVE_LIBELF_SUPPORT
>                  libnuma: [ on  ]  # HAVE_LIBNUMA_SUPPORT
>   numa_num_possible_cpus: [ on  ]  # HAVE_LIBNUMA_SUPPORT
>                  libperl: [ on  ]  # HAVE_LIBPERL_SUPPORT
>                libpython: [ on  ]  # HAVE_LIBPYTHON_SUPPORT
>                 libslang: [ on  ]  # HAVE_SLANG_SUPPORT
>                libcrypto: [ on  ]  # HAVE_LIBCRYPTO_SUPPORT
>                libunwind: [ on  ]  # HAVE_LIBUNWIND_SUPPORT
>       libdw-dwarf-unwind: [ on  ]  # HAVE_DWARF_SUPPORT
>                     zlib: [ on  ]  # HAVE_ZLIB_SUPPORT
>                     lzma: [ on  ]  # HAVE_LZMA_SUPPORT
>                get_cpuid: [ on  ]  # HAVE_AUXTRACE_SUPPORT
>                      bpf: [ on  ]  # HAVE_LIBBPF_SUPPORT
>                      aio: [ on  ]  # HAVE_AIO_SUPPORT
>                     zstd: [ on  ]  # HAVE_ZSTD_SUPPORT
>   # perf test
>    1: vmlinux symtab matches kallsyms                       : Ok
>    2: Detect openat syscall event                           : Ok
>    3: Detect openat syscall event on all cpus               : Ok
>    4: Read samples using the mmap interface                 : Ok
>    5: Test data source output                               : Ok
>    6: Parse event definition strings                        : Ok
>    7: Simple expression parser                              : Ok
>    8: PERF_RECORD_* events & perf_sample fields             : Ok
>    9: Parse perf pmu format                                 : Ok
>   10: DSO data read                                         : Ok
>   11: DSO data cache                                        : Ok
>   12: DSO data reopen                                       : Ok
>   13: Roundtrip evsel->name                                 : Ok
>   14: Parse sched tracepoints fields                        : Ok
>   15: syscalls:sys_enter_openat event fields                : Ok
>   16: Setup struct perf_event_attr                          : Ok
>   17: Match and link multiple hists                         : Ok
>   18: 'import perf' in python                               : Ok
>   19: Breakpoint overflow signal handler                    : Ok
>   20: Breakpoint overflow sampling                          : Ok
>   21: Breakpoint accounting                                 : Ok
>   22: Watchpoint                                            :
>   22.1: Read Only Watchpoint                                : Skip
>   22.2: Write Only Watchpoint                               : Ok
>   22.3: Read / Write Watchpoint                             : Ok
>   22.4: Modify Watchpoint                                   : Ok
>   23: Number of exit events of a simple workload            : Ok
>   24: Software clock events period values                   : Ok
>   25: Object code reading                                   : Ok
>   26: Sample parsing                                        : Ok
>   27: Use a dummy software event to keep tracking           : Ok
>   28: Parse with no sample_id_all bit set                   : Ok
>   29: Filter hist entries                                   : Ok
>   30: Lookup mmap thread                                    : Ok
>   31: Share thread mg                                       : Ok
>   32: Sort output of hist entries                           : Ok
>   33: Cumulate child hist entries                           : Ok
>   34: Track with sched_switch                               : Ok
>   35: Filter fds with revents mask in a fdarray             : Ok
>   36: Add fd to a fdarray, making it autogrow               : Ok
>   37: kmod_path__parse                                      : Ok
>   38: Thread map                                            : Ok
>   39: LLVM search and compile                               :
>   39.1: Basic BPF llvm compile                              : Ok
>   39.2: kbuild searching                                    : Ok
>   39.3: Compile source for BPF prologue generation          : Ok
>   39.4: Compile source for BPF relocation                   : Ok
>   40: Session topology                                      : Ok
>   41: BPF filter                                            :
>   41.1: Basic BPF filtering                                 : Skip
>   41.2: BPF pinning                                         : Skip
>   41.3: BPF prologue generation                             : Skip
>   41.4: BPF relocation checker                              : Skip
>   42: Synthesize thread map                                 : Ok
>   43: Remove thread map                                     : Ok
>   44: Synthesize cpu map                                    : Ok
>   45: Synthesize stat config                                : Ok
>   46: Synthesize stat                                       : Ok
>   47: Synthesize stat round                                 : Ok
>   48: Synthesize attr update                                : Ok
>   49: Event times                                           : Ok
>   50: Read backward ring buffer                             : Ok
>   51: Print cpu map                                         : Ok
>   52: Probe SDT events                                      : Ok
>   53: is_printable_array                                    : Ok
>   54: Print bitmap                                          : Ok
>   55: perf hooks                                            : Ok
>   56: builtin clang support                                 : Skip (not compiled in)
>   57: unit_number__scnprintf                                : Ok
>   58: mem2node                                              : Ok
>   59: x86 rdpmc                                             : Ok
>   60: Convert perf time to TSC                              : Ok
>   61: DWARF unwind                                          : Ok
>   62: x86 instruction decoder - new instructions            : Ok
>   63: x86 bp modify                                         : Ok
>   64: probe libc's inet_pton & backtrace it with ping       : Ok
>   65: Use vfs_getname probe to get syscall args filenames   : Ok
>   66: Add vfs_getname probe to get syscall args filenames   : Ok
>   67: Check open filename arg using perf trace + vfs_getname: Ok
>   68: Zstd perf.data compression/decompression              : Ok
> 
>   $ make -C tools/perf build-test
>   make: Entering directory '/home/acme/git/perf/tools/perf'
>   - tarpkg: ./tests/perf-targz-src-pkg .
>                    make_help_O: make help
>                  make_perf_o_O: make perf.o
>                    make_pure_O: make
>                make_no_slang_O: make NO_SLANG=1
>               make_no_libelf_O: make NO_LIBELF=1
>                   make_debug_O: make DEBUG=1
>          make_with_clangllvm_O: make LIBCLANGLLVM=1
>             make_no_libaudit_O: make NO_LIBAUDIT=1
>                 make_install_O: make install
>              make_util_map_o_O: make util/map.o
>                 make_no_gtk2_O: make NO_GTK2=1
>        make_util_pmu_bison_o_O: make util/pmu-bison.o
>    make_install_prefix_slash_O: make install prefix=/tmp/krava/
>              make_no_libnuma_O: make NO_LIBNUMA=1
>            make_no_libunwind_O: make NO_LIBUNWIND=1
>            make_no_libbionic_O: make NO_LIBBIONIC=1
>               make_clean_all_O: make clean all
>             make_no_auxtrace_O: make NO_AUXTRACE=1
>              make_no_libperl_O: make NO_LIBPERL=1
>            make_no_libpython_O: make NO_LIBPYTHON=1
>             make_no_demangle_O: make NO_DEMANGLE=1
>   make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
>            make_no_backtrace_O: make NO_BACKTRACE=1
>                  make_cscope_O: make cscope
>                    make_tags_O: make tags
>              make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
>               make_no_libbpf_O: make NO_LIBBPF=1
>                  make_static_O: make LDFLAGS=-static
>                   make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
>                 make_no_newt_O: make NO_NEWT=1
>         make_with_babeltrace_O: make LIBBABELTRACE=1
>                     make_doc_O: make doc
>          make_install_prefix_O: make install prefix=/tmp/krava
>                 make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1 NO_LIBZSTD=1
>             make_install_bin_O: make install-bin
>   OK
>   make: Leaving directory '/home/acme/git/perf/tools/perf'
>   

-- 

- Arnaldo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [GIT PULL 0/8] perf/urgent fixes
@ 2019-07-08 15:41 Arnaldo Carvalho de Melo
  2019-07-08 21:50 ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-07-08 15:41 UTC (permalink / raw)
  To: Ingo Molnar, Thomas Gleixner
  Cc: Jiri Olsa, Namhyung Kim, Clark Williams, linux-kernel,
	linux-perf-users, Arnaldo Carvalho de Melo,
	David Carrillo Cisneros, Konstantin Kharlamov, Seeteena Thoufeek,
	Song Liu, Wei Li, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling, I did a git merge with torvalds/master
late last week to fixup some kernel headers ABI sync warnings, but I had
to cherry pick some csets from my perf/core branch to get the container
builds to all work, so ended up slipping past v5.2, oh well, but here it
is, all containers building ok, I'll now test perf/core to then push
that too.

Best regards,

- Arnaldo

Test results at the end of this message, as usual.

- Arnaldo

The following changes since commit 69bf4b6b54fb7f52b7ea9ce28d4a360cd5ec956d:

  Revert "mm: page cache: store only head pages in i_pages" (2019-07-05 19:55:18 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-5.3-20190708

for you to fetch changes up to 05c78468a60f2fd961cd0a0c01c27f288bf81204:

  tools build: Check if gettid() is available before providing helper (2019-07-07 17:53:09 -0300)

----------------------------------------------------------------
perf/urgent fixes:

core:

  Arnaldo Carvalho de Melo:

  - Allow references to thread objects after__machine_exit(), fixing a bug with
    'perf sched lat' where that happens, i.e. after perf_session__delete() we
    still have references to threads that were in a linked list whose head was
    freed in perf_session__delete(), causing a segfault, fix it.

  Jiri Olsa:

  - Do not rely on errno values for precise_ip fallback, fixing the default
    use case for 'perf record' on some AMD servers, when no events are specified
    and we try to use "cycles:P", i.e. with the maximum precision level.

BPF:

  Song Liu:

  - Assign proper ff->ph in perf_event__synthesize_features(), fixing a bug
    when using pipe mode, i.e.  'perf record -o -'.

tools headers:

  Arnaldo Carvalho de Melo:

  - Sync kvm headers with the kernel sources

perf tests:

  Seeteena Thoufeek:

  - Fix record+probe_libc_inet_pton.sh for powerpc64, where without the
    debuginfo package for the 'ping' utility we can't resolve its symbols,
    so admit getting "[unknown]" for that backtrace line.

perf python:

  Arnaldo Carvalho de Melo:

  - Remove -fstack-protector-strong if clang doesn't have it, fixing the build
    with clang on fedora:30, oracleline:7, centos:7.

perf jvmti:

  Jiri Olsa:

  - Address gcc string overflow warning for strncpy()

build:

  Arnaldo Carvalho de Melo:

  - Check if gettid() is available before providing helper, as recent
    versions of glibc started to provide gettid().

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Arnaldo Carvalho de Melo (5):
      tools arch kvm: Sync kvm headers with the kernel sources
      perf thread: Allow references to thread objects after machine__exit()
      perf annotate TUI browser: Do not use member from variable within its own initialization
      perf python: Remove -fstack-protector-strong if clang doesn't have it
      tools build: Check if gettid() is available before providing helper

Jiri Olsa (2):
      perf evsel: Do not rely on errno values for precise_ip fallback
      perf jvmti: Address gcc string overflow warning for strncpy()

Seeteena Thoufeek (1):
      perf tests: Fix record+probe_libc_inet_pton.sh for powerpc64

Song Liu (1):
      perf header: Assign proper ff->ph in perf_event__synthesize_features()

 tools/arch/arm64/include/uapi/asm/kvm.h            |  7 +++++
 tools/arch/x86/include/uapi/asm/kvm.h              | 31 +++++++++++++++-------
 tools/build/Makefile.feature                       |  1 +
 tools/build/feature/Makefile                       |  4 +++
 tools/build/feature/test-all.c                     |  5 ++++
 tools/build/feature/test-gettid.c                  | 11 ++++++++
 tools/perf/Makefile.config                         |  4 +++
 tools/perf/jvmti/jvmti_agent.c                     |  2 ++
 tools/perf/jvmti/libjvmti.c                        |  4 +--
 .../tests/shell/record+probe_libc_inet_pton.sh     |  2 +-
 tools/perf/ui/browsers/annotate.c                  |  5 ++--
 tools/perf/util/evsel.c                            | 10 ++-----
 tools/perf/util/header.c                           |  1 +
 tools/perf/util/machine.c                          | 25 +++++++++++++++--
 tools/perf/util/setup.py                           |  2 ++
 tools/perf/util/thread.c                           | 23 +++++++++++++---
 16 files changed, 109 insertions(+), 28 deletions(-)
 create mode 100644 tools/build/feature/test-gettid.c

Test results:

The first ones are container based builds of tools/perf with and without libelf
support.  Where clang is available, it is also used to build perf with/without
libelf, and building with LIBCLANGLLVM=1 (built-in clang) with gcc and clang
when clang and its devel libraries are installed.

The objtool and samples/bpf/ builds are disabled now that I'm switching from
using the sources in a local volume to fetching them from a http server to
build it inside the container, to make it easier to build in a container cluster.
Those will come back later.

Several are cross builds, the ones with -x-ARCH and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.

The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
with a variety of command line event specifications to then intercept the
sys_perf_event syscall to check that the perf_event_attr fields are set up as
expected, among a variety of other unit tests.

Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.

The '41: BPF filter' 'perf test' entry is being investigated, it
shouldn't be with "Skip" status, some problem with BPF maps.

  $ export PERF_TARBALL=http://192.168.124.1/perf/perf-5.2.0-rc7.tar.xz
  $ dm
   1  alpine:3.4                    : Ok   gcc (Alpine 5.3.0) 5.3.0, clang version 3.8.0 (tags/RELEASE_380/final)
   2  alpine:3.5                    : Ok   gcc (Alpine 6.2.1) 6.2.1 20160822, clang version 3.8.1 (tags/RELEASE_381/final)
   3  alpine:3.6                    : Ok   gcc (Alpine 6.3.0) 6.3.0, clang version 4.0.0 (tags/RELEASE_400/final)
   4  alpine:3.7                    : Ok   gcc (Alpine 6.4.0) 6.4.0, Alpine clang version 5.0.0 (tags/RELEASE_500/final) (based on LLVM 5.0.0)
   5  alpine:3.8                    : Ok   gcc (Alpine 6.4.0) 6.4.0, Alpine clang version 5.0.1 (tags/RELEASE_501/final) (based on LLVM 5.0.1)
   6  alpine:3.9                    : Ok   gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 5.0.1 (tags/RELEASE_502/final) (based on LLVM 5.0.1)
   7  alpine:3.10                   : Ok   gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 8.0.0 (tags/RELEASE_800/final) (based on LLVM 8.0.0)
   8  alpine:edge                   : Ok   gcc (Alpine 8.3.0) 8.3.0, Alpine clang version 7.0.1 (tags/RELEASE_701/final) (based on LLVM 7.0.1)
   9  amazonlinux:1                 : Ok   gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2), clang version 3.6.2 (tags/RELEASE_362/final)
  10  amazonlinux:2                 : Ok   gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5), clang version 7.0.1 (Amazon Linux 2 7.0.1-1.amzn2.0.2)
  11  android-ndk:r12b-arm          : Ok   arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
  12  android-ndk:r15c-arm          : Ok   arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
  13  centos:5                      : Ok   gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
  14  centos:6                      : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
  15  centos:7                      : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), clang version 3.4.2 (tags/RELEASE_34/dot2-final)
  16  clearlinux:latest             : Ok   gcc (Clear Linux OS for Intel Architecture) 9.1.1 20190628 gcc-9-branch@272773, clang version 8.0.0 (tags/RELEASE_800/final)
  17  debian:8                      : Ok   gcc (Debian 4.9.2-10+deb8u2) 4.9.2, Debian clang version 3.5.0-10 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
  18  debian:9                      : Ok   gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, clang version 3.8.1-24 (tags/RELEASE_381/final)
  19  debian:experimental           : Ok   gcc (Debian 8.3.0-7) 8.3.0, clang version 7.0.1-8 (tags/RELEASE_701/final)
  20  debian:experimental-x-arm64   : Ok   aarch64-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0
  21  debian:experimental-x-mips    : Ok   mips-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0
  22  debian:experimental-x-mips64  : Ok   mips64-linux-gnuabi64-gcc (Debian 8.3.0-7) 8.3.0
  23  debian:experimental-x-mipsel  : Ok   mipsel-linux-gnu-gcc (Debian 8.3.0-7) 8.3.0
  24  fedora:20                     : Ok   gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7), clang version 3.4.2 (tags/RELEASE_34/dot2-final)
  25  fedora:22                     : Ok   gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6), clang version 3.5.0 (tags/RELEASE_350/final)
  26  fedora:23                     : Ok   gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6), clang version 3.7.0 (tags/RELEASE_370/final)
  27  fedora:24                     : Ok   gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1), clang version 3.8.1 (tags/RELEASE_381/final)
  28  fedora:24-x-ARC-uClibc        : Ok   arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710
  29  fedora:25                     : Ok   gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1), clang version 3.9.1 (tags/RELEASE_391/final)
  30  fedora:26                     : Ok   gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2), clang version 4.0.1 (tags/RELEASE_401/final)
  31  fedora:27                     : Ok   gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6), clang version 5.0.2 (tags/RELEASE_502/final)
  32  fedora:28                     : Ok   gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2), clang version 6.0.1 (tags/RELEASE_601/final)
  33  fedora:29                     : Ok   gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2), clang version 7.0.1 (Fedora 7.0.1-6.fc29)
  34  fedora:30                     : Ok   gcc (GCC) 9.1.1 20190503 (Red Hat 9.1.1-1), clang version 8.0.0 (Fedora 8.0.0-1.fc30)
  35  fedora:30-x-ARC-glibc         : Ok   arc-linux-gcc (ARC HS GNU/Linux glibc toolchain 2019.03-rc1) 8.3.1 20190225
  36  fedora:30-x-ARC-uClibc        : Ok   arc-linux-gcc (ARCv2 ISA Linux uClibc toolchain 2019.03-rc1) 8.3.1 20190225
  37  fedora:31                     : Ok   gcc (GCC) 9.1.1 20190605 (Red Hat 9.1.1-2), clang version 8.0.0 (Fedora 8.0.0-3.fc31)
  38  fedora:rawhide                : Ok   gcc (GCC) 9.1.1 20190605 (Red Hat 9.1.1-2), clang version 8.0.0 (Fedora 8.0.0-3.fc31)
  39  gentoo-stage3-amd64:latest    : Ok   gcc (Gentoo 8.3.0-r1 p1.1) 8.3.0
  40  mageia:5                      : Ok   gcc (GCC) 4.9.2, clang version 3.5.2 (tags/RELEASE_352/final)
  41  mageia:6                      : Ok   gcc (Mageia 5.5.0-1.mga6) 5.5.0, clang version 3.9.1 (tags/RELEASE_391/final)
  42  mageia:7                      : Ok   gcc (Mageia 8.3.1-0.20190524.1.mga7) 8.3.1 20190524, clang version 8.0.0 (Mageia 8.0.0-1.mga7)
  43  manjaro:latest                : Ok   gcc (GCC) 9.1.0, clang version 8.0.0 (tags/RELEASE_800/final)
  44  openmandriva:cooker           : Ok   gcc (GCC) 9.1.1 20190622 (OpenMandriva)
  45  opensuse:15.0                 : Ok   gcc (SUSE Linux) 7.4.1 20190424 [gcc-7-branch revision 270538], clang version 5.0.1 (tags/RELEASE_501/final 312548)
  46  opensuse:15.1                 : Ok   gcc (SUSE Linux) 7.4.0, clang version 7.0.1 (tags/RELEASE_701/final 349238)
  47  opensuse:42.3                 : Ok   gcc (SUSE Linux) 4.8.5, clang version 3.8.0 (tags/RELEASE_380/final 262553)
  48  opensuse:tumbleweed           : Ok   gcc (SUSE Linux) 9.1.1 20190611 [gcc-9-branch revision 272147], clang version 8.0.0 (tags/RELEASE_800/final 356365)
  49  oraclelinux:6                 : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23.0.1)
  50  oraclelinux:7                 : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36.0.1), clang version 3.4.2 (tags/RELEASE_34/dot2-final)
  51  ubuntu:12.04                  : Ok   gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
  52  ubuntu:14.04                  : Ok   gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4, Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4)
  53  ubuntu:16.04                  : Ok   gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609, clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
  54  ubuntu:16.04-x-arm            : Ok   arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  55  ubuntu:16.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  56  ubuntu:16.04-x-powerpc        : Ok   powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  57  ubuntu:16.04-x-powerpc64      : Ok   powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  58  ubuntu:16.04-x-powerpc64el    : Ok   powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  59  ubuntu:16.04-x-s390           : Ok   s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  60  ubuntu:18.04                  : Ok   gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
  61  ubuntu:18.04-x-arm            : Ok   arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) 7.4.0
  62  ubuntu:18.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) 7.4.0
  63  ubuntu:18.04-x-m68k           : Ok   m68k-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
  64  ubuntu:18.04-x-powerpc        : Ok   powerpc-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
  65  ubuntu:18.04-x-powerpc64      : Ok   powerpc64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
  66  ubuntu:18.04-x-powerpc64el    : Ok   powerpc64le-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
  67  ubuntu:18.04-x-riscv64        : Ok   riscv64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
  68  ubuntu:18.04-x-s390           : Ok   s390x-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
  69  ubuntu:18.04-x-sh4            : Ok   sh4-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
  70  ubuntu:18.04-x-sparc64        : Ok   sparc64-linux-gnu-gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
  71  ubuntu:18.10                  : Ok   gcc (Ubuntu 8.3.0-6ubuntu1~18.10.1) 8.3.0, clang version 7.0.0-3 (tags/RELEASE_700/final)
  72  ubuntu:19.04                  : Ok   gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0, clang version 8.0.0-3 (tags/RELEASE_800/final)
  73  ubuntu:19.04-x-alpha          : Ok   alpha-linux-gnu-gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0
  74  ubuntu:19.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 8.3.0-6ubuntu1) 8.3.0
  75  ubuntu:19.04-x-hppa           : Ok   hppa-linux-gnu-gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0
  76  ubuntu:19.10                  : Ok   gcc (Ubuntu 8.3.0-14ubuntu1) 8.3.0, clang version 8.0.1-+rc1-1~exp1 (tags/RELEASE_801/rc1)
  $

  # uname -a
  Linux quaco 5.2.0-rc7+ #4 SMP Sat Jul 6 14:43:41 -03 2019 x86_64 x86_64 x86_64 GNU/Linux
  # git log --oneline -1
  05c78468a60f tools build: Check if gettid() is available before providing helper
  # perf version --build-options
  perf version 5.2.rc7.g05c784
                   dwarf: [ on  ]  # HAVE_DWARF_SUPPORT
      dwarf_getlocations: [ on  ]  # HAVE_DWARF_GETLOCATIONS_SUPPORT
                   glibc: [ on  ]  # HAVE_GLIBC_SUPPORT
                    gtk2: [ on  ]  # HAVE_GTK2_SUPPORT
           syscall_table: [ on  ]  # HAVE_SYSCALL_TABLE_SUPPORT
                  libbfd: [ on  ]  # HAVE_LIBBFD_SUPPORT
                  libelf: [ on  ]  # HAVE_LIBELF_SUPPORT
                 libnuma: [ on  ]  # HAVE_LIBNUMA_SUPPORT
  numa_num_possible_cpus: [ on  ]  # HAVE_LIBNUMA_SUPPORT
                 libperl: [ on  ]  # HAVE_LIBPERL_SUPPORT
               libpython: [ on  ]  # HAVE_LIBPYTHON_SUPPORT
                libslang: [ on  ]  # HAVE_SLANG_SUPPORT
               libcrypto: [ on  ]  # HAVE_LIBCRYPTO_SUPPORT
               libunwind: [ on  ]  # HAVE_LIBUNWIND_SUPPORT
      libdw-dwarf-unwind: [ on  ]  # HAVE_DWARF_SUPPORT
                    zlib: [ on  ]  # HAVE_ZLIB_SUPPORT
                    lzma: [ on  ]  # HAVE_LZMA_SUPPORT
               get_cpuid: [ on  ]  # HAVE_AUXTRACE_SUPPORT
                     bpf: [ on  ]  # HAVE_LIBBPF_SUPPORT
                     aio: [ on  ]  # HAVE_AIO_SUPPORT
                    zstd: [ on  ]  # HAVE_ZSTD_SUPPORT
  # perf test
   1: vmlinux symtab matches kallsyms                       : Ok
   2: Detect openat syscall event                           : Ok
   3: Detect openat syscall event on all cpus               : Ok
   4: Read samples using the mmap interface                 : Ok
   5: Test data source output                               : Ok
   6: Parse event definition strings                        : Ok
   7: Simple expression parser                              : Ok
   8: PERF_RECORD_* events & perf_sample fields             : Ok
   9: Parse perf pmu format                                 : Ok
  10: DSO data read                                         : Ok
  11: DSO data cache                                        : Ok
  12: DSO data reopen                                       : Ok
  13: Roundtrip evsel->name                                 : Ok
  14: Parse sched tracepoints fields                        : Ok
  15: syscalls:sys_enter_openat event fields                : Ok
  16: Setup struct perf_event_attr                          : Ok
  17: Match and link multiple hists                         : Ok
  18: 'import perf' in python                               : Ok
  19: Breakpoint overflow signal handler                    : Ok
  20: Breakpoint overflow sampling                          : Ok
  21: Breakpoint accounting                                 : Ok
  22: Watchpoint                                            :
  22.1: Read Only Watchpoint                                : Skip
  22.2: Write Only Watchpoint                               : Ok
  22.3: Read / Write Watchpoint                             : Ok
  22.4: Modify Watchpoint                                   : Ok
  23: Number of exit events of a simple workload            : Ok
  24: Software clock events period values                   : Ok
  25: Object code reading                                   : Ok
  26: Sample parsing                                        : Ok
  27: Use a dummy software event to keep tracking           : Ok
  28: Parse with no sample_id_all bit set                   : Ok
  29: Filter hist entries                                   : Ok
  30: Lookup mmap thread                                    : Ok
  31: Share thread mg                                       : Ok
  32: Sort output of hist entries                           : Ok
  33: Cumulate child hist entries                           : Ok
  34: Track with sched_switch                               : Ok
  35: Filter fds with revents mask in a fdarray             : Ok
  36: Add fd to a fdarray, making it autogrow               : Ok
  37: kmod_path__parse                                      : Ok
  38: Thread map                                            : Ok
  39: LLVM search and compile                               :
  39.1: Basic BPF llvm compile                              : Ok
  39.2: kbuild searching                                    : Ok
  39.3: Compile source for BPF prologue generation          : Ok
  39.4: Compile source for BPF relocation                   : Ok
  40: Session topology                                      : Ok
  41: BPF filter                                            :
  41.1: Basic BPF filtering                                 : Skip
  41.2: BPF pinning                                         : Skip
  41.3: BPF prologue generation                             : Skip
  41.4: BPF relocation checker                              : Skip
  42: Synthesize thread map                                 : Ok
  43: Remove thread map                                     : Ok
  44: Synthesize cpu map                                    : Ok
  45: Synthesize stat config                                : Ok
  46: Synthesize stat                                       : Ok
  47: Synthesize stat round                                 : Ok
  48: Synthesize attr update                                : Ok
  49: Event times                                           : Ok
  50: Read backward ring buffer                             : Ok
  51: Print cpu map                                         : Ok
  52: Probe SDT events                                      : Ok
  53: is_printable_array                                    : Ok
  54: Print bitmap                                          : Ok
  55: perf hooks                                            : Ok
  56: builtin clang support                                 : Skip (not compiled in)
  57: unit_number__scnprintf                                : Ok
  58: mem2node                                              : Ok
  59: x86 rdpmc                                             : Ok
  60: Convert perf time to TSC                              : Ok
  61: DWARF unwind                                          : Ok
  62: x86 instruction decoder - new instructions            : Ok
  63: x86 bp modify                                         : Ok
  64: probe libc's inet_pton & backtrace it with ping       : Ok
  65: Use vfs_getname probe to get syscall args filenames   : Ok
  66: Add vfs_getname probe to get syscall args filenames   : Ok
  67: Check open filename arg using perf trace + vfs_getname: Ok
  68: Zstd perf.data compression/decompression              : Ok

  $ make -C tools/perf build-test
  make: Entering directory '/home/acme/git/perf/tools/perf'
  - tarpkg: ./tests/perf-targz-src-pkg .
                   make_help_O: make help
                 make_perf_o_O: make perf.o
                   make_pure_O: make
               make_no_slang_O: make NO_SLANG=1
              make_no_libelf_O: make NO_LIBELF=1
                  make_debug_O: make DEBUG=1
         make_with_clangllvm_O: make LIBCLANGLLVM=1
            make_no_libaudit_O: make NO_LIBAUDIT=1
                make_install_O: make install
             make_util_map_o_O: make util/map.o
                make_no_gtk2_O: make NO_GTK2=1
       make_util_pmu_bison_o_O: make util/pmu-bison.o
   make_install_prefix_slash_O: make install prefix=/tmp/krava/
             make_no_libnuma_O: make NO_LIBNUMA=1
           make_no_libunwind_O: make NO_LIBUNWIND=1
           make_no_libbionic_O: make NO_LIBBIONIC=1
              make_clean_all_O: make clean all
            make_no_auxtrace_O: make NO_AUXTRACE=1
             make_no_libperl_O: make NO_LIBPERL=1
           make_no_libpython_O: make NO_LIBPYTHON=1
            make_no_demangle_O: make NO_DEMANGLE=1
  make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
           make_no_backtrace_O: make NO_BACKTRACE=1
                 make_cscope_O: make cscope
                   make_tags_O: make tags
             make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
              make_no_libbpf_O: make NO_LIBBPF=1
                 make_static_O: make LDFLAGS=-static
                  make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
                make_no_newt_O: make NO_NEWT=1
        make_with_babeltrace_O: make LIBBABELTRACE=1
                    make_doc_O: make doc
         make_install_prefix_O: make install prefix=/tmp/krava
                make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1 NO_LIBZSTD=1
            make_install_bin_O: make install-bin
  OK
  make: Leaving directory '/home/acme/git/perf/tools/perf'
  

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [GIT PULL 0/8] perf/urgent fixes
  2017-10-19 17:45 Arnaldo Carvalho de Melo
@ 2017-10-20  7:16 ` Ingo Molnar
  0 siblings, 0 replies; 19+ messages in thread
From: Ingo Molnar @ 2017-10-20  7:16 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, linux-perf-users, Adrian Hunter,
	Alexander Shishkin, Andi Kleen, Changbin Du, David Ahern,
	Hari Bathini, Hendrik Brueckner, Jin Yao, Jiri Olsa, Kan Liang,
	Kim Phillips, Li Zhijian, Namhyung Kim, Peter Zijlstra,
	Philip Li, Ravi Bangoria, Taeung Song, Thomas-Mich Richter,
	Wang Nan, Arnaldo Carvalho de Melo


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> Test results at the end of this message, as usual.
> 
> The following changes since commit 47a74bdcbfeff543f706dc0e385eebbb5d655ed2:
> 
>   Merge tag 'perf-urgent-for-mingo-4.14-20171010' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2017-10-10 19:21:37 +0200)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-4.14-20171019
> 
> for you to fetch changes up to 74f8e22c153f4464060a0c2e4cfd1d6e51af2109:
> 
>   perf test shell trace+probe_libc_inet_pton.sh: Be compatible with Debian/Ubuntu (2017-10-18 09:14:18 -0300)
> 
> ----------------------------------------------------------------
> perf/urgent fixes:
> 
> - Fix crash in perf_hpp__reset_output_field() (Jiri Olsa)
> 
> - Fix eBPF file/vendor events ambiguity in event specification (Jiri Olsa)
> 
> - Fix closing evsel fd in 'perf stat' (Jin Yao)
> 
> - Make perf test shell trace+probe_libc_inet_pton.sh pass in Debian/Ubuntu (Li Zhijian)
> 
> - Fix 'perf buildid-list --with-hits' crash when processing PERF_RECORD_NAMESPACE (Namhyung Kim)
> 
> - Fix documentation for a inexistent option 'perf record -l' (Taeung Song)
> 
> - Add long time reviewers to MAINTAINERS (Arnaldo Carvalho de Melo)
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (1):
>       perf tools: Add long time reviewers to MAINTAINERS
> 
> Jin Yao (1):
>       perf xyarray: Fix wrong processing when closing evsel fd
> 
> Jiri Olsa (3):
>       perf hists: Fix crash in perf_hpp__reset_output_field()
>       perf hists: Add extra integrity checks to fmt_free()
>       perf tools: Check wether the eBPF file exists in event parsing
> 
> Li Zhijian (1):
>       perf test shell trace+probe_libc_inet_pton.sh: Be compatible with Debian/Ubuntu
> 
> Namhyung Kim (1):
>       perf buildid-list: Fix crash when processing PERF_RECORD_NAMESPACE
> 
> Taeung Song (1):
>       perf record: Fix documentation for a inexistent option '-l'
> 
>  MAINTAINERS                                          |  2 ++
>  tools/perf/Documentation/perf-record.txt             |  4 ++--
>  tools/perf/tests/shell/trace+probe_libc_inet_pton.sh |  9 ++++++---
>  tools/perf/ui/hist.c                                 |  9 ++++++++-
>  tools/perf/util/parse-events.l                       | 17 +++++++++++++++--
>  tools/perf/util/session.c                            |  2 ++
>  tools/perf/util/xyarray.h                            |  4 ++--
>  7 files changed, 37 insertions(+), 10 deletions(-)

Pulled, thanks a lot Arnaldo!

	Ingo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [GIT PULL 0/8] perf/urgent fixes
@ 2017-10-19 17:45 Arnaldo Carvalho de Melo
  2017-10-20  7:16 ` Ingo Molnar
  0 siblings, 1 reply; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-10-19 17:45 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
	Adrian Hunter, Alexander Shishkin, Andi Kleen, Changbin Du,
	David Ahern, Hari Bathini, Hendrik Brueckner, Jin Yao, Jiri Olsa,
	Kan Liang, Kim Phillips, Li Zhijian, Namhyung Kim,
	Peter Zijlstra, Philip Li, Ravi Bangoria, Taeung Song,
	Thomas-Mich Richter, Wang Nan, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

Test results at the end of this message, as usual.

The following changes since commit 47a74bdcbfeff543f706dc0e385eebbb5d655ed2:

  Merge tag 'perf-urgent-for-mingo-4.14-20171010' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2017-10-10 19:21:37 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-4.14-20171019

for you to fetch changes up to 74f8e22c153f4464060a0c2e4cfd1d6e51af2109:

  perf test shell trace+probe_libc_inet_pton.sh: Be compatible with Debian/Ubuntu (2017-10-18 09:14:18 -0300)

----------------------------------------------------------------
perf/urgent fixes:

- Fix crash in perf_hpp__reset_output_field() (Jiri Olsa)

- Fix eBPF file/vendor events ambiguity in event specification (Jiri Olsa)

- Fix closing evsel fd in 'perf stat' (Jin Yao)

- Make perf test shell trace+probe_libc_inet_pton.sh pass in Debian/Ubuntu (Li Zhijian)

- Fix 'perf buildid-list --with-hits' crash when processing PERF_RECORD_NAMESPACE (Namhyung Kim)

- Fix documentation for a inexistent option 'perf record -l' (Taeung Song)

- Add long time reviewers to MAINTAINERS (Arnaldo Carvalho de Melo)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
      perf tools: Add long time reviewers to MAINTAINERS

Jin Yao (1):
      perf xyarray: Fix wrong processing when closing evsel fd

Jiri Olsa (3):
      perf hists: Fix crash in perf_hpp__reset_output_field()
      perf hists: Add extra integrity checks to fmt_free()
      perf tools: Check wether the eBPF file exists in event parsing

Li Zhijian (1):
      perf test shell trace+probe_libc_inet_pton.sh: Be compatible with Debian/Ubuntu

Namhyung Kim (1):
      perf buildid-list: Fix crash when processing PERF_RECORD_NAMESPACE

Taeung Song (1):
      perf record: Fix documentation for a inexistent option '-l'

 MAINTAINERS                                          |  2 ++
 tools/perf/Documentation/perf-record.txt             |  4 ++--
 tools/perf/tests/shell/trace+probe_libc_inet_pton.sh |  9 ++++++---
 tools/perf/ui/hist.c                                 |  9 ++++++++-
 tools/perf/util/parse-events.l                       | 17 +++++++++++++++--
 tools/perf/util/session.c                            |  2 ++
 tools/perf/util/xyarray.h                            |  4 ++--
 7 files changed, 37 insertions(+), 10 deletions(-)

Test results:

The first ones are container (docker) based builds of tools/perf with and
without libelf support.  Where clang is available, it is also used to build
perf with/without libelf.

The objtool and samples/bpf/ builds are disabled now that I'm switching from
using the sources in a local volume to fetching them from a http server to
build it inside the container, to make it easier to build in a container cluster.
Those will come back later.

Several are cross builds, the ones with -x-ARCH and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.

The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
with a variety of command line event specifications to then intercept the
sys_perf_event syscall to check that the perf_event_attr fields are set up as
expected, among a variety of other unit tests.

Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.

[root@seventh 7]# time dm
   1 alpine:3.4: Ok
   2 alpine:3.5: Ok
   3 alpine:3.6: Ok
   4 alpine:edge: Ok
   5 android-ndk:r12b-arm: Ok
   6 android-ndk:r15c-arm: Ok
   7 archlinux:latest: Ok
   8 centos:5: Ok
   9 centos:6: Ok
  10 centos:7: Ok
  11 debian:7: Ok
  12 debian:8: Ok
  13 debian:9: Ok
  14 debian:experimental: Ok
  15 debian:experimental-x-arm64: Ok
  16 debian:experimental-x-mips: Ok
  17 debian:experimental-x-mips64: Ok
  18 debian:experimental-x-mipsel: Ok
  19 fedora:20: Ok
  20 fedora:21: Ok
  21 fedora:22: Ok
  22 fedora:23: Ok
  23 fedora:24: Ok
  24 fedora:24-x-ARC-uClibc: FAIL

	Problem reported to the ARC toolchain developers, should be
        fixed by a new release that is about to be made available as a prebuilt
        toolchain.

  25 fedora:25: Ok
  26 fedora:26: Ok
  27 fedora:rawhide: Ok
  28 mageia:5: Ok
  29 opensuse:42.1: Ok
  30 opensuse:42.2: Ok
  31 opensuse:42.3: Ok
  32 opensuse:tumbleweed: Ok
  33 oraclelinux:6: Ok
  34 ubuntu:12.04.5: Ok
  35 ubuntu:14.04.4: Ok
  36 ubuntu:14.04.4-x-linaro-arm64: Ok
  37 ubuntu:15.04: Ok
  38 ubuntu:16.04: Ok
  39 ubuntu:16.04-x-arm: Ok
  40 ubuntu:16.04-x-arm64: Ok
  41 ubuntu:16.04-x-powerpc: Ok
  42 ubuntu:16.04-x-powerpc64: Ok
  43 ubuntu:16.04-x-powerpc64el: Ok
  44 ubuntu:16.04-x-s390: Ok
  45 ubuntu:16.10: Ok
  46 ubuntu:17.10: Ok
#
  
  # uname -a
  Linux jouet 4.14.0-rc3+ #1 SMP Fri Oct 13 12:21:12 -03 2017 x86_64 x86_64 x86_64 GNU/Linux
  # perf test
   1: vmlinux symtab matches kallsyms                       : Ok
   2: Detect openat syscall event                           : Ok
   3: Detect openat syscall event on all cpus               : Ok
   4: Read samples using the mmap interface                 : Ok
   5: Test data source output                               : Ok
   6: Parse event definition strings                        : Ok
   7: Simple expression parser                              : Ok
   8: PERF_RECORD_* events & perf_sample fields             : Ok
   9: Parse perf pmu format                                 : Ok
  10: DSO data read                                         : Ok
  11: DSO data cache                                        : Ok
  12: DSO data reopen                                       : Ok
  13: Roundtrip evsel->name                                 : Ok
  14: Parse sched tracepoints fields                        : Ok
  15: syscalls:sys_enter_openat event fields                : Ok
  16: Setup struct perf_event_attr                          : Ok
  17: Match and link multiple hists                         : Ok
  18: 'import perf' in python                               : Ok
  19: Breakpoint overflow signal handler                    : Ok
  20: Breakpoint overflow sampling                          : Ok
  21: Number of exit events of a simple workload            : Ok
  22: Software clock events period values                   : Ok
  23: Object code reading                                   : Ok
  24: Sample parsing                                        : Ok
  25: Use a dummy software event to keep tracking           : Ok
  26: Parse with no sample_id_all bit set                   : Ok
  27: Filter hist entries                                   : Ok
  28: Lookup mmap thread                                    : Ok
  29: Share thread mg                                       : Ok
  30: Sort output of hist entries                           : Ok
  31: Cumulate child hist entries                           : Ok
  32: Track with sched_switch                               : Ok
  33: Filter fds with revents mask in a fdarray             : Ok
  34: Add fd to a fdarray, making it autogrow               : Ok
  35: kmod_path__parse                                      : Ok
  36: Thread map                                            : Ok
  37: LLVM search and compile                               :
  37.1: Basic BPF llvm compile                              : Ok
  37.2: kbuild searching                                    : Ok
  37.3: Compile source for BPF prologue generation          : Ok
  37.4: Compile source for BPF relocation                   : Ok
  38: Session topology                                      : Ok
  39: BPF filter                                            :
  39.1: Basic BPF filtering                                 : Ok
  39.2: BPF pinning                                         : Ok
  39.3: BPF prologue generation                             : Ok
  39.4: BPF relocation checker                              : Ok
  40: Synthesize thread map                                 : Ok
  41: Remove thread map                                     : Ok
  42: Synthesize cpu map                                    : Ok
  43: Synthesize stat config                                : Ok
  44: Synthesize stat                                       : Ok
  45: Synthesize stat round                                 : Ok
  46: Synthesize attr update                                : Ok
  47: Event times                                           : Ok
  48: Read backward ring buffer                             : Ok
  49: Print cpu map                                         : Ok
  50: Probe SDT events                                      : Ok
  51: is_printable_array                                    : Ok
  52: Print bitmap                                          : Ok
  53: perf hooks                                            : Ok
  54: builtin clang support                                 : Skip (not compiled in)
  55: unit_number__scnprintf                                : Ok
  56: x86 rdpmc                                             : Ok
  57: Convert perf time to TSC                              : Ok
  58: DWARF unwind                                          : Ok
  59: x86 instruction decoder - new instructions            : Ok
  60: Intel cqm nmi context read                            : Skip
  61: Use vfs_getname probe to get syscall args filenames   : Ok
  62: probe libc's inet_pton & backtrace it with ping       : Ok
  63: Check open filename arg using perf trace + vfs_getname: Ok
  64: Add vfs_getname probe to get syscall args filenames   : Ok
  #

  $ make -C tools/perf build-test
  make: Entering directory '/home/acme/git/linux/tools/perf'
  - tarpkg: ./tests/perf-targz-src-pkg .
   make_install_prefix_slash_O: make install prefix=/tmp/krava/
               make_no_slang_O: make NO_SLANG=1
            make_install_bin_O: make install-bin
           make_no_libbionic_O: make NO_LIBBIONIC=1
                make_install_O: make install
  make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
             make_no_libperl_O: make NO_LIBPERL=1
            make_no_libaudit_O: make NO_LIBAUDIT=1
           make_no_backtrace_O: make NO_BACKTRACE=1
                    make_doc_O: make doc
                   make_pure_O: make
                 make_perf_o_O: make perf.o
            make_no_auxtrace_O: make NO_AUXTRACE=1
            make_no_demangle_O: make NO_DEMANGLE=1
              make_no_libelf_O: make NO_LIBELF=1
              make_no_libbpf_O: make NO_LIBBPF=1
                 make_static_O: make LDFLAGS=-static
         make_install_prefix_O: make install prefix=/tmp/krava
                make_no_newt_O: make NO_NEWT=1
       make_util_pmu_bison_o_O: make util/pmu-bison.o
             make_util_map_o_O: make util/map.o
              make_clean_all_O: make clean all
                  make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
             make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
           make_no_libunwind_O: make NO_LIBUNWIND=1
        make_with_babeltrace_O: make LIBBABELTRACE=1
         make_with_clangllvm_O: make LIBCLANGLLVM=1
           make_no_libpython_O: make NO_LIBPYTHON=1
                   make_help_O: make help
             make_no_libnuma_O: make NO_LIBNUMA=1
                   make_tags_O: make tags
                  make_debug_O: make DEBUG=1
                make_no_gtk2_O: make NO_GTK2=1
                make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
  OK
  make: Leaving directory '/home/acme/git/linux/tools/perf'
  $

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [GIT PULL 0/8] perf/urgent fixes
  2012-11-24  0:20 Arnaldo Carvalho de Melo
  2012-11-28 20:27 ` Josh Boyer
@ 2012-12-01 11:05 ` Ingo Molnar
  1 sibling, 0 replies; 19+ messages in thread
From: Ingo Molnar @ 2012-12-01 11:05 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Anton Blanchard, Arnaldo Carvalho de Melo,
	Borislav Petkov, David Ahern, David Howells, Dong Hao,
	Josh Boyer, Linus Torvalds, linux-arch, linuxppc-dev,
	Namhyung Kim, Paul Mackerras, Peter Zijlstra, Robert Richter,
	Runzhen Wang, Sukadev Bhattiprolu, Thomas Gleixner, x86,
	Xiao Guangrong, acme


* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:

> Hi Ingo,
> 
> 	Tested using a cross-compiler and directly on a Raspberry pi (ARM) with
> raspbian.
> 
> 	Please consider pulling.
> 
> - Arnaldo
> 
> The following changes since commit 18423d3562f396206e0928a71177eeb2edfed077:
> 
>   Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2012-11-13 18:51:51 +0100)
> 
> are available in the git repository at:
> 
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo
> 
> for you to fetch changes up to 7321090f6751c9987c26a8c81c63680d16a614d7:
> 
>   perf kvm: Fix building perf kvm on non x86 arches (2012-11-23 20:40:17 -0300)
> 
> ----------------------------------------------------------------
> perf/urgent fixes
> 
> . Don't build 'perf kvm stat" on non-x86 arches, fix from Xiao Guangrong.
> 
> . UAPI fixes to get perf building again in non-x86 arches, from David Howells.
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (1):
>       Merge tag 'perf-uapi-20121119' of git://git.infradead.org/users/dhowells/linux-headers into perf/urgent
> 
> David Howells (6):
>       x86: Export asm/{svm.h,vmx.h,perf_regs.h}
>       Merge branch 'x86-pre-uapi' into perf-uapi
>       tools: Define a Makefile function to do subdir processing
>       tools: Honour the O= flag when tool build called from a higher Makefile
>       tools: Pass the target in descend
>       perf: Make perf build for x86 with UAPI disintegration applied
> 
> Sukadev Bhattiprolu (1):
>       perf powerpc: Use uapi/unistd.h to fix build error
> 
> Xiao Guangrong (2):
>       perf kvm: Rename perf_kvm to perf_kvm_stat
>       perf kvm: Fix building perf kvm on non x86 arches
> 
>  Makefile                                |    6 +-
>  arch/x86/include/asm/Kbuild             |    3 +
>  include/linux/hw_breakpoint.h           |   31 +-------
>  include/uapi/linux/Kbuild               |    1 +
>  include/uapi/linux/hw_breakpoint.h      |   30 ++++++++
>  tools/Makefile                          |   24 +++---
>  tools/perf/Makefile                     |   29 +++++++-
>  tools/perf/arch/x86/include/perf_regs.h |    2 +-
>  tools/perf/builtin-kvm.c                |  121 +++++++++++++++++--------------
>  tools/perf/builtin-test.c               |    2 +-
>  tools/perf/perf.h                       |   16 +---
>  tools/perf/util/evsel.c                 |    4 +-
>  tools/perf/util/evsel.h                 |    3 +-
>  tools/perf/util/header.h                |    2 +-
>  tools/perf/util/parse-events-test.c     |    2 +-
>  tools/perf/util/parse-events.c          |    2 +-
>  tools/perf/util/parse-events.h          |    2 +-
>  tools/perf/util/pmu.h                   |    2 +-
>  tools/perf/util/session.h               |    2 +-
>  tools/scripts/Makefile.include          |   23 +++++-
>  20 files changed, 181 insertions(+), 126 deletions(-)
>  create mode 100644 include/uapi/linux/hw_breakpoint.h

Pulled, thanks a lot Arnaldo!

I'll get this to Linus ASAP.

Note: got a conflict with perf/core in tools/perf/Makefile, when 
merging in tip:master. It appeared to me that perf/core already 
included all the changes to BASIC_CFLAGS that perf/urgent 
updated, so I picked the perf/core version.

The merged result seems to work fine but please double check it 
nevertheless.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [GIT PULL 0/8] perf/urgent fixes
  2012-11-24  0:20 Arnaldo Carvalho de Melo
@ 2012-11-28 20:27 ` Josh Boyer
  2012-12-01 11:05 ` Ingo Molnar
  1 sibling, 0 replies; 19+ messages in thread
From: Josh Boyer @ 2012-11-28 20:27 UTC (permalink / raw)
  To: Ingo Molnar, Thomas Gleixner, Linus Torvalds, Arnaldo Carvalho de Melo
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Anton Blanchard,
	Arnaldo Carvalho de Melo, Borislav Petkov, David Ahern,
	David Howells, Dong Hao, linux-arch, linuxppc-dev, Namhyung Kim,
	Paul Mackerras, Peter Zijlstra, Robert Richter, Runzhen Wang,
	Sukadev Bhattiprolu, x86, Xiao Guangrong

On Fri, Nov 23, 2012 at 7:20 PM, Arnaldo Carvalho de Melo
<acme@ghostprotocols.net> wrote:
> Hi Ingo,
>
>         Tested using a cross-compiler and directly on a Raspberry pi (ARM) with
> raspbian.
>
>         Please consider pulling.
>
> - Arnaldo
>
> The following changes since commit 18423d3562f396206e0928a71177eeb2edfed077:
>
>   Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2012-11-13 18:51:51 +0100)
>
> are available in the git repository at:
>
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo
>
> for you to fetch changes up to 7321090f6751c9987c26a8c81c63680d16a614d7:
>
>   perf kvm: Fix building perf kvm on non x86 arches (2012-11-23 20:40:17 -0300)
>
> ----------------------------------------------------------------
> perf/urgent fixes
>
> . Don't build 'perf kvm stat" on non-x86 arches, fix from Xiao Guangrong.
>
> . UAPI fixes to get perf building again in non-x86 arches, from David Howells.
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (1):
>       Merge tag 'perf-uapi-20121119' of git://git.infradead.org/users/dhowells/linux-headers into perf/urgent
>
> David Howells (6):
>       x86: Export asm/{svm.h,vmx.h,perf_regs.h}
>       Merge branch 'x86-pre-uapi' into perf-uapi
>       tools: Define a Makefile function to do subdir processing
>       tools: Honour the O= flag when tool build called from a higher Makefile
>       tools: Pass the target in descend
>       perf: Make perf build for x86 with UAPI disintegration applied
>
> Sukadev Bhattiprolu (1):
>       perf powerpc: Use uapi/unistd.h to fix build error
>
> Xiao Guangrong (2):
>       perf kvm: Rename perf_kvm to perf_kvm_stat
>       perf kvm: Fix building perf kvm on non x86 arches

I probably sound like a broken record at this point, but I've not seen
this go into any tip branch, nor is it in Linus' tree.  Hopefully this
gets pulled before 3.7 is released.

josh

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [GIT PULL 0/8] perf/urgent fixes
@ 2012-11-24  0:20 Arnaldo Carvalho de Melo
  2012-11-28 20:27 ` Josh Boyer
  2012-12-01 11:05 ` Ingo Molnar
  0 siblings, 2 replies; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-11-24  0:20 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Anton Blanchard,
	Arnaldo Carvalho de Melo, Borislav Petkov, David Ahern,
	David Howells, Dong Hao, Josh Boyer, Linus Torvalds, linux-arch,
	linuxppc-dev, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
	Robert Richter, Runzhen Wang, Sukadev Bhattiprolu,
	Thomas Gleixner, x86, Xiao Guangrong, acme

Hi Ingo,

	Tested using a cross-compiler and directly on a Raspberry pi (ARM) with
raspbian.

	Please consider pulling.

- Arnaldo

The following changes since commit 18423d3562f396206e0928a71177eeb2edfed077:

  Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2012-11-13 18:51:51 +0100)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo

for you to fetch changes up to 7321090f6751c9987c26a8c81c63680d16a614d7:

  perf kvm: Fix building perf kvm on non x86 arches (2012-11-23 20:40:17 -0300)

----------------------------------------------------------------
perf/urgent fixes

. Don't build 'perf kvm stat" on non-x86 arches, fix from Xiao Guangrong.

. UAPI fixes to get perf building again in non-x86 arches, from David Howells.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
      Merge tag 'perf-uapi-20121119' of git://git.infradead.org/users/dhowells/linux-headers into perf/urgent

David Howells (6):
      x86: Export asm/{svm.h,vmx.h,perf_regs.h}
      Merge branch 'x86-pre-uapi' into perf-uapi
      tools: Define a Makefile function to do subdir processing
      tools: Honour the O= flag when tool build called from a higher Makefile
      tools: Pass the target in descend
      perf: Make perf build for x86 with UAPI disintegration applied

Sukadev Bhattiprolu (1):
      perf powerpc: Use uapi/unistd.h to fix build error

Xiao Guangrong (2):
      perf kvm: Rename perf_kvm to perf_kvm_stat
      perf kvm: Fix building perf kvm on non x86 arches

 Makefile                                |    6 +-
 arch/x86/include/asm/Kbuild             |    3 +
 include/linux/hw_breakpoint.h           |   31 +-------
 include/uapi/linux/Kbuild               |    1 +
 include/uapi/linux/hw_breakpoint.h      |   30 ++++++++
 tools/Makefile                          |   24 +++---
 tools/perf/Makefile                     |   29 +++++++-
 tools/perf/arch/x86/include/perf_regs.h |    2 +-
 tools/perf/builtin-kvm.c                |  121 +++++++++++++++++--------------
 tools/perf/builtin-test.c               |    2 +-
 tools/perf/perf.h                       |   16 +---
 tools/perf/util/evsel.c                 |    4 +-
 tools/perf/util/evsel.h                 |    3 +-
 tools/perf/util/header.h                |    2 +-
 tools/perf/util/parse-events-test.c     |    2 +-
 tools/perf/util/parse-events.c          |    2 +-
 tools/perf/util/parse-events.h          |    2 +-
 tools/perf/util/pmu.h                   |    2 +-
 tools/perf/util/session.h               |    2 +-
 tools/scripts/Makefile.include          |   23 +++++-
 20 files changed, 181 insertions(+), 126 deletions(-)
 create mode 100644 include/uapi/linux/hw_breakpoint.h

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2019-07-09 11:23 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-05 15:07 [GIT PULL 0/8] perf/urgent fixes Arnaldo Carvalho de Melo
2019-02-05 15:07 ` [PATCH 1/8] perf tests evsel-tp-sched: Fix bitwise operator Arnaldo Carvalho de Melo
2019-02-05 15:07 ` [PATCH 2/8] perf mem/c2c: Fix perf_mem_events to support powerpc Arnaldo Carvalho de Melo
2019-02-05 15:07 ` [PATCH 3/8] perf clang: Do not use 'return std::move(something)' Arnaldo Carvalho de Melo
2019-02-05 15:07 ` [PATCH 4/8] tools headers uapi: Sync linux/in.h copy from the kernel sources Arnaldo Carvalho de Melo
2019-02-05 15:07 ` [PATCH 5/8] perf symbols: Add fallback definitions for GELF_ST_VISIBILITY() Arnaldo Carvalho de Melo
2019-02-05 15:07 ` [PATCH 6/8] perf symbols: Filter out hidden symbols from labels Arnaldo Carvalho de Melo
2019-02-05 15:07 ` [PATCH 7/8] perf trace: Support multiple "vfs_getname" probes Arnaldo Carvalho de Melo
2019-02-05 15:07 ` [PATCH 8/8] perf script python: Add Python3 support to tests/attr.py Arnaldo Carvalho de Melo
2019-02-09 12:15 ` [GIT PULL 0/8] perf/urgent fixes Ingo Molnar
  -- strict thread matches above, loose matches on Subject: below --
2019-07-08 15:41 Arnaldo Carvalho de Melo
2019-07-08 21:50 ` Arnaldo Carvalho de Melo
2019-07-08 21:54   ` Arnaldo Carvalho de Melo
2019-07-09 11:23     ` Ingo Molnar
2017-10-19 17:45 Arnaldo Carvalho de Melo
2017-10-20  7:16 ` Ingo Molnar
2012-11-24  0:20 Arnaldo Carvalho de Melo
2012-11-28 20:27 ` Josh Boyer
2012-12-01 11:05 ` Ingo Molnar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).