linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL 00/30] perf/core improvements and fixes
@ 2017-06-30 22:24 Arnaldo Carvalho de Melo
  2017-06-30 22:24 ` [PATCH 01/30] perf tests: Add platform dependency to test 15 Arnaldo Carvalho de Melo
                   ` (30 more replies)
  0 siblings, 31 replies; 44+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-06-30 22:24 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Alexander Shishkin, Andi Kleen, Colin King, Dan Carpenter,
	David Ahern, Hendrik Brueckner, Jiri Olsa, linux-s390,
	Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, Stephane Eranian,
	Thomas 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 8e70e8409102a37ab066bd91007b75fd5d113931:

  Merge tag 'perf-core-for-mingo-4.13-20170621' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-06-21 20:11:53 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.13-20170630

for you to fetch changes up to 644e0840ad4615e032d67adec6ee60f821b669fe:

  perf auxtrace: Add CPU filter support (2017-06-30 11:50:55 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

Intel PT:

- Support "ptwrite" instructio, a way to stuff 32 or 64 bit values into
  the Intel PT trace (Adrian Hunter)

- Support power events in Intel PT to report changes to C-state (Adrian
  Hunter)

- Synthesize Intel PT events as PERF_RECORD_SAMPLE records with a
  perf_event_attr.type (PERF_TYPE_SYNTH) just after the range used by the
  kernel, i.e. right after what is allocated for PMUs, at INT_MAX + 1U,
  attr.config will have the identification for the synthesized event and
  the PERF_SAMPLE_RAW payload will have its fields (Adrian Hunter)

Infrastructure:

- Remove warning() and error(), using instead pr_warning() and
  pr_error(), consolidating error reporting (Arnaldo Carvalho de Melo)

- Add platform dependency to 'perf test 15' (Thomas Richter)

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

----------------------------------------------------------------
Adrian Hunter (19):
      x86/insn: perf tools: Add new ptwrite instruction
      perf script: Add 'synth' event type for synthesized events
      tools include: Add byte-swapping macros to kernel.h
      perf auxtrace: Add itrace option to output ptwrite events
      perf auxtrace: Add itrace option to output power events
      perf script: Add 'synth' field for synthesized event payloads
      perf script: Add synthesized Intel PT power and ptwrite events
      perf intel-pt: Factor out common code synthesizing event samples
      perf intel-pt: Remove unused instructions_sample_period
      perf intel-pt: Join needlessly wrapped lines
      perf intel-pt: Tidy Intel PT evsel lookup into separate function
      perf intel-pt: Tidy messages into called function intel_pt_synth_event()
      perf intel-pt: Factor out intel_pt_set_event_name()
      perf intel-pt: Move code in intel_pt_synth_events() to simplify attr setting
      perf intel-pt: Synthesize new power and "ptwrite" events
      perf intel-pt: Add example script for power events and PTWRITE
      perf intel-pt: Update documentation to include new ptwrite and power events
      perf intel-pt: Do not use TSC packets for calculating CPU cycles to TSC
      perf auxtrace: Add CPU filter support

Arnaldo Carvalho de Melo (9):
      perf help: Introduce exec_failed() to avoid code duplication
      perf help: Elliminate dup code for reporting
      perf help: Use pr_warning()
      perf config: Use pr_warning()
      perf event-parse: Use pr_warning()
      perf tools: Remove warning()
      perf tools: Replace error() with pr_err()
      perf config: Do not die when parsing u64 or int config values
      perf tools: Kill die()

Colin Ian King (1):
      perf jit: fix typo: "incalid" -> "invalid"

Thomas Richter (1):
      perf tests: Add platform dependency to test 15

 arch/x86/lib/x86-opcode-map.txt                    |   2 +-
 tools/include/linux/kernel.h                       |  35 +-
 tools/objtool/arch/x86/insn/x86-opcode-map.txt     |   2 +-
 tools/perf/Documentation/intel-pt.txt              |  42 +-
 tools/perf/Documentation/itrace.txt                |   8 +-
 tools/perf/Documentation/perf-script.txt           |   6 +-
 tools/perf/arch/x86/tests/insn-x86-dat-32.c        |  12 +
 tools/perf/arch/x86/tests/insn-x86-dat-64.c        |  30 +
 tools/perf/arch/x86/tests/insn-x86-dat-src.c       |  30 +
 tools/perf/builtin-c2c.c                           |   4 +-
 tools/perf/builtin-diff.c                          |   5 +-
 tools/perf/builtin-help.c                          |  48 +-
 tools/perf/builtin-kmem.c                          |   4 +-
 tools/perf/builtin-record.c                        |   4 +-
 tools/perf/builtin-report.c                        |   8 +-
 tools/perf/builtin-sched.c                         |   2 +-
 tools/perf/builtin-script.c                        | 205 ++++++-
 tools/perf/builtin-stat.c                          |   4 +-
 tools/perf/builtin-top.c                           |   2 +-
 tools/perf/jvmti/jvmti_agent.c                     |   2 +-
 .../perf/scripts/python/bin/intel-pt-events-record |  13 +
 .../perf/scripts/python/bin/intel-pt-events-report |   3 +
 tools/perf/scripts/python/intel-pt-events.py       | 128 +++++
 tools/perf/tests/attr.c                            |  10 +-
 tools/perf/tests/attr.py                           |  48 ++
 tools/perf/tests/parse-events.c                    |  13 -
 tools/perf/util/auxtrace.c                         |  18 +
 tools/perf/util/auxtrace.h                         |   6 +
 tools/perf/util/config.c                           |  43 +-
 tools/perf/util/config.h                           |   4 +-
 tools/perf/util/data-convert-bt.c                  |   6 +-
 tools/perf/util/event.h                            | 121 ++++
 tools/perf/util/help-unknown-cmd.c                 |   2 +-
 .../perf/util/intel-pt-decoder/intel-pt-decoder.c  |  14 +
 .../perf/util/intel-pt-decoder/x86-opcode-map.txt  |   2 +-
 tools/perf/util/intel-pt.c                         | 623 +++++++++++++++------
 tools/perf/util/sort.c                             |  22 +-
 tools/perf/util/trace-event-parse.c                |   4 +-
 tools/perf/util/usage.c                            |  58 --
 tools/perf/util/util.h                             |   4 -
 40 files changed, 1228 insertions(+), 369 deletions(-)
 create mode 100644 tools/perf/scripts/python/bin/intel-pt-events-record
 create mode 100644 tools/perf/scripts/python/bin/intel-pt-events-report
 create mode 100644 tools/perf/scripts/python/intel-pt-events.py

Test results:

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

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.

  # 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 archlinux:latest: Ok
   7 centos:5: Ok
   8 centos:6: Ok
   9 centos:7: Ok
  10 debian:7: Ok
  11 debian:8: Ok
  12 debian:9: Ok
  13 debian:experimental: Ok
  14 debian:experimental-x-arm64: Ok
  15 debian:experimental-x-mips: Ok
  16 debian:experimental-x-mips64: Ok
  17 debian:experimental-x-mipsel: Ok
  18 fedora:20: Ok
  19 fedora:21: Ok
  20 fedora:22: Ok
  21 fedora:23: Ok
  22 fedora:24: Ok
  23 fedora:24-x-ARC-uClibc: Ok
  24 fedora:25: Ok
  25 fedora:rawhide: Ok
  26 mageia:5: Ok
  27 opensuse:13.2: Ok
  28 opensuse:42.1: Ok
  29 opensuse:tumbleweed: Ok
  30 ubuntu:12.04.5: Ok
  31 ubuntu:14.04.4: Ok
  32 ubuntu:14.04.4-x-linaro-arm64: Ok
  33 ubuntu:15.10: Ok
  34 ubuntu:16.04: Ok
  35 ubuntu:16.04-x-arm: Ok
  36 ubuntu:16.04-x-arm64: Ok
  37 ubuntu:16.04-x-powerpc: Ok
  38 ubuntu:16.04-x-powerpc64: Ok
  39 ubuntu:16.04-x-powerpc64el: Ok
  40 ubuntu:16.04-x-s390: Ok
  41 ubuntu:16.10: Ok
  42 ubuntu:17.04: Ok
  43 ubuntu:17.10: Ok

  # uname -a
  Linux jouet 4.12.0-rc6+ #3 SMP Tue Jun 27 15:12:38 -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: Parse event definition strings             : Ok
   6: Simple expression parser                   : Ok
   7: PERF_RECORD_* events & perf_sample fields  : Ok
   8: Parse perf pmu format                      : Ok
   9: DSO data read                              : Ok
  10: DSO data cache                             : Ok
  11: DSO data reopen                            : Ok
  12: Roundtrip evsel->name                      : Ok
  13: Parse sched tracepoints fields             : Ok
  14: syscalls:sys_enter_openat event fields     : Ok
  15: Setup struct perf_event_attr               : Ok
  16: Match and link multiple hists              : Ok
  17: 'import perf' in python                    : Ok
  18: Breakpoint overflow signal handler         : Ok
  19: Breakpoint overflow sampling               : Ok
  20: Number of exit events of a simple workload : Ok
  21: Software clock events period values        : Ok
  22: Object code reading                        : Ok
  23: Sample parsing                             : Ok
  24: Use a dummy software event to keep tracking: Ok
  25: Parse with no sample_id_all bit set        : Ok
  26: Filter hist entries                        : Ok
  27: Lookup mmap thread                         : Ok
  28: Share thread mg                            : Ok
  29: Sort output of hist entries                : Ok
  30: Cumulate child hist entries                : Ok
  31: Track with sched_switch                    : Ok
  32: Filter fds with revents mask in a fdarray  : Ok
  33: Add fd to a fdarray, making it autogrow    : Ok
  34: kmod_path__parse                           : Ok
  35: Thread map                                 : Ok
  36: LLVM search and compile                    :
  36.1: Basic BPF llvm compile                    : Ok
  36.2: kbuild searching                          : Ok
  36.3: Compile source for BPF prologue generation: Ok
  36.4: Compile source for BPF relocation         : Ok
  37: Session topology                           : Ok
  38: BPF filter                                 :
  38.1: Basic BPF filtering                      : Ok
  38.2: BPF pinning                              : Ok
  38.3: BPF prologue generation                  : Ok
  38.4: BPF relocation checker                   : Ok
  39: Synthesize thread map                      : Ok
  40: Remove thread map                          : Ok
  41: Synthesize cpu map                         : Ok
  42: Synthesize stat config                     : Ok
  43: Synthesize stat                            : Ok
  44: Synthesize stat round                      : Ok
  45: Synthesize attr update                     : Ok
  46: Event times                                : Ok
  47: Read backward ring buffer                  : Ok
  48: Print cpu map                              : Ok
  49: Probe SDT events                           : Ok
  50: is_printable_array                         : Ok
  51: Print bitmap                               : Ok
  52: perf hooks                                 : Ok
  53: builtin clang support                      : Skip (not compiled in)
  54: unit_number__scnprintf                     : Ok
  55: x86 rdpmc                                  : Ok
  56: Convert perf time to TSC                   : Ok
  57: DWARF unwind                               : Ok
  58: x86 instruction decoder - new instructions : Ok
  59: Intel cqm nmi context read                 : Skip
  #

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

^ permalink raw reply	[flat|nested] 44+ messages in thread
* [GIT PULL 00/30] perf/core improvements and fixes
@ 2019-03-12  2:01 Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 44+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-03-12  2:01 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Jiri Olsa, Namhyung Kim, Clark Williams, linux-kernel,
	linux-perf-users, Arnaldo Carvalho de Melo, Adrian Hunter,
	Andi Kleen, Joseph Qi, Martin Liška, Seeteena Thoufeek,
	Stephane Eranian, Tony Jones, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

Best regards,

- Arnaldo

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

The following changes since commit b339da480315505aa28a723a983217ebcff95c86:

  Merge tag 'perf-core-for-mingo-5.1-20190307' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2019-03-09 17:00:17 +0100)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-5.1-20190311

for you to fetch changes up to dfcbc2f2994b8a3af3605a26dc29c07ad7378bf4:

  tools lib bpf: Fix the build by adding a missing stdarg.h include (2019-03-11 17:14:31 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

kernel:

  Stephane Eranian :

  - Restore mmap record type correctly when handling PERF_RECORD_MMAP2
    events, as the same template is used for all the threads interested
    in mmap events, some may want just PERF_RECORD_MMAP, while some
    may want the extra info in MMAP2 records.

perf probe:

  Adrian Hunter:

  - Fix getting the kernel map, because since changes related to x86 PTI
    entry trampolines handling, there are more than one kernel map.

perf script:

  Andi Kleen:

  - Support insn output for normal samples, i.e.:

    perf script -F ip,sym,insn --xed

    Will fetch the sample IP from the thread address space and feed it
    to Intel's XED disassembler, producing lines such as:

      ffffffffa4068804 native_write_msr            wrmsr
      ffffffffa415b95e __hrtimer_next_event_base   movq  0x18(%rax), %rdx

    That match 'perf annotate's output.

  - Make the --cpu filter apply to  PERF_RECORD_COMM/FORK/... events, in
    addition to PERF_RECORD_SAMPLE.

perf report:

  - Add a new --samples option to save a small random number of samples
    per hist entry, using a reservoir technique to select a representative
    number of samples.

    Then allow browsing the samples using 'perf script' as part of the hist
    entry context menu. This automatically adds the right filters, so only
    the thread or CPU of the sample is displayed. Then we use less' search
    functionality to directly jump to the time stamp of the selected sample.

    It uses different menus for assembler and source display.  Assembler
    needs xed installed and source needs debuginfo.

  - Fix the UI browser scripts pop up menu when there are many scripts
    available.

perf report:

  Andi Kleen:

  - Add 'time' sort option. E.g.:

    % perf report --sort time,overhead,symbol --time-quantum 1ms --stdio
    ...
         0.67%  277061.87300  [.] _dl_start
         0.50%  277061.87300  [.] f1
         0.50%  277061.87300  [.] f2
         0.33%  277061.87300  [.] main
         0.29%  277061.87300  [.] _dl_lookup_symbol_x
         0.29%  277061.87300  [.] dl_main
         0.29%  277061.87300  [.] do_lookup_x
         0.17%  277061.87300  [.] _dl_debug_initialize
         0.17%  277061.87300  [.] _dl_init_paths
         0.08%  277061.87300  [.] check_match
         0.04%  277061.87300  [.] _dl_count_modids
         1.33%  277061.87400  [.] f1
         1.33%  277061.87400  [.] f2
         1.33%  277061.87400  [.] main
         1.17%  277061.87500  [.] main
         1.08%  277061.87500  [.] f1
         1.08%  277061.87500  [.] f2
         1.00%  277061.87600  [.] main
         0.83%  277061.87600  [.] f1
         0.83%  277061.87600  [.] f2
         1.00%  277061.87700  [.] main

tools headers:

  Arnaldo Carvalho de Melo:

  - Update x86's syscall_64.tbl, no change in tools/perf behaviour.

  -  Sync copies asm-generic/unistd.h and linux/in with the kernel sources.

perf data:

  Jiri Olsa:

  - Prep work to support having perf.data stored as a directory, with one
    file per CPU, that ultimately will allow having one ring buffer reading
    thread per CPU.

Vendor events:

  Martin Liška:

  - perf PMU events for AMD Family 17h.

perf script python:

  Tony Jones:

  - Add python3 support for the remaining Intel PT related scripts, with
    these we should have a clean build of perf with python3 while still
    supporting the build with python2.

libbpf:

  Arnaldo Carvalho de Melo:

  - Fix the build on uCLibc, adding the missing stdarg.h since we use
    va_list in one typedef.

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

----------------------------------------------------------------
Adrian Hunter (1):
      perf probe: Fix getting the kernel map

Andi Kleen (14):
      perf script: Support insn output for normal samples
      perf report: Support output in nanoseconds
      perf time-utils: Add utility function to print time stamps in nanoseconds
      perf report: Parse time quantum
      perf report: Use less for scripts output
      perf script: Filter COMM/FORK/.. events by CPU
      perf report: Support time sort key
      perf report: Support running scripts for current time range
      perf report: Support builtin perf script in scripts menu
      perf report: Implement browsing of individual samples
      perf tools: Add some new tips describing the new options
      perf script: Add array bound checking to list_scripts
      perf ui browser: Fix ui popup argv browser for many entries
      perf tools report: Add custom scripts to script menu

Arnaldo Carvalho de Melo (4):
      perf tools: Update x86's syscall_64.tbl, no change in tools/perf behaviour
      tools headers uapi: Sync copy of asm-generic/unistd.h with the kernel sources
      tools headers uapi: Update linux/in.h copy
      tools lib bpf: Fix the build by adding a missing stdarg.h include

Jiri Olsa (6):
      perf data: Support having perf.data stored as a directory
      perf data: Don't store auxtrace index for directory data file
      perf data: Add perf_data__update_dir() function
      perf data: Make perf_data__size() work over directory
      perf header: Add DIR_FORMAT feature to describe directory data
      perf session: Add process callback to reader object

Martin Liška (1):
      perf vendor events amd: perf PMU events for AMD Family 17h

Stephane Eranian (1):
      perf/core: Restore mmap record type correctly

Tony Jones (4):
      perf script python: Add Python3 support to exported-sql-viewer.py
      perf script python: Add Python3 support to export-to-postgresql.py
      perf script python: Add Python3 support to export-to-sqlite.py
      perf script python: Add printdate function to SQL exporters

 kernel/events/core.c                               |   2 +
 tools/arch/arm64/include/uapi/asm/unistd.h         |   2 +
 tools/include/uapi/asm-generic/unistd.h            | 149 ++++++++---
 tools/include/uapi/linux/in.h                      |   9 +-
 tools/lib/bpf/libbpf.h                             |   1 +
 tools/perf/Documentation/perf-config.txt           |  14 +
 tools/perf/Documentation/perf-report.txt           |  13 +
 tools/perf/Documentation/tips.txt                  |   7 +
 tools/perf/arch/x86/entry/syscalls/syscall_64.tbl  |   6 +-
 tools/perf/arch/x86/util/Build                     |   1 +
 tools/perf/arch/x86/util/archinsn.c                |  26 ++
 tools/perf/builtin-record.c                        |   4 +-
 tools/perf/builtin-report.c                        |  45 ++++
 tools/perf/builtin-script.c                        | 111 +++++---
 tools/perf/builtin.h                               |   3 +-
 .../perf/pmu-events/arch/x86/amdfam17h/branch.json |  12 +
 .../perf/pmu-events/arch/x86/amdfam17h/cache.json  | 287 +++++++++++++++++++++
 tools/perf/pmu-events/arch/x86/amdfam17h/core.json | 134 ++++++++++
 .../arch/x86/amdfam17h/floating-point.json         | 168 ++++++++++++
 .../perf/pmu-events/arch/x86/amdfam17h/memory.json | 162 ++++++++++++
 .../perf/pmu-events/arch/x86/amdfam17h/other.json  |  65 +++++
 tools/perf/pmu-events/arch/x86/mapfile.csv         |   1 +
 tools/perf/scripts/python/export-to-postgresql.py  |  61 +++--
 tools/perf/scripts/python/export-to-sqlite.py      |  26 +-
 tools/perf/scripts/python/exported-sql-viewer.py   |  42 ++-
 tools/perf/ui/browser.c                            |  10 +-
 tools/perf/ui/browsers/Build                       |   1 +
 tools/perf/ui/browsers/annotate.c                  |   2 +-
 tools/perf/ui/browsers/hists.c                     | 141 ++++++++--
 tools/perf/ui/browsers/res_sample.c                |  91 +++++++
 tools/perf/ui/browsers/scripts.c                   | 274 ++++++++++----------
 tools/perf/util/archinsn.h                         |  12 +
 tools/perf/util/data.c                             |  96 ++++++-
 tools/perf/util/data.h                             |  12 +-
 tools/perf/util/header.c                           |  44 +++-
 tools/perf/util/header.h                           |   5 +
 tools/perf/util/hist.c                             |  50 ++++
 tools/perf/util/hist.h                             |  31 ++-
 tools/perf/util/probe-event.c                      |   6 +-
 tools/perf/util/session.c                          |  27 +-
 tools/perf/util/sort.c                             |  39 +++
 tools/perf/util/sort.h                             |  10 +
 tools/perf/util/symbol.c                           |   4 +
 tools/perf/util/symbol_conf.h                      |   3 +
 tools/perf/util/time-utils.c                       |   8 +
 tools/perf/util/time-utils.h                       |   1 +
 46 files changed, 1931 insertions(+), 287 deletions(-)
 create mode 100644 tools/perf/arch/x86/util/archinsn.c
 create mode 100644 tools/perf/pmu-events/arch/x86/amdfam17h/branch.json
 create mode 100644 tools/perf/pmu-events/arch/x86/amdfam17h/cache.json
 create mode 100644 tools/perf/pmu-events/arch/x86/amdfam17h/core.json
 create mode 100644 tools/perf/pmu-events/arch/x86/amdfam17h/floating-point.json
 create mode 100644 tools/perf/pmu-events/arch/x86/amdfam17h/memory.json
 create mode 100644 tools/perf/pmu-events/arch/x86/amdfam17h/other.json
 create mode 100644 tools/perf/ui/browsers/res_sample.c
 create mode 100644 tools/perf/util/archinsn.h

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.tar.xz
   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   arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
  11 android-ndk:r15c-arm          : Ok   arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
  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-17) 8.2.1 20190204
  20 debian:experimental-x-arm64   : Ok   aarch64-linux-gnu-gcc (Debian 8.2.0-11) 8.2.0
  21 debian:experimental-x-mips    : Ok   mips-linux-gnu-gcc (Debian 8.2.0-11) 8.2.0
  22 debian:experimental-x-mips64  : Ok   mips64-linux-gnuabi64-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:22                     : Ok   gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
  26 fedora:23                     : Ok   gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
  27 fedora:24                     : Ok   gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
  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)
  30 fedora:26                     : Ok   gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2)
  31 fedora:27                     : Ok   gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6)
  32 fedora:28                     : Ok   gcc (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6)
  33 fedora:29                     : Ok   gcc (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6)
  34 fedora:30                     : Ok   gcc (GCC) 9.0.1 20190203 (Red Hat 9.0.1-0.3)
  35 fedora:rawhide                : Ok   gcc (GCC) 9.0.1 20190209 (Red Hat 9.0.1-0.4)
  36 gentoo-stage3-amd64:latest    : Ok   gcc (Gentoo 7.3.0-r3 p1.4) 7.3.0
  37 mageia:5                      : Ok   gcc (GCC) 4.9.2
  38 mageia:6                      : Ok   gcc (Mageia 5.5.0-1.mga6) 5.5.0
  39 opensuse:13.2                 : Ok   gcc (SUSE Linux) 4.8.3 20140627 [gcc-4_8-branch revision 212064]
  40 opensuse:15.0                 : Ok   gcc (SUSE Linux) 7.3.1 20180323 [gcc-7-branch revision 258812]
  41 opensuse:15.1                 : Ok   gcc (SUSE Linux) 7.4.0
  42 opensuse:42.1                 : Ok   gcc (SUSE Linux) 4.8.5
  43 opensuse:42.2                 : Ok   gcc (SUSE Linux) 4.8.5
  44 opensuse:42.3                 : Ok   gcc (SUSE Linux) 4.8.5
  45 opensuse:tumbleweed           : Ok   gcc (SUSE Linux) 8.2.1 20190103 [gcc-8-branch revision 267549]
  46 oraclelinux:6                 : Ok   gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23.0.1)
  47 oraclelinux:7                 : Ok   gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36.0.1)
  48 ubuntu:12.04.5                : Ok   gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
  49 ubuntu:14.04.4                : Ok   gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
  50 ubuntu:14.04.4-x-linaro-arm64 : Ok   aarch64-linux-gnu-gcc (Linaro GCC 5.5-2017.10) 5.5.0
  51 ubuntu:16.04                  : Ok   gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
  52 ubuntu:16.04-x-arm            : Ok   arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  53 ubuntu:16.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  54 ubuntu:16.04-x-powerpc        : Ok   powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  55 ubuntu:16.04-x-powerpc64      : Ok   powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  56 ubuntu:16.04-x-powerpc64el    : Ok   powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  57 ubuntu:16.04-x-s390           : Ok   s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  58 ubuntu:17.10                  : Ok   gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0
  59 ubuntu:18.04                  : Ok   gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  60 ubuntu:18.04-x-arm            : Ok   arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04) 7.3.0
  61 ubuntu:18.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04) 7.3.0
  62 ubuntu:18.04-x-m68k           : Ok   m68k-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  63 ubuntu:18.04-x-powerpc        : Ok   powerpc-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  64 ubuntu:18.04-x-powerpc64      : Ok   powerpc64-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  65 ubuntu:18.04-x-powerpc64el    : Ok   powerpc64le-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  66 ubuntu:18.04-x-riscv64        : Ok   riscv64-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  67 ubuntu:18.04-x-s390           : Ok   s390x-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  68 ubuntu:18.04-x-sh4            : Ok   sh4-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  69 ubuntu:18.04-x-sparc64        : Ok   sparc64-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
  70 ubuntu:18.10                  : Ok   gcc (Ubuntu 8.2.0-7ubuntu1) 8.2.0
  71 ubuntu:19.04                  : Ok   gcc (Ubuntu 8.2.0-20ubuntu1) 8.2.0
  72 ubuntu:19.04-x-alpha          : Ok   alpha-linux-gnu-gcc (Ubuntu 8.2.0-20ubuntu1) 8.2.0
  73 ubuntu:19.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 8.2.0-20ubuntu1) 8.2.0
  74 ubuntu:19.04-x-hppa           : Ok   hppa-linux-gnu-gcc (Ubuntu 8.2.0-20ubuntu1) 8.2.0
  #
  # uname -a
  Linux quaco 5.0.0+ #1 SMP Thu Mar 7 10:32:55 -03 2019 x86_64 x86_64 x86_64 GNU/Linux
  # git log --oneline -1
  dfcbc2f2994b tools lib bpf: Fix the build by adding a missing stdarg.h include
  # perf version --build-options
  perf version 5.0.gdfcbc2
                   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_no_libnuma_O: make NO_LIBNUMA=1
              make_clean_all_O: make clean all
            make_no_auxtrace_O: make NO_AUXTRACE=1
                make_no_newt_O: make NO_NEWT=1
           make_no_backtrace_O: make NO_BACKTRACE=1
                make_no_gtk2_O: make NO_GTK2=1
               make_no_slang_O: make NO_SLANG=1
                  make_debug_O: make DEBUG=1
                  make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
       make_util_pmu_bison_o_O: make util/pmu-bison.o
            make_no_libaudit_O: make NO_LIBAUDIT=1
         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
              make_no_libelf_O: make NO_LIBELF=1
                   make_help_O: make help
                   make_pure_O: make
                 make_static_O: make LDFLAGS=-static
             make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
   make_install_prefix_slash_O: make install prefix=/tmp/krava/
         make_with_clangllvm_O: make LIBCLANGLLVM=1
            make_install_bin_O: make install-bin
           make_no_libunwind_O: make NO_LIBUNWIND=1
                 make_perf_o_O: make perf.o
              make_no_libbpf_O: make NO_LIBBPF=1
             make_no_libperl_O: make NO_LIBPERL=1
        make_with_babeltrace_O: make LIBBABELTRACE=1
                   make_tags_O: make tags
                make_install_O: make install
           make_no_libbionic_O: make NO_LIBBIONIC=1
             make_util_map_o_O: make util/map.o
           make_no_libpython_O: make NO_LIBPYTHON=1
                    make_doc_O: make doc
                 make_cscope_O: make cscope
            make_no_demangle_O: make NO_DEMANGLE=1
  make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
  OK
  make: Leaving directory '/home/acme/git/perf/tools/perf'
  $

^ permalink raw reply	[flat|nested] 44+ messages in thread
* [GIT PULL 00/30] perf/core improvements and fixes
@ 2016-04-27 14:30 Arnaldo Carvalho de Melo
  2016-04-27 15:03 ` Ingo Molnar
  0 siblings, 1 reply; 44+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-27 14:30 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Alexander Shishkin, Alexei Starovoitov,
	Ananth N Mavinakayanahalli, Andi Kleen, Andrey Ryabinin,
	Borislav Petkov, Brendan Gregg, Chris Phlipot, Colin Ian King,
	David Ahern, Davidlohr Bueso, Eric Engestrom,
	Frederic Weisbecker, He Kuang, Hemant Kumar, Hitoshi Mitake,
	Jiri Olsa, Kan Liang, Linus Torvalds, Masami Hiramatsu,
	Milian Wolff, Namhyung Kim, Naveen N . Rao, Peter Zijlstra,
	pi3orama, Ravi Bangoria, Srikar Dronamraju, Stephane Eranian,
	Thomas Gleixner, TJ, Vince Weaver, Wang Nan, Zefan Li

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

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit 67d61296ffcc850bffdd4466430cb91e5328f39a:

  Merge tag 'perf-core-for-mingo-20160419' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux (2016-04-23 14:50:39 +0200)

are available in the git repository at:

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

for you to fetch changes up to 4cb93446c587d56e2a54f4f83113daba2c0b6dee:

  perf tools: Set the maximum allowed stack from /proc/sys/kernel/perf_event_max_stack (2016-04-27 10:29:07 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- perf trace --pf maj/min/all works with --call-graph: (Arnaldo Carvalho de Melo)

  Tracing write syscalls and major page faults with callchains while starting
  firefox, limiting the stack to 5 frames:

 # perf trace -e write --pf maj --max-stack 5 firefox
   589.549 ( 0.014 ms): firefox/15377 write(fd: 4, buf: 0x7fff80acc898, count: 151) = 151
                                       [0xfaed] (/usr/lib64/libpthread-2.22.so)
                                       fire_glxtest_process+0x5c (/usr/lib64/firefox/libxul.so)
                                       InstallGdkErrorHandler+0x41 (/usr/lib64/firefox/libxul.so)
                                       XREMain::XRE_mainInit+0x12c (/usr/lib64/firefox/libxul.so)
                                       XREMain::XRE_main+0x1e4 (/usr/lib64/firefox/libxul.so)
   760.704 ( 0.000 ms): firefox/15332 majfault [gtk_tree_view_accessible_get_type+0x0] => /usr/lib64/libgtk-3.so.0.1800.9@0xa0850 (x.)
                                       gtk_tree_view_accessible_get_type+0x0 (/usr/lib64/libgtk-3.so.0.1800.9)
                                       gtk_tree_view_class_intern_init+0x1a54 (/usr/lib64/libgtk-3.so.0.1800.9)
                                       g_type_class_ref+0x6dd (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                       [0x115378] (/usr/lib64/libgnutls.so.30.6.3)

  This automagically selects "--call-graph dwarf", use "--call-graph fp" on systems
  where -fno-omit-frame-pointer was used to built the components of interest, to
  incur in less overhead, or tune "--call-graph dwarf" appropriately, see 'perf record --help'.

- Allow /proc/sys/kernel/perf_event_max_stack, that defaults to the old hard coded value
  of PERF_MAX_STACK_DEPTH (127), useful for huge callstacks for things like Groovy, Ruby, etc,
  and also to reduce overhead by limiting it to a smaller value, upcoming work will allow
  this to be done per-event (Arnaldo Carvalho de Melo)

- Make 'perf trace --min-stack' be honoured by --pf and --event (Arnaldo Carvalho de Melo)

- Make 'perf evlist -v' decode perf_event_attr->branch_sample_type (Arnaldo Carvalho de Melo)

   # perf record --call lbr usleep 1
   # perf evlist -v
   cycles:ppp: ... sample_type: IP|TID|TIME|CALLCHAIN|PERIOD|BRANCH_STACK, ...
            branch_sample_type: USER|CALL_STACK|NO_FLAGS|NO_CYCLES
   #

- Clear dummy entry accumulated period, fixing such 'perf top/report' output
  as: (Kan Liang)

    4769.98%  0.01%  0.00%  0.01%  tchain_edit  [kernel] [k] update_fast_timekeeper

- System calls with pid_t arguments gets them augmented with the COMM event
  more thoroughly:

  # trace -e perf_event_open perf stat -e cycles -p 15608
   6.876 ( 0.014 ms): perf_event_open(attr_uptr: 0x2ae20d8, pid: 15608 (hexchat), cpu: -1, group_fd: -1, flags: FD_CLOEXEC) = 3
   6.882 ( 0.005 ms): perf_event_open(attr_uptr: 0x2ae20d8, pid: 15639 (gmain), cpu: -1, group_fd: -1, flags: FD_CLOEXEC) = 4
   6.889 ( 0.005 ms): perf_event_open(attr_uptr: 0x2ae20d8, pid: 15640 (gdbus), cpu: -1, group_fd: -1, flags: FD_CLOEXEC) = 5
                                                            ^^^^^^^^^^^^^^^^^^
   ^C

- Fix offline module name mismatch issue in 'perf probe' (Ravi Bangoria)

- Fix module probe issue if no dwarf support in (Ravi Bangoria)

Assorted fixes:

- Fix off-by-one in write_buildid() (Andrey Ryabinin)

- Fix segfault when printing callchains in 'perf script' (Chris Phlipot)

- Replace assignment with comparison on assert check in 'perf test' entry (Colin Ian King)

- Fix off-by-one comparison in intel-pt code (Colin Ian King)

- Close target file on error path in 'perf probe' (Masami Hiramatsu)

- Set default kprobe group name if not given in 'perf probe' (Masami Hiramatsu)

- Avoid partial perf_event_header reads (Wang Nan)

Infrastructure:

- Update x86's syscall_64.tbl copy, adding preadv2 & pwritev2 (Arnaldo Carvalho de Melo)

- Make the x86 clean quiet wrt syscall table removal (Jiri Olsa)

Cleanups:

- Simplify wrapper for LOCK_PI in 'perf bench futex' (Davidlohr Bueso)

- Remove duplicate const qualifier (Eric Engestrom)

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

----------------------------------------------------------------
Andrey Ryabinin (1):
      perf buildid: Fix off-by-one in write_buildid()

Arnaldo Carvalho de Melo (14):
      perf trace: Extract evsel contructor from perf_evlist__add_pgfault
      perf trace: Make --pf maj/min/all use callchains too
      perf trace: Make --event honour --min-stack too
      perf trace: Make --pf honour --min-stack too
      perf evlist: Decode perf_event_attr->branch_sample_type
      perf trace: Move perf_flags beautifier to tools/perf/trace/beauty/
      perf trace: Do not beautify the 'pid' parameter as a simple integer
      tools lib api fs: Add helper to read string from procfs file
      perf thread: Introduce method to set comm from /proc/pid/self
      perf trace: Read thread's COMM from /proc when not set
      perf tools: Update x86's syscall_64.tbl, adding preadv2 & pwritev2
      perf bench: Remove one more die() call
      perf core: Allow setting up max frame stack depth via sysctl
      perf tools: Set the maximum allowed stack from /proc/sys/kernel/perf_event_max_stack

Chris Phlipot (1):
      perf script: Fix segfault when printing callchains

Colin Ian King (2):
      perf tests: Replace assignment with comparison on assert check
      perf intel-pt: Fix off-by-one comparison on maximum code

Davidlohr Bueso (1):
      perf bench futex: Simplify wrapper for LOCK_PI

Eric Engestrom (1):
      perf tools: Remove duplicate const qualifier

Jiri Olsa (2):
      perf tools: Make the x86 clean quiet
      tools build: Fix perf_clean target

Kan Liang (1):
      perf hists: Clear dummy entry accumulated period

Masami Hiramatsu (4):
      perf probe: Close target file on error path
      perf tools: Add lsdir() helper to read a directory
      perf probe: Let probe_file__add_event return 0 if succeeded
      perf probe: Set default kprobe group name if it is not given

Ravi Bangoria (2):
      perf probe: Fix offline module name missmatch issue
      perf probe: Fix module probe issue if no dwarf support

Wang Nan (1):
      perf evlist: Enforce ring buffer reading

 Documentation/sysctl/kernel.txt                    |  14 ++
 arch/arm/kernel/perf_callchain.c                   |   2 +-
 arch/arm64/kernel/perf_callchain.c                 |   4 +-
 arch/metag/kernel/perf_callchain.c                 |   2 +-
 arch/mips/kernel/perf_event.c                      |   4 +-
 arch/powerpc/perf/callchain.c                      |   4 +-
 arch/sparc/kernel/perf_event.c                     |   6 +-
 arch/x86/events/core.c                             |   4 +-
 arch/xtensa/kernel/perf_event.c                    |   4 +-
 include/linux/perf_event.h                         |   8 +-
 kernel/bpf/stackmap.c                              |   8 +-
 kernel/events/callchain.c                          |  35 ++++-
 kernel/sysctl.c                                    |  12 ++
 tools/Makefile                                     |   3 +-
 tools/lib/api/fs/fs.c                              |  13 ++
 tools/lib/api/fs/fs.h                              |   2 +
 tools/perf/Documentation/perf-report.txt           |   2 +-
 tools/perf/Documentation/perf-script.txt           |   2 +-
 tools/perf/Documentation/perf-top.txt              |   2 +-
 tools/perf/Documentation/perf-trace.txt            |   2 +-
 tools/perf/arch/x86/Makefile                       |   2 +-
 tools/perf/arch/x86/entry/syscalls/syscall_64.tbl  |   2 +
 tools/perf/bench/futex-lock-pi.c                   |   2 +-
 tools/perf/bench/futex.h                           |   6 +-
 tools/perf/bench/mem-functions.c                   |  22 ++-
 tools/perf/builtin-report.c                        |   4 +-
 tools/perf/builtin-script.c                        |  16 +-
 tools/perf/builtin-top.c                           |   4 +-
 tools/perf/builtin-trace.c                         | 174 +++++++++++----------
 tools/perf/perf.c                                  |   5 +
 tools/perf/tests/event_update.c                    |   2 +-
 tools/perf/tests/hists_cumulate.c                  |   2 +-
 tools/perf/tests/hists_filter.c                    |   2 +-
 tools/perf/tests/hists_output.c                    |   2 +-
 tools/perf/trace/beauty/perf_event_open.c          |  43 +++++
 tools/perf/trace/beauty/pid.c                      |   5 +-
 tools/perf/util/build-id.c                         |   6 +-
 tools/perf/util/evlist.c                           |  12 +-
 tools/perf/util/evsel.c                            |  18 ++-
 tools/perf/util/hist.c                             |   2 +
 .../perf/util/intel-pt-decoder/intel-pt-decoder.c  |   2 +-
 tools/perf/util/machine.c                          |   6 +-
 tools/perf/util/probe-event.c                      | 114 +++++++++++---
 tools/perf/util/probe-file.c                       |   3 +-
 .../perf/util/scripting-engines/trace-event-perl.c |   2 +-
 tools/perf/util/thread.c                           |  21 ++-
 tools/perf/util/thread.h                           |   2 +
 tools/perf/util/util.c                             |  36 +++++
 tools/perf/util/util.h                             |   4 +
 49 files changed, 475 insertions(+), 179 deletions(-)
 create mode 100644 tools/perf/trace/beauty/perf_event_open.c

^ permalink raw reply	[flat|nested] 44+ messages in thread
* [GIT PULL 00/30] perf/core improvements and fixes
@ 2015-05-08 20:56 Arnaldo Carvalho de Melo
  2015-05-09  6:22 ` Ingo Molnar
  2015-05-11  5:09 ` Namhyung Kim
  0 siblings, 2 replies; 44+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-05-08 20:56 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
	Ananth N Mavinakayanahalli, Borislav Petkov, David Ahern,
	Davidlohr Bueso, Deng-Cheng Zhu, Don Zickus, Frederic Weisbecker,
	Hemant Kumar, Jiri Olsa, Masami Hiramatsu, Namhyung Kim,
	Naveen N . Rao, Peter Zijlstra, Ralf Baechle, Stephane Eranian,
	Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo



The following changes since commit cb307113746b4d184155d2c412e8069aeaa60d42:

  perf_event: Don't allow vmalloc() backed perf on powerpc (2015-05-08 12:26:01 +0200)

are available in the git repository at:

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

for you to fetch changes up to 76d408498b08447e0f61dfdd611aeb6e8e61ce80:

  perf build: Disable libdw DWARF unwind when built with NO_DWARF (2015-05-08 16:43:14 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- 'perf probe' improvements (Masami Hiramatsu)

  - Support glob wildcards for function name
  - Support $params special probe argument: Collect all function arguments
  - Make --line checks validate C-style function name.
  - Add --no-inlines option to avoid searching inline functions

- Introduce new 'perf bench futex' benchmark: 'wake-parallel', to
  measure parallel waker threads generating contention for kerne
  locks (hb->lock) (Davidlohr Bueso)

Bug fixes:

- 'perf top' survives much longer on high core count machines, more work
  needed to refcount more data structures besides 'struct thread' and fix
  more races (Arnaldo Carvalho de Melo)

Infrastructure:

- Move barrier.h mb/rmb/wmb API from tools/perf/ to kernel like tools/arch/
  hierarchy (Arnaldo Carvalho de Melo)

- Borrow atomic.h from the kernel, initially the x86 implementations
  with a fallback to gcc intrinsics for the other arches, all the kernel
  like framework in place for doing arch specific implementations,
  preferrably cloning what is in the kernel to the greater extent
  possible (Arnaldo Carvalho de Melo)

- Protect the 'struct thread' lifetime with a reference counter,
  and protect data structures that contains its instances with
  a mutex (Arnaldo Carvalho de Melo

- Disable libdw DWARF unwind when built with NO_DWARF (Naveen N. Rao)

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

----------------------------------------------------------------
Arnaldo Carvalho de Melo (17):
      perf tools: Move x86 barrier.h stuff to tools/arch/x86/include/asm/barrier.h
      perf tools: Move powerpc barrier.h stuff to tools/arch/powerpc/include/asm/barrier.h
      perf tools: Move s390 barrier.h stuff to tools/arch/s390/include/asm/barrier.h
      perf tools: Move barrier() definition to tools/include/linux/compiler.h
      tools: Adopt asm-generic/barrier.h
      perf tools: Move sh barrier.h stuff to tools/arch/sh/include/asm/barrier.h
      perf tools: Move sparc barrier.h stuff to tools/arch/sparc/include/asm/barrier.h
      perf tools: Move alpha barrier.h stuff to tools/arch/alpha/include/asm/barrier.h
      perf tools: Move ia64 barrier.h stuff to tools/arch/ia64/include/asm/barrier.h
      perf tools: Move arm(64) barrier.h stuff to tools/arch/arm*/include/asm/barrier.h
      perf tools: Move xtensa barrier.h stuff to tools/arch/xtensa/include/asm/barrier.h
      perf tools: Move mips barrier.h stuff to tools/arch/mips/include/asm/barrier.h
      perf tools: Move tile barrier.h stuff to tools/arch/tile/include/asm/barrier.h
      perf tools: Move generic barriers out of perf-sys.h
      tools include: Add basic atomic.h implementation from the kernel sources
      perf tools: Use atomic_t to implement thread__{get,put} refcnt
      perf machine: Protect the machine->threads with a rwlock

Davidlohr Bueso (2):
      perf bench futex: Support parallel waker threads
      perf bench futex: Handle spurious wakeups

Masami Hiramatsu (10):
      perf probe: Fix to close probe_events file in error
      perf probe: Fix a typo for the flags of open
      perf probe: Fix to return 0 when positive value returned
      perf probe: Make --line checks validate C-style function name
      perf probe: Skip kernel symbols which is out of .text
      perf probe: Support $params special probe argument
      perf probe: Use perf_probe_event.target instead of passing as an argument
      perf probe: Introduce probe_conf global configs
      perf probe: Add --no-inlines option to avoid searching inline functions
      perf probe: Support glob wildcards for function name

Naveen N. Rao (1):
      perf build: Disable libdw DWARF unwind when built with NO_DWARF

 tools/arch/alpha/include/asm/barrier.h    |   8 +
 tools/arch/arm/include/asm/barrier.h      |  12 ++
 tools/arch/arm64/include/asm/barrier.h    |  16 ++
 tools/arch/ia64/include/asm/barrier.h     |  48 +++++
 tools/arch/mips/include/asm/barrier.h     |  20 ++
 tools/arch/powerpc/include/asm/barrier.h  |  29 +++
 tools/arch/s390/include/asm/barrier.h     |  30 +++
 tools/arch/sh/include/asm/barrier.h       |  32 ++++
 tools/arch/sparc/include/asm/barrier.h    |   8 +
 tools/arch/sparc/include/asm/barrier_32.h |   6 +
 tools/arch/sparc/include/asm/barrier_64.h |  42 +++++
 tools/arch/tile/include/asm/barrier.h     |  15 ++
 tools/arch/x86/include/asm/atomic.h       |  65 +++++++
 tools/arch/x86/include/asm/barrier.h      |  28 +++
 tools/arch/x86/include/asm/rmwcc.h        |  41 +++++
 tools/arch/xtensa/include/asm/barrier.h   |  18 ++
 tools/include/asm-generic/atomic-gcc.h    |  63 +++++++
 tools/include/asm-generic/barrier.h       |  44 +++++
 tools/include/asm/atomic.h                |  10 +
 tools/include/asm/barrier.h               |  27 +++
 tools/include/linux/atomic.h              |   6 +
 tools/include/linux/compiler.h            |   4 +
 tools/include/linux/types.h               |   4 +
 tools/perf/Documentation/perf-bench.txt   |   3 +
 tools/perf/Documentation/perf-probe.txt   |   6 +-
 tools/perf/MANIFEST                       |  19 ++
 tools/perf/bench/Build                    |   1 +
 tools/perf/bench/bench.h                  |   2 +
 tools/perf/bench/futex-wake-parallel.c    | 294 ++++++++++++++++++++++++++++++
 tools/perf/bench/futex-wake.c             |   7 +-
 tools/perf/builtin-annotate.c             |  10 +-
 tools/perf/builtin-bench.c                |   1 +
 tools/perf/builtin-diff.c                 |   9 +-
 tools/perf/builtin-inject.c               |   1 +
 tools/perf/builtin-kmem.c                 |   7 +-
 tools/perf/builtin-kvm.c                  |   6 +-
 tools/perf/builtin-lock.c                 |   8 +-
 tools/perf/builtin-mem.c                  |   5 +-
 tools/perf/builtin-probe.c                |  26 +--
 tools/perf/builtin-report.c               |   9 +-
 tools/perf/builtin-sched.c                |  82 ++++++---
 tools/perf/builtin-script.c               |  20 +-
 tools/perf/builtin-timechart.c            |   5 +-
 tools/perf/builtin-top.c                  |   2 +-
 tools/perf/builtin-trace.c                |  36 ++--
 tools/perf/config/Makefile                |   4 +
 tools/perf/perf-sys.h                     |  73 +-------
 tools/perf/tests/code-reading.c           |  22 ++-
 tools/perf/tests/dwarf-unwind.c           |   1 +
 tools/perf/tests/hists_common.c           |   1 +
 tools/perf/tests/hists_cumulate.c         |   4 +-
 tools/perf/tests/hists_filter.c           |   4 +-
 tools/perf/tests/hists_link.c             |   8 +-
 tools/perf/tests/hists_output.c           |   4 +-
 tools/perf/tests/mmap-thread-lookup.c     |   2 +
 tools/perf/tests/thread-mg-share.c        |  12 +-
 tools/perf/util/build-id.c                |   5 +-
 tools/perf/util/db-export.c               |  14 +-
 tools/perf/util/dwarf-aux.c               |  16 ++
 tools/perf/util/dwarf-aux.h               |   3 +
 tools/perf/util/event.c                   |  15 ++
 tools/perf/util/event.h                   |   2 +
 tools/perf/util/machine.c                 |  89 +++++++--
 tools/perf/util/machine.h                 |   5 +-
 tools/perf/util/probe-event.c             | 177 ++++++++++--------
 tools/perf/util/probe-event.h             |  15 +-
 tools/perf/util/probe-finder.c            |  73 +++++---
 tools/perf/util/probe-finder.h            |  10 +-
 tools/perf/util/thread.c                  |  14 +-
 tools/perf/util/thread.h                  |   3 +-
 tools/perf/util/util.h                    |   4 +
 71 files changed, 1392 insertions(+), 323 deletions(-)
 create mode 100644 tools/arch/alpha/include/asm/barrier.h
 create mode 100644 tools/arch/arm/include/asm/barrier.h
 create mode 100644 tools/arch/arm64/include/asm/barrier.h
 create mode 100644 tools/arch/ia64/include/asm/barrier.h
 create mode 100644 tools/arch/mips/include/asm/barrier.h
 create mode 100644 tools/arch/powerpc/include/asm/barrier.h
 create mode 100644 tools/arch/s390/include/asm/barrier.h
 create mode 100644 tools/arch/sh/include/asm/barrier.h
 create mode 100644 tools/arch/sparc/include/asm/barrier.h
 create mode 100644 tools/arch/sparc/include/asm/barrier_32.h
 create mode 100644 tools/arch/sparc/include/asm/barrier_64.h
 create mode 100644 tools/arch/tile/include/asm/barrier.h
 create mode 100644 tools/arch/x86/include/asm/atomic.h
 create mode 100644 tools/arch/x86/include/asm/barrier.h
 create mode 100644 tools/arch/x86/include/asm/rmwcc.h
 create mode 100644 tools/arch/xtensa/include/asm/barrier.h
 create mode 100644 tools/include/asm-generic/atomic-gcc.h
 create mode 100644 tools/include/asm-generic/barrier.h
 create mode 100644 tools/include/asm/atomic.h
 create mode 100644 tools/include/asm/barrier.h
 create mode 100644 tools/include/linux/atomic.h
 create mode 100644 tools/perf/bench/futex-wake-parallel.c

^ permalink raw reply	[flat|nested] 44+ messages in thread
* [GIT PULL 00/30] perf/core improvements and fixes
@ 2012-09-24 15:59 Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 44+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-09-24 15:59 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Arnaldo Carvalho de Melo, Arjan van de Ven,
	Avi Kivity, David Ahern, Dong Hao, Eric Sandeen, Feng Tang,
	Frederic Weisbecker, Irina Tirdea, Jiri Olsa, kvm,
	Marcelo Tosatti, Markus Trippelsdorf, Masami Hiramatsu,
	Mike Frysinger, Mike Galbraith, Namhyung Kim, Paul Mackerras,
	Peter Zijlstra, Robert Richter, Runzhen Wang, Stephane Eranian,
	Steven Rostedt, Xiao Guangrong, Arnaldo Carvalho de Melo

Hi Ingo,

	Please consider pulling,

- Arnaldo

The following changes since commit 1e6dd8adc78d4a153db253d051fd4ef6c49c9019:

  perf: Fix off by one test in perf_reg_value() (2012-09-19 17:08:40 +0200)

are available in the git repository at:

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

for you to fetch changes up to b1ac754b67b5a875d63bee880f60ccb0c6bd8899:

  tools lib traceevent: Handle alloc_arg failure (2012-09-24 12:31:52 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

. Convert the trace builtins to use the growing evsel/evlist
  tracepoint infrastructure, removing several open coded constructs
  like switch like series of strcmp to dispatch events, etc.
  Basically what had already been showcased in 'perf sched'.

. Add evsel constructor for tracepoints, that uses libtraceevent
  just to parse the /format events file, use it in a new 'perf test'
  to make sure the libtraceevent format parsing regressions can
  be more readily caught.

. Some strange errors were happening in some builds, but not on the
  next, reported by several people, problem was some parser related
  files, generated during the build, didn't had proper make deps,
  fix from Eric Sandeen.

. Fix some compiling errors on 32-bit, from Feng Tang.

. Don't use sscanf extension %as, not available on bionic, reimplementation
  by Irina Tirdea.

. Fix bfd.h/libbfd detection with recent binutils, from Markus Trippelsdorf.

. Introduce struct and cache information about the environment where a
  perf.data file was captured, from Namhyung Kim.

. Fix several error paths in libtraceevent, from Namhyung Kim.

  Print event causing perf_event_open() to fail in 'perf record',
  from Stephane Eranian.

. New 'kvm' analysis tool, from Xiao Guangrong.

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

----------------------------------------------------------------
Arnaldo Carvalho de Melo (11):
      perf kvm: Use perf_evsel__intval
      perf kmem: Use perf_evsel__intval and perf_session__set_tracepoints_handlers
      perf lock: Use perf_evsel__intval and perf_session__set_tracepoints_handlers
      perf timechart: Use zalloc and fix a couple leaks
      tools lib traceevent: Use asprintf were applicable
      tools lib traceevent: Use calloc were applicable
      tools lib traceevent: Fix afterlife gotos
      tools lib traceevent: Remove some die() calls
      tools lib traceevent: Carve out events format parsing routine
      perf evsel: Provide a new constructor for tracepoints
      perf test: Add test for the sched tracepoint format fields

Eric Sandeen (1):
      perf tools: Fix parallel build

Feng Tang (2):
      perf tools: Fix a compiling error in trace-event-perl.c for 32 bits machine
      perf tools: Fix a compiling error in util/map.c

Irina Tirdea (1):
      perf tools: remove sscanf extension %as

Markus Trippelsdorf (1):
      perf tools: bfd.h/libbfd detection fails with recent binutils

Namhyung Kim (11):
      perf header: Add struct perf_session_env
      perf header: Add ->process callbacks to most of features
      perf header: Use pre-processed session env when printing
      perf header: Remove unused @feat arg from ->process callback
      perf kvm: Use perf_session_env for reading cpuid
      perf header: Remove perf_header__read_feature
      tools lib traceevent: Fix error path on process_array()
      tools lib traceevent: Make sure that arg->op.right is set properly
      tools lib traceevent: Free field if an error occurs on process_fields
      tools lib traceevent: Free field if an error occurs on process_flags/symbols
      tools lib traceevent: Handle alloc_arg failure

Stephane Eranian (1):
      perf record: Print event causing perf_event_open() to fail

Xiao Guangrong (2):
      KVM: x86: Export svm/vmx exit code and vector code to userspace
      perf kvm: Events analysis tool

 arch/x86/include/asm/kvm.h                         |   16 +
 arch/x86/include/asm/kvm_host.h                    |   16 -
 arch/x86/include/asm/svm.h                         |  205 +++--
 arch/x86/include/asm/vmx.h                         |  127 ++-
 arch/x86/kvm/trace.h                               |   89 ---
 tools/lib/traceevent/event-parse.c                 |  570 +++++++++----
 tools/lib/traceevent/event-parse.h                 |    3 +
 tools/perf/Documentation/perf-kvm.txt              |   30 +-
 tools/perf/MANIFEST                                |    3 +
 tools/perf/Makefile                                |    6 +-
 tools/perf/builtin-kmem.c                          |   90 +--
 tools/perf/builtin-kvm.c                           |  836 +++++++++++++++++++-
 tools/perf/builtin-lock.c                          |  233 ++----
 tools/perf/builtin-record.c                        |    6 +-
 tools/perf/builtin-test.c                          |   86 ++
 tools/perf/builtin-timechart.c                     |   40 +-
 tools/perf/util/evsel.c                            |   88 ++-
 tools/perf/util/evsel.h                            |    5 +
 tools/perf/util/header.c                           |  547 +++++++++----
 tools/perf/util/header.h                           |   24 +
 tools/perf/util/map.c                              |    5 +-
 tools/perf/util/probe-event.c                      |   36 +-
 .../perf/util/scripting-engines/trace-event-perl.c |    2 +-
 tools/perf/util/symbol.h                           |    1 +
 tools/perf/util/thread.h                           |    2 +
 tools/perf/util/trace-event-parse.c                |   18 +-
 26 files changed, 2278 insertions(+), 806 deletions(-)

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

end of thread, other threads:[~2019-03-12  2:02 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-30 22:24 [GIT PULL 00/30] perf/core improvements and fixes Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 01/30] perf tests: Add platform dependency to test 15 Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 02/30] perf help: Introduce exec_failed() to avoid code duplication Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 03/30] perf help: Elliminate dup code for reporting Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 04/30] perf help: Use pr_warning() Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 05/30] perf config: " Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 06/30] perf event-parse: " Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 07/30] perf tools: Remove warning() Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 08/30] perf tools: Replace error() with pr_err() Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 09/30] perf config: Do not die when parsing u64 or int config values Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 10/30] perf tools: Kill die() Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 11/30] perf jit: fix typo: "incalid" -> "invalid" Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 12/30] x86/insn: perf tools: Add new ptwrite instruction Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 13/30] perf script: Add 'synth' event type for synthesized events Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 14/30] tools include: Add byte-swapping macros to kernel.h Arnaldo Carvalho de Melo
2017-06-30 22:24 ` [PATCH 15/30] perf auxtrace: Add itrace option to output ptwrite events Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 16/30] perf auxtrace: Add itrace option to output power events Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 17/30] perf script: Add 'synth' field for synthesized event payloads Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 18/30] perf script: Add synthesized Intel PT power and ptwrite events Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 19/30] perf intel-pt: Factor out common code synthesizing event samples Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 20/30] perf intel-pt: Remove unused instructions_sample_period Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 21/30] perf intel-pt: Join needlessly wrapped lines Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 22/30] perf intel-pt: Tidy Intel PT evsel lookup into separate function Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 23/30] perf intel-pt: Tidy messages into called function intel_pt_synth_event() Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 24/30] perf intel-pt: Factor out intel_pt_set_event_name() Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 25/30] perf intel-pt: Move code in intel_pt_synth_events() to simplify attr setting Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 26/30] perf intel-pt: Synthesize new power and "ptwrite" events Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 27/30] perf intel-pt: Add example script for power events and PTWRITE Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 28/30] perf intel-pt: Update documentation to include new ptwrite and power events Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 29/30] perf intel-pt: Do not use TSC packets for calculating CPU cycles to TSC Arnaldo Carvalho de Melo
2017-06-30 22:25 ` [PATCH 30/30] perf auxtrace: Add CPU filter support Arnaldo Carvalho de Melo
2017-07-01  8:41 ` [GIT PULL 00/30] perf/core improvements and fixes Ingo Molnar
  -- strict thread matches above, loose matches on Subject: below --
2019-03-12  2:01 Arnaldo Carvalho de Melo
2016-04-27 14:30 Arnaldo Carvalho de Melo
2016-04-27 15:03 ` Ingo Molnar
2015-05-08 20:56 Arnaldo Carvalho de Melo
2015-05-09  6:22 ` Ingo Molnar
2015-05-11  5:09 ` Namhyung Kim
2015-05-11 14:06   ` Arnaldo Carvalho de Melo
2015-05-14  8:23     ` Namhyung Kim
2015-05-14 13:18       ` Arnaldo Carvalho de Melo
2015-05-15  2:08         ` Namhyung Kim
2015-05-18 16:21           ` Arnaldo Carvalho de Melo
2012-09-24 15:59 Arnaldo Carvalho de Melo

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).