[GIT PULL 00/35] perf/core improvements and fixes

2013-12-20 Thread Arnaldo Carvalho de Melo
From: Arnaldo Carvalho de Melo 

Hi Ingo,

Please consider pulling,

Best regards,

- Arnaldo

The following changes since commit fa6e8e5f7cbf85f364ebd5a90525dbbe9de2083b:

  Merge tag 'perf-core-for-mingo' of 
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core 
(2013-12-18 14:07:26 +0100)

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 a419e512731892c3e7e661cd96e7f7d6a7acdc91:

  perf stat: Do not show stats if workload fails (2013-12-20 13:37:50 -0300)


User visible changes:

Improvements:

. Do not show stats if workload fails in 'stat' (David Ahern)

. Print session information only if --stdio is given (Namhyung Kim)

Developer stuff:

Fixes:

. Get rid of a duplicate va_end() in error reporting (Namhyung Kim)

. If a hist entry doesn't have symbol information, compare it with its
  address. Affects upcoming new feature (--cumulate) (Namhyung Kim)

Improvements:

. Make libtraceevent install target quieter (Jiri Olsa)

. Make tests/make output more compact (Jiri Olsa)

New APIs:

. Introduce pevent_filter_strerror() in libtraceevent, similar in
  purpose to libc's strerror() function. (Namhyung Kim)

Refactorings:

. Use perf_data_file methods to write output file in 'record' and
  'inject' (Jiri Olsa)

. Use pr_*() functions where applicable in 'report' (Namhyumg Kim)

. Add 'machine' 'addr_location' struct to have full picture (machine,
  thread, map, symbol, addr) for a (partially) resolved address, reducing
  function signatures (Arnaldo Carvalho de Melo)

. Reduce code duplication in the histogram entry creation/insertion. (Arnaldo 
Carvalho de Melo)

. Auto allocate annotation histogram data structures, (Arnaldo Carvalho de Melo)

Signed-off-by: Arnaldo Carvalho de Melo 


Arnaldo Carvalho de Melo (16):
  perf annotate: Auto allocate symbol per addr hist buckets
  perf hists: Leave symbol addr hist bucket auto alloc to symbol layer
  perf annotate: Add inc_samples method to addr_map_symbol
  perf top: Use hist_entry__inc_addr_sample
  perf annotate: Adopt methods from hists
  perf annotate: Make symbol__inc_addr_samples private
  perf report: Introduce helpers for processing callchains
  perf record: Simplify perf_record__write
  perf record: Rename 'perf_record' to plain 'record'
  perf tools: Rename 'perf_record_opts' to 'record_opts
  perf report: Rename 'perf_report' to 'report'
  perf ui browser: Remove misplaced __maybe_unused
  perf scripting python: Shorten function signatures
  perf scripting perl: Shorten function signatures
  perf mem: Remove unused parameter from dump_raw_samples()
  perf symbols: Add 'machine' member to struct addr_location

David Ahern (1):
  perf stat: Do not show stats if workload fails

Jiri Olsa (11):
  perf inject: Handle output file via perf_data_file object
  perf record: Use perf_data_file__write for output file
  perf tests: Factor make install tests
  perf tools: Making QUIET_(CLEAN|INSTAL) variables global
  tools lib traceevent: Remove print_app_build variable
  tools lib traceevent: Use global QUIET_CC build output
  tools lib traceevent: Add global QUIET_CC_FPIC build output
  tools lib traceevent: Use global QUIET_LINK build output
  tools lib traceevent: Use global QUIET_INSTALL build output
  tools lib traceevent: Use global QUIET_CLEAN build output
  tools lib traceevent: Use global 'O' processing code

Namhyung Kim (7):
  perf sort: Compare addresses if no symbol info
  perf sort: Do not compare dso again
  perf hists: Do not pass period and weight to add_hist_entry()
  tools lib traceevent: Introduce pevent_filter_strerror()
  perf tools: Get rid of a duplicate va_end() in error reporting routine
  perf report: Use pr_*() functions where applicable
  perf report: Print session information only if --stdio is given

 tools/lib/traceevent/Makefile  |  85 +++
 tools/lib/traceevent/event-parse.c |  17 +-
 tools/lib/traceevent/event-parse.h |   7 +-
 tools/lib/traceevent/parse-filter.c|  98 
 tools/perf/builtin-annotate.c  |  10 +-
 tools/perf/builtin-inject.c|  65 +++---
 tools/perf/builtin-kvm.c   |   2 +-
 tools/perf/builtin-mem.c   |   5 +-
 tools/perf/builtin-record.c|  94 
 tools/perf/builtin-report.c| 259 +++--
 tools/perf/builtin-script.c|  16 +-
 tools/perf/builtin-stat.c  |  11 +-
 tools/perf/builtin-top.c   |  23 +-
 tools/perf/b

[GIT PULL 00/35] perf/core improvements and fixes

2018-08-15 Thread Arnaldo Carvalho de Melo
From: Arnaldo Carvalho de Melo 

Hi Ingo,

Please consider pulling, this is on top of
perf-core-for-mingo-4.19-20180809, that is not yet in tip.

Thanks,

- Arnaldo

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

The following changes since commit 6a9405b56c274024564f9014bba97b92c91b34d6:

  perf map: Optimize maps__fixup_overlappings() (2018-08-08 15:56:00 -0300)

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.19-20180815

for you to fetch changes up to 6855dc41b24619c3d1de3dbd27dd0546b0e45272:

  x86: Add entry trampolines to kcore (2018-08-14 19:13:26 -0300)


perf/core improvements ad fixes:

kernel:

. kallsyms, x86: Export addresses of PTI entry trampolines (Alexander Shishkin)

. kallsyms: Simplify update_iter_mod() (Adrian Hunter)

. x86: Add entry trampolines to kcore (Adrian Hunter)

Hardware tracing:

. Fix auxtrace queue resize (Adrian Hunter)

Arch specific:

. Fix uninitialized ARM SPE record error variable (Kim Phillips)

. Fix trace event post-processing in powerpc (Sandipan Das)

Build:

. Fix check-headers.sh AND list path of execution (Alexander Kapshuk)

. Remove -mcet and -fcf-protection when building the python binding
  with older clang versions (Arnaldo Carvalho de Melo)

. Make check-headers.sh check based on kernel dir (Jiri Olsa)

. Move syscall_64.tbl check into check-headers.sh (Jiri Olsa)

Infrastructure:

. Check for null when copying nsinfo.  (Benno Evers)

Libraries:

. Rename libtraceevent prefixes, prep work for making it a shared
  library generaly available (Tzvetomir Stoyanov (VMware))

Signed-off-by: Arnaldo Carvalho de Melo 


Adrian Hunter (3):
  perf auxtrace: Fix queue resize
  kallsyms: Simplify update_iter_mod()
  x86: Add entry trampolines to kcore

Alexander Kapshuk (1):
  perf tools: Fix check-headers.sh AND list path of execution

Alexander Shishkin (1):
  kallsyms, x86: Export addresses of PTI entry trampolines

Arnaldo Carvalho de Melo (1):
  perf python: Remove -mcet and -fcf-protection when building with clang

Benno Evers (1):
  perf tools: Check for null when copying nsinfo.

Jiri Olsa (2):
  perf tools: Make check-headers.sh check based on kernel dir
  perf tools: Move syscall_64.tbl check into check-headers.sh

Kim Phillips (1):
  perf arm spe: Fix uninitialized record error variable

Sandipan Das (1):
  perf probe powerpc: Fix trace event post-processing

Tzvetomir Stoyanov (VMware) (24):
  tools lib traceevent, perf tools: Rename struct pevent to struct 
tep_handle
  tools lib traceevent, perf tools: Rename 'struct pevent_record' to 
'struct tep_record'
  tools lib traceevent, perf tools: Rename pevent plugin related APIs
  tools lib traceevent, perf tools: Rename pevent alloc / free APIs
  tools lib traceevent, perf tools: Rename pevent find APIs
  tools lib traceevent, perf tools: Rename pevent parse APIs
  tools lib traceevent, perf tools: Rename pevent print APIs
  tools lib traceevent, perf tools: Rename pevent_read_number_* APIs
  tools lib traceevent, perf tools: Rename pevent_register_* APIs
  tools lib traceevent, perf tools: Rename pevent_set_* APIs
  tools lib traceevent, perf tools: Rename traceevent_* APIs
  tools lib traceevent, perf tools: Rename 'enum pevent_flag' to 'enum 
tep_flag'
  tools lib traceevent, tools lib lockdep: Rename 'enum pevent_errno' to 
'enum tep_errno'
  tools lib traceevent: Rename pevent_function* APIs
  tools lib traceevent,  perf tools: Rename traceevent_plugin_* APIs
  tools lib traceevent: Rename pevent_filter* APIs
  tools lib traceevent: Rename pevent_register / unregister APIs
  tools lib traceevent: Rename pevent_data_ APIs
  tools lib traceevent: Rename pevent field APIs
  tools lib traceevent: Rename pevent_find_* APIs
  tools lib traceevent: Rename various pevent get/set/is APIs
  tools lib traceevent: Rename internal parser related APIs
  tools lib traceevent: Rename various pevent APIs
  tools lib traceevent: Rename static variables and functions in 
event-parse.c

 arch/x86/mm/cpu_entry_area.c   |  33 +
 fs/proc/kcore.c|   7 +-
 include/linux/kcore.h  |  13 +
 kernel/kallsyms.c  |  51 +-
 tools/lib/lockdep/Makefile |   4 +-
 tools/lib/traceevent/Makefile  |   4 +-
 tools/lib/traceevent/event-parse.c | 696 ++---
 tools/lib/traceevent/event-parse.h | 458 +++---
 tools/lib/traceevent/event-plugin.c|  70 +--
 tools/lib/traceevent/parse-filter.c| 288 -
 tools/lib/traceevent/plugin_cfg80211.c

[GIT PULL 00/35] perf/core improvements and fixes

2019-03-07 Thread 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 c978b9460fe1d4a1e1effa0abd6bd69b18a098a8:

  Merge tag 'perf-core-for-mingo-5.1-20190225' of 
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core 
(2019-02-28 08:29:50 +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-20190307

for you to fetch changes up to b8f7d86b5849ea7bb84bddc0345a3799049764d4:

  perf data: Force perf_data__open|close zero data->file.path (2019-03-06 
18:21:00 -0300)


perf bpf:

  Arnaldo Carvalho de Melo:

  - Automatically add BTF ELF markers to 'perf trace' BPF programs, so that
tools such as 'bpftool map dump' can pretty print map keys and values.

perf c2c:

  Jiri Olsa:

  - Fix report for empty NUMA node.

perf diff:

  Jin Yao:

  - Support --time, --cpu, --pid and --tid filter options.

perf probe:

  Arnaldo Carvalho de Melo:

  - Clarify error message about not finding kernel modules debuginfo.

perf record:

  Jiri Olsa:

  - Fixup probing for max attr.precise_ip.

perf trace:

  Arnaldo Carvalho de Melo:

  - Add missing %s lost in the 'msg_flags' recvmmsg arg when adding prefix 
suppression logic.

perf annotate:

  Arnaldo Carvalho de Melo:

  - Calculate the max instruction name, align column to that, removing the
hardcoded max 6 chars and cope with instructions with names longer than 
that,
such as vpmovmskb, vpcmpeqb, etc.

kernel:

  Song Liu:

  - Consider events with attr.bpf_event set as side-band.

  Gustavo A. R. Silva:

  - Mark expected switch fall-through in perf_event_parse_addr_filter().

Libraries:

  Jiri Olsa:

  - Fix leaks and double frees on error paths.

libtraceevent:

  Tony Jones:

  - Fix buffer overflow in arg_eval().

python scripting:

  Tony Jones:

  - More python3 fixes.

Trivial:

  Yang Wei:

  - Remove needless extra semicolon in clang C++ glue code.

Intel PT/BTS:

  Adrian Hunter:

  - Improve auxtrace address filter error message when there is no DSO.

  - Fix divide by zero when TSC is not available.

  - Further improvements to the export to sqlite/posgresql python scripts
and to the GUI sqlviewer, exporting 'parent_id' so that we have enable
the creation of call trees.

  Andi Kleen:

  - Generalize function to copy from thread addr space from intel-bts code.

Signed-off-by: Arnaldo Carvalho de Melo 


Adrian Hunter (10):
  perf auxtrace: Improve address filter error message when there is no DSO
  perf intel-pt: Fix divide by zero when TSC is not available
  perf db-export: Add calls parent_id to enable creation of call trees
  perf scripts python: export-to-sqlite.py: Export calls parent_id
  perf scripts python: export-to-postgresql.py: Fix invalid input syntax 
for integer error
  perf scripts python: export-to-postgresql.py: Export calls parent_id
  perf scripts python: exported-sql-viewer.py: Factor out TreeWindowBase
  perf scripts python: exported-sql-viewer.py: Improve TreeModel abstraction
  perf scripts python: exported-sql-viewer.py: Factor out CallGraphModelBase
  perf scripts python: exported-sql-viewer.py: Add call tree

Andi Kleen (1):
  perf thread: Generalize function to copy from thread addr space from 
intel-bts code

Arnaldo Carvalho de Melo (4):
  perf probe: Clarify error message about not finding kernel modules 
debuginfo
  perf beauty msg_flags: Add missing %s lost when adding prefix suppression 
logic
  perf bpf: Automatically add BTF ELF markers
  perf annotate: Calculate the max instruction name, align column to that

Gustavo A. R. Silva (1):
  perf: Mark expected switch fall-through

Jin Yao (4):
  perf time-utils: Refactor time range parsing code
  perf diff: Support --time filter option
  perf diff: Support --cpu filter option
  perf diff: Support --pid/--tid filter options

Jiri Olsa (7):
  perf c2c: Fix c2c report for empty numa node
  perf hist: Add error path into hist_entry__init
  perf hist: Fix memory leak of srcline
  perf tools: Read and store caps/max_precise in perf_pmu
  perf evsel: Probe for precise_ip with simple attr
  perf session: Fix double free in perf_data__close
  perf data: Force perf_data__open|close zero data->file.path

Song Liu (1):
  perf, bpf: Consider events with attr.bpf_event as side-band events

Tony Jones (6):
  tools lib traceevent: Fix buffer overflow in arg_eval
  perf script python: Remove mixed indentation
  perf script python: Add Python3 support to futex-contention.py
  perf script python: add Python3 support to check-perf-trace.py
  perf script python: Add Python3 support to event_analyzing_sample.py
  perf script python: Add Pytho

[GIT PULL 00/35] perf/core improvements and fixes

2017-03-06 Thread Arnaldo Carvalho de Melo
From: 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 9d020d33fc1b2faa0eb35859df1381ca5dc94ffe:

  Merge branch 'linus' into perf/urgent, to resolve conflict (2017-03-02 
08:05:45 +0100)

are available in the git repository at:

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

for you to fetch changes up to 001916b94a04809a94abb07daba6f9ace01906ba:

  perf bench numa: Add more comment for -c option (2017-03-06 12:39:30 -0300)


perf/core improvements and fixes:

New features:

- Allow sorting by symbol_size in 'perf report' and 'perf top' (Charles Baylis)

  E.g.:

  # perf report -s symbol_size,symbol

  Samples: 9K of event 'cycles:k', Event count (approx.): 2870461623
  Overhead  Symbol size  Symbol
14.55%  326  [k] flush_tlb_mm_range
 7.20% 1045  [k] filemap_map_pages
 5.82%  124  [k] vma_interval_tree_insert
 5.18% 2430  [k] unmap_page_range
 2.57%  571  [k] vma_interval_tree_remove
 1.94%  494  [k] page_add_file_rmap
 1.82%  740  [k] page_remove_rmap
 1.66% 1017  [k] release_pages
 1.57% 1636  [k] update_blocked_averages
 1.57%   76  [k] unlock_page

- Add support for -p/--pid, -a/--all-cpus and -C/--cpu in 'perf ftrace' 
(Namhyung Kim)

Change in behaviour:

- Make system wide (-a) the default option if no target was specified and one
  of following conditions is met:

  - No workload specified (current behaviour)

  - A workload is specified but all requested events are system wide ones,
like uncore ones. (Jiri Olsa)

Fixes:

- Add missing initialization to the instruction decoder used in the
  intel PT/BTS code, which was causing lots of failures in 'perf test',
  looking for a value when there was none (Adrian Hunter)

Infrastructure:

- Add arch code needed to adopt the kernel's refcount_t to aid in
  catching bugs when using atomic_t as a reference counter, basically
  cmpxchg related functions (Arnaldo Carvalho de Melo)

- Convert the code using atomic_t as reference counts to refcount_t
  (Elena Rashetova)

- Add feature test for sched_getcpu() to more easily check for its
  presence in the many libc implementations and accross different
  versions of such C libraries (Arnaldo Carvalho de Melo)

- Issue a HW watchdog disable hint in 'perf stat' for when some of the
  requested events can't get counted because a PMU counter is taken by that
  watchdog (Borislav Petkov).

- Add mapping for Intel's KnightsMill PMU events (Karol Wachowski)

Documentation:

- Clarify the term 'convergence' in:

   perf bench numa numa-mem -h --show_convergence (Jiri Olsa)

Kernel code:

- Ensure probe location is at function entry in kretprobes (Naveen N. Rao)

- Allow return probes with offsets and absolute addresses (Naveen N. Rao)

Signed-off-by: Arnaldo Carvalho de Melo 


Adrian Hunter (1):
  perf intel-PT/BTS: Add missing initialization

Arnaldo Carvalho de Melo (12):
  tools include: Adopt __compiletime_error
  tools arch x86: Include asm/cmpxchg.h
  tools arch x86: Introduce atomic_cmpxchg()
  tools include: Introduce atomic_cmpxchg_{relaxed,release}()
  tools include: Provide gcc based cmpxchg fallback for !x86
  tools include: Add UINT_MAX def to kernel.h
  tools include: Adopt kernel's refcount.h
  perf evlist: Clarify a bit the use of perf_mmap->refcnt
  tools build: Add test for sched_getcpu()
  perf bench futex: Use __maybe_unused
  perf bench futex: Fix build on musl + clang
  tools build: Use the same CC for feature detection and actual build

Borislav Petkov (1):
  perf stat: Issue a HW watchdog disable hint

Charles Baylis (1):
  perf tools: Allow sorting by symbol size

Elena Reshetova (9):
  perf cgroup: Convert cgroup_sel.refcnt from atomic_t to refcount_t
  perf cpumap: Convert cpu_map.refcnt from atomic_t to refcount_t
  perf comm: Convert comm_str.refcnt from atomic_t to refcount_t
  perf dso: Convert dso.refcnt from atomic_t to refcount_t
  perf map: Convert map.refcnt from atomic_t to refcount_t
  perf map: Convert map_groups.refcnt from atomic_t to refcount_t
  perf evlist: Convert perf_map.refcnt from atomic_t to refcount_t
  perf thread: convert thread.refcnt from atomic_t to refcount_t
  perf thread_map: Convert thread_map.refcnt from atomic_t to refcount_t

Jiri Olsa (2):
  perf tools: Force uncore events to system wide monitoring
  perf bench numa: Add more comment for -c option

Karol Wachowski (1):
  perf vendor events: Add mapping for KnightsMill PMU events

Namhyung Kim (4):
  perf ftrace: Add support for --pid option
  perf cpumap: Introduce cp

[GIT PULL 00/35] perf/core improvements and fixes

2016-08-23 Thread Arnaldo Carvalho de Melo
Hi Ingo,

Please consider pulling, I first merged tip/perf/urgent into a
tip/perf/core and rebased the patches I had in acme/perf/core.

- Arnaldo

Build stats at the end of this message.

The following changes since commit ce90c12d2453aa6be743719bb0a5d4040b92700f:

  Merge branch 'perf/urgent' into perf/core, to pick up fixes before merging 
new changes (2016-08-23 15:35:47 -0300)

are available in the git repository at:

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

for you to fetch changes up to 5e30d55c71de058e4156080fe32d426c22d094cb:

  perf record: Fix spelling mistake "Finshed" -> "Finished" (2016-08-23 
17:06:40 -0300)


perf/core improvements and fixes:

User visible:

. Allow configuring the default 'perf report -s' sort order in ~/.perfconfig,
  for instance, "sym,dso" may be more fitting for kernel developers. (Arnaldo 
Carvalho de Melo)

- Support x8/x16/x32/x64 hexadecimal "types" in ftrace and 'perf probe' (Masami 
Hiramatsu)

Infrastructure:

- Skip running the feature tests for 'make install-doc' (Rui Teng)

- Introduce tools/include/linux/time64.h with *SEC_PER_*SEC macros
  to use in all of tools/ (Arnaldo Carvalho de Melo)

- Break down symbol__disassemble() into multiple functions, to ease
  future work on better reporting the errors that may take place in
  the various steps it performs (possibly decompressing kernel module
  files, getting build-id keyed files, calling objdump, parsing its
  output, etc) (Arnaldo Carvalho de Melo)

- Typo fixes in various places (Colin Ian King)

- Remove superfluous NULL check in the TUI code (Colin Ian King)

- Allow displaying multiple header lines in the TUI browser, prep
  work for the 'perf c2c' browser (Jiri Olsa)

- Copy coresight-pmu.h header file needed by perf tools (Mathieu Poirier)

- Use __weak definition from linux/compiler.h (Rui Teng)

Signed-off-by: Arnaldo Carvalho de Melo 



Arnaldo Carvalho de Melo (16):
  tools: Introduce tools/include/linux/time64.h for *SEC_PER_*SEC macros
  perf bench numa: Use NSEC_PER_U?SEC
  perf sched: Use linux/time64.h
  perf timechart: Use NSEC_PER_U?SEC
  perf bench sched-pipe: Use linux/time64.h, USEC_PER_SEC
  perf stat: Use *SEC_PER_*SEC macros
  perf bench mem: Use USEC_PER_SEC
  perf bench sched-messaging: Use USEC_PER_MSEC
  perf record: Use USEC_PER_MSEC
  perf kvm: Use NSEC_PER_USEC
  perf bench futex: Use NSEC_PER_USEC
  perf top: Use MSEC_PER_SEC
  perf disassemble: Move check for kallsyms + !kcore
  perf disassemble: Simplify logic for picking the filename to disassemble
  perf disassemble: Extract logic to find file to pass to objdump to a 
separate function
  perf report: Allow configuring the default sort order in ~/.perfconfig

Colin Ian King (5):
  perf hists browser: Remove superfluous null check on map
  perf tools: Fix typo: "ehough" -> "enough"
  perf test bpf: Fix typo: "ehough" -> "enough"
  perf bpf: Fix typo: "ehough" -> "enough"
  perf record: Fix spelling mistake "Finshed" -> "Finished"

Jiri Olsa (5):
  perf hists: Introduce nr_header_lines into struct perf_hpp_list
  perf hists: Add line argument into perf_hpp_fmt's header callback
  perf tools tui: Display multiple header lines
  perf tools stdio: Display multiple header lines
  perf hists: Add support for header span

Masami Hiramatsu (6):
  ftrace: kprobe: uprobe: Add x8/x16/x32/x64 for hexadecimal types
  ftrace: probe: Add README entries for k/uprobe-events
  perf probe: Add supported for type casting by the running kernel
  perf probe: Support hexadecimal casting
  perf probe: Use hexadecimal type by default if possible
  ftrace: kprobe: uprobe: Show u8/u16/u32/u64 types in decimal

Mathieu Poirier (1):
  tools: Copy coresight-pmu.h header file needed by perf tools

Rui Teng (2):
  perf tools: Use __weak definition from linux/compiler.h
  perf tools: Skip running the feature tests for 'make install-doc'

 Documentation/trace/kprobetrace.txt|  9 ++-
 Documentation/trace/uprobetracer.txt   |  9 ++-
 kernel/trace/trace.c   | 24 ++
 kernel/trace/trace_kprobe.c|  4 +
 kernel/trace/trace_probe.c | 30 
 kernel/trace/trace_probe.h | 11 ++-
 kernel/trace/trace_uprobe.c|  4 +
 tools/include/linux/coresight-pmu.h| 39 ++
 tools/include/linux/time64.h   | 12 +++
 tools/perf/Documentation/perf-config.txt   |  4 +
 tools/perf/Documentation/perf-probe.txt|  5 +-
 tools/perf/MANIFEST|  2 +
 tools/perf/Makefile.perf   |  5 +-
 tools

[GIT PULL 00/35] perf/core improvements and fixes

2017-12-28 Thread 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 faaf95677f33dac910b6cbe917cabea43c8c1616:

  Merge branch 'perf/urgent' into perf/core, to pick up fixes (2017-12-18 
18:13:00 +0100)

are available in the git repository at:

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

for you to fetch changes up to 5d4fd9c8b83b36d34521b3af361a5726899045bf:

  perf tools: Auto-complete for events with ':' (2017-12-27 12:16:00 -0300)


perf/core improvements and fixes:

- Allow system wide 'perf stat --per-thread', sorting the result (Jin Yao)

  E.g.:

  [root@jouet ~]# perf stat --per-thread --metrics IPC
  ^C
   Performance counter stats for 'system wide':

  make-9  23,012,094,032  inst_retired.any   #  0.8 IPC
   cc1-22419 692,027,497  inst_retired.any   #  0.8 IPC
   gcc-22418 328,231,855  inst_retired.any   #  0.9 IPC
   cc1-22509 220,853,647  inst_retired.any   #  0.8 IPC
   gcc-22486 199,874,810  inst_retired.any   #  1.0 IPC
as-22466 177,896,365  inst_retired.any   #  0.9 IPC
   cc1-22465 150,732,374  inst_retired.any   #  0.8 IPC
   gcc-22508 112,555,593  inst_retired.any   #  0.9 IPC
   cc1-22487 108,964,079  inst_retired.any   #  0.7 IPC
   qemu-system-x86-2697   21,330,550  inst_retired.any   #  0.3 IPC
   systemd-journal-55120,642,951  inst_retired.any   #  0.4 IPC
   docker-containe-17651   9,552,892  inst_retired.any   #  0.5 IPC
   dockerd-current-98097,528,586  inst_retired.any   #  0.5 IPC
  make-22153  12,504,194,380  inst_retired.any   #  0.8 IPC
   python2-22429  12,081,290,954  inst_retired.any   #  0.8 IPC
  
   python2-22429  15,026,328,103  cpu_clk_unhalted.thread
   cc1-22419 826,660,193  cpu_clk_unhalted.thread
   gcc-22418 365,321,295  cpu_clk_unhalted.thread
   cc1-22509 279,169,362  cpu_clk_unhalted.thread
   gcc-22486 210,156,950  cpu_clk_unhalted.thread
  

   5.638075538 seconds time elapsed

  [root@jouet ~]#

- Improve shell auto-completion of perf events (Jin Yao)

-  Fix symbol fixup issues in arm64 due to ELF type (Kim Phillips)

- Ignore threads when they vanish after procfs based enumeration and
  before we try to use them with sys_perf_event_open(), i.e. just remove
  them from the thread_map and continue with the rest. This makes, among
  other cases, the previous new feature (perf stat --per-thread for system
  wide, albeit that not seeming to be the motivation for this patch) more
  robust. (Mengting Zhang)

- Generate s390 syscall table from asm/unistd.h, doing like x86,
  removing the dependency on audit-libs to do this id->string translation,
  speeding up the support for newly introducted syscalls (Hendrik Brueckner)

- Fix 'perf test' on filesystems where readdir() returns d_type == DT_UNKNOWN,
  such as XFS (Jiri Olsa)

- Fix PERF_SAMPLE_RAW_DATA endianity handling for cross-arch tracepoint
  processing (Jiri Olsa)

- Add __return suffix for return events in 'perf probe', streamlining
  entry/exit tracing (Masami Hiramatsu)

- Improve support for versioned symbols in 'perf probe" (Masami Hiramatsu)

- Clarify error message about invalid 'perf probe' event names (Masami 
Hiramatsu)

- Fix check open filename arg using 'perf trace' in a 'perf test' entry for
  systems using glibc >= 2.26, such as some ARM and s390 distros (Michael 
Petlan)

- Make method for obtaining the (normalized) architecture id for a
  perf.data file or for the running system used by the annotation routines
  generally available, next user will be for generating per arch errno
  string tables to allow for pretty printing errno codes recorded in a
  perf.data file in architecture A to be properly decoded on hardware
  archictecture B.  (Arnaldo Carvalho de Melo)

- Remove duplicate includes, found using scripts/checkincludes.pl (Pravin 
Shedge)

- s390 needs -fPIC, enable it, also revert a patch that supposedly did
  that but instead enabled -fPIC for x86 (Hendrik Brueckner, Arnaldo Carvalho 
de Melo)

Signed-off-by: Arnaldo Carvalho de Melo 


Arnaldo Carvalho de Melo (4):
  perf annotate: Get the cpuid from evsel->evlist->env in symbol__annotate()
  perf annotate: Use perf_env when obtaining the arch name
  perf env: Adopt perf_env__arch() from the annotate code
  Revert "perf s390: Always build with -fPIC"

Hendrik Brueckner (4):
  tools include s390: Grab a copy of arch/s390/include/uapi/asm/unistd.h
  perf s390: Generate system call table from asm/unistd.h
  perf trace: Use generated syscall table on s390 too
  perf s390: Always

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

2013-12-27 Thread Arnaldo Carvalho de Melo
Em Fri, Dec 20, 2013 at 04:08:35PM -0300, Arnaldo Carvalho de Melo escreveu:
> User visible changes:
> 
> Improvements:
> 
> . Do not show stats if workload fails in 'stat' (David Ahern)

Hi Ingo,

Please hold on, as reported elsewhere, the above change broke
'perf stat valid-workload', so I removed it from my tree.

I'll resubmit soon with a bunch more,

Thanks,

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2018-08-15 Thread Andy Lutomirski


> On Aug 15, 2018, at 8:05 AM, Arnaldo Carvalho de Melo  wrote:
> 
> From: Arnaldo Carvalho de Melo 
> 
> Hi Ingo,
> 
>Please consider pulling, this is on top of
> perf-core-for-mingo-4.19-20180809, that is not yet in tip.
> 
> Thanks,
> 
> - Arnaldo
> 
> Test results at the end of this message, as usual.
> 
> The following changes since commit 6a9405b56c274024564f9014bba97b92c91b34d6:
> 
>  perf map: Optimize maps__fixup_overlappings() (2018-08-08 15:56:00 -0300)
> 
> 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.19-20180815
> 
> for you to fetch changes up to 6855dc41b24619c3d1de3dbd27dd0546b0e45272:
> 
>  x86: Add entry trampolines to kcore

I don’t object per se, but once I finish rebasing and testing my entry 
trampoline removal code, this will probably have to go.

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

2018-08-18 Thread Ingo Molnar


* Arnaldo Carvalho de Melo  wrote:

> From: Arnaldo Carvalho de Melo 
> 
> Hi Ingo,
> 
>   Please consider pulling, this is on top of
> perf-core-for-mingo-4.19-20180809, that is not yet in tip.
> 
> Thanks,
> 
> - Arnaldo
> 
> Test results at the end of this message, as usual.
> 
> The following changes since commit 6a9405b56c274024564f9014bba97b92c91b34d6:
> 
>   perf map: Optimize maps__fixup_overlappings() (2018-08-08 15:56:00 -0300)
> 
> 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.19-20180815
> 
> for you to fetch changes up to 6855dc41b24619c3d1de3dbd27dd0546b0e45272:
> 
>   x86: Add entry trampolines to kcore (2018-08-14 19:13:26 -0300)
> 
> 
> perf/core improvements ad fixes:
> 
> kernel:
> 
> . kallsyms, x86: Export addresses of PTI entry trampolines (Alexander 
> Shishkin)
> 
> . kallsyms: Simplify update_iter_mod() (Adrian Hunter)
> 
> . x86: Add entry trampolines to kcore (Adrian Hunter)
> 
> Hardware tracing:
> 
> . Fix auxtrace queue resize (Adrian Hunter)
> 
> Arch specific:
> 
> . Fix uninitialized ARM SPE record error variable (Kim Phillips)
> 
> . Fix trace event post-processing in powerpc (Sandipan Das)
> 
> Build:
> 
> . Fix check-headers.sh AND list path of execution (Alexander Kapshuk)
> 
> . Remove -mcet and -fcf-protection when building the python binding
>   with older clang versions (Arnaldo Carvalho de Melo)
> 
> . Make check-headers.sh check based on kernel dir (Jiri Olsa)
> 
> . Move syscall_64.tbl check into check-headers.sh (Jiri Olsa)
> 
> Infrastructure:
> 
> . Check for null when copying nsinfo.  (Benno Evers)
> 
> Libraries:
> 
> . Rename libtraceevent prefixes, prep work for making it a shared
>   library generaly available (Tzvetomir Stoyanov (VMware))
> 
> Signed-off-by: Arnaldo Carvalho de Melo 
> 
> 
> Adrian Hunter (3):
>   perf auxtrace: Fix queue resize
>   kallsyms: Simplify update_iter_mod()
>   x86: Add entry trampolines to kcore
> 
> Alexander Kapshuk (1):
>   perf tools: Fix check-headers.sh AND list path of execution
> 
> Alexander Shishkin (1):
>   kallsyms, x86: Export addresses of PTI entry trampolines
> 
> Arnaldo Carvalho de Melo (1):
>   perf python: Remove -mcet and -fcf-protection when building with clang
> 
> Benno Evers (1):
>   perf tools: Check for null when copying nsinfo.
> 
> Jiri Olsa (2):
>   perf tools: Make check-headers.sh check based on kernel dir
>   perf tools: Move syscall_64.tbl check into check-headers.sh
> 
> Kim Phillips (1):
>   perf arm spe: Fix uninitialized record error variable
> 
> Sandipan Das (1):
>   perf probe powerpc: Fix trace event post-processing
> 
> Tzvetomir Stoyanov (VMware) (24):
>   tools lib traceevent, perf tools: Rename struct pevent to struct 
> tep_handle
>   tools lib traceevent, perf tools: Rename 'struct pevent_record' to 
> 'struct tep_record'
>   tools lib traceevent, perf tools: Rename pevent plugin related APIs
>   tools lib traceevent, perf tools: Rename pevent alloc / free APIs
>   tools lib traceevent, perf tools: Rename pevent find APIs
>   tools lib traceevent, perf tools: Rename pevent parse APIs
>   tools lib traceevent, perf tools: Rename pevent print APIs
>   tools lib traceevent, perf tools: Rename pevent_read_number_* APIs
>   tools lib traceevent, perf tools: Rename pevent_register_* APIs
>   tools lib traceevent, perf tools: Rename pevent_set_* APIs
>   tools lib traceevent, perf tools: Rename traceevent_* APIs
>   tools lib traceevent, perf tools: Rename 'enum pevent_flag' to 'enum 
> tep_flag'
>   tools lib traceevent, tools lib lockdep: Rename 'enum pevent_errno' to 
> 'enum tep_errno'
>   tools lib traceevent: Rename pevent_function* APIs
>   tools lib traceevent,  perf tools: Rename traceevent_plugin_* APIs
>   tools lib traceevent: Rename pevent_filter* APIs
>   tools lib traceevent: Rename pevent_register / unregister APIs
>   tools lib traceevent: Rename pevent_data_ APIs
>   tools lib traceevent: Rename pevent field APIs
>   tools lib traceevent: Rename pevent_find_* APIs
>   tools lib traceevent: Rename various pevent get/set/is APIs
>   tools lib traceevent: Rename internal parser related APIs
>   tools lib traceevent: Rename various pevent APIs
>   tools lib traceevent: Rename static variables and functions in 
> event-parse.c
> 
>  arch/x86/mm/cpu_entry_area.c   |  33 +
>  fs/proc/kcore.c|   7 +-
>  include/linux/kcore.h  |  13 +
>  kernel/kallsyms.c  |  51 +-
>  tools/lib/lockdep/Makefile |   4 +-
>  tools/lib/traceevent/Makefile  |   4 +-
>  tools/lib/tr

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

2017-03-06 Thread Ingo Molnar

* Arnaldo Carvalho de Melo  wrote:

> From: 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 9d020d33fc1b2faa0eb35859df1381ca5dc94ffe:
> 
>   Merge branch 'linus' into perf/urgent, to resolve conflict (2017-03-02 
> 08:05:45 +0100)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git 
> tags/perf-core-for-mingo-4.11-20170306
> 
> for you to fetch changes up to 001916b94a04809a94abb07daba6f9ace01906ba:
> 
>   perf bench numa: Add more comment for -c option (2017-03-06 12:39:30 -0300)
> 
> 
> perf/core improvements and fixes:
> 
> New features:
> 
> - Allow sorting by symbol_size in 'perf report' and 'perf top' (Charles 
> Baylis)
> 
>   E.g.:
> 
>   # perf report -s symbol_size,symbol
> 
>   Samples: 9K of event 'cycles:k', Event count (approx.): 2870461623
>   Overhead  Symbol size  Symbol
> 14.55%  326  [k] flush_tlb_mm_range
>  7.20% 1045  [k] filemap_map_pages
>  5.82%  124  [k] vma_interval_tree_insert
>  5.18% 2430  [k] unmap_page_range
>  2.57%  571  [k] vma_interval_tree_remove
>  1.94%  494  [k] page_add_file_rmap
>  1.82%  740  [k] page_remove_rmap
>  1.66% 1017  [k] release_pages
>  1.57% 1636  [k] update_blocked_averages
>  1.57%   76  [k] unlock_page
> 
> - Add support for -p/--pid, -a/--all-cpus and -C/--cpu in 'perf ftrace' 
> (Namhyung Kim)
> 
> Change in behaviour:
> 
> - Make system wide (-a) the default option if no target was specified and one
>   of following conditions is met:
> 
>   - No workload specified (current behaviour)
> 
>   - A workload is specified but all requested events are system wide ones,
> like uncore ones. (Jiri Olsa)
> 
> Fixes:
> 
> - Add missing initialization to the instruction decoder used in the
>   intel PT/BTS code, which was causing lots of failures in 'perf test',
>   looking for a value when there was none (Adrian Hunter)
> 
> Infrastructure:
> 
> - Add arch code needed to adopt the kernel's refcount_t to aid in
>   catching bugs when using atomic_t as a reference counter, basically
>   cmpxchg related functions (Arnaldo Carvalho de Melo)
> 
> - Convert the code using atomic_t as reference counts to refcount_t
>   (Elena Rashetova)
> 
> - Add feature test for sched_getcpu() to more easily check for its
>   presence in the many libc implementations and accross different
>   versions of such C libraries (Arnaldo Carvalho de Melo)
> 
> - Issue a HW watchdog disable hint in 'perf stat' for when some of the
>   requested events can't get counted because a PMU counter is taken by that
>   watchdog (Borislav Petkov).
> 
> - Add mapping for Intel's KnightsMill PMU events (Karol Wachowski)
> 
> Documentation:
> 
> - Clarify the term 'convergence' in:
> 
>perf bench numa numa-mem -h --show_convergence (Jiri Olsa)
> 
> Kernel code:
> 
> - Ensure probe location is at function entry in kretprobes (Naveen N. Rao)
> 
> - Allow return probes with offsets and absolute addresses (Naveen N. Rao)
> 
> Signed-off-by: Arnaldo Carvalho de Melo 
> 
> 
> Adrian Hunter (1):
>   perf intel-PT/BTS: Add missing initialization
> 
> Arnaldo Carvalho de Melo (12):
>   tools include: Adopt __compiletime_error
>   tools arch x86: Include asm/cmpxchg.h
>   tools arch x86: Introduce atomic_cmpxchg()
>   tools include: Introduce atomic_cmpxchg_{relaxed,release}()
>   tools include: Provide gcc based cmpxchg fallback for !x86
>   tools include: Add UINT_MAX def to kernel.h
>   tools include: Adopt kernel's refcount.h
>   perf evlist: Clarify a bit the use of perf_mmap->refcnt
>   tools build: Add test for sched_getcpu()
>   perf bench futex: Use __maybe_unused
>   perf bench futex: Fix build on musl + clang
>   tools build: Use the same CC for feature detection and actual build
> 
> Borislav Petkov (1):
>   perf stat: Issue a HW watchdog disable hint
> 
> Charles Baylis (1):
>   perf tools: Allow sorting by symbol size
> 
> Elena Reshetova (9):
>   perf cgroup: Convert cgroup_sel.refcnt from atomic_t to refcount_t
>   perf cpumap: Convert cpu_map.refcnt from atomic_t to refcount_t
>   perf comm: Convert comm_str.refcnt from atomic_t to refcount_t
>   perf dso: Convert dso.refcnt from atomic_t to refcount_t
>   perf map: Convert map.refcnt from atomic_t to refcount_t
>   perf map: Convert map_groups.refcnt from atomic_t to refcount_t
>   perf evlist: Convert perf_map.refcnt from atomic_t to refcount_t
>   perf thread: convert thread.refcnt from atomic_t to refcount_t
>   perf thread_map: Convert thread_map.refcnt from atomic_t to refcount_t
> 
> Jiri Ols

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

2016-08-24 Thread Ingo Molnar

* Arnaldo Carvalho de Melo  wrote:

> Hi Ingo,
> 
>   Please consider pulling, I first merged tip/perf/urgent into a
> tip/perf/core and rebased the patches I had in acme/perf/core.
> 
> - Arnaldo
> 
> Build stats at the end of this message.
> 
> The following changes since commit ce90c12d2453aa6be743719bb0a5d4040b92700f:
> 
>   Merge branch 'perf/urgent' into perf/core, to pick up fixes before merging 
> new changes (2016-08-23 15:35:47 -0300)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git 
> tags/perf-core-for-mingo-20160823
> 
> for you to fetch changes up to 5e30d55c71de058e4156080fe32d426c22d094cb:
> 
>   perf record: Fix spelling mistake "Finshed" -> "Finished" (2016-08-23 
> 17:06:40 -0300)
> 
> 
> perf/core improvements and fixes:
> 
> User visible:
> 
> . Allow configuring the default 'perf report -s' sort order in ~/.perfconfig,
>   for instance, "sym,dso" may be more fitting for kernel developers. (Arnaldo 
> Carvalho de Melo)
> 
> - Support x8/x16/x32/x64 hexadecimal "types" in ftrace and 'perf probe' 
> (Masami Hiramatsu)
> 
> Infrastructure:
> 
> - Skip running the feature tests for 'make install-doc' (Rui Teng)
> 
> - Introduce tools/include/linux/time64.h with *SEC_PER_*SEC macros
>   to use in all of tools/ (Arnaldo Carvalho de Melo)
> 
> - Break down symbol__disassemble() into multiple functions, to ease
>   future work on better reporting the errors that may take place in
>   the various steps it performs (possibly decompressing kernel module
>   files, getting build-id keyed files, calling objdump, parsing its
>   output, etc) (Arnaldo Carvalho de Melo)
> 
> - Typo fixes in various places (Colin Ian King)
> 
> - Remove superfluous NULL check in the TUI code (Colin Ian King)
> 
> - Allow displaying multiple header lines in the TUI browser, prep
>   work for the 'perf c2c' browser (Jiri Olsa)
> 
> - Copy coresight-pmu.h header file needed by perf tools (Mathieu Poirier)
> 
> - Use __weak definition from linux/compiler.h (Rui Teng)
> 
> Signed-off-by: Arnaldo Carvalho de Melo 
> 
> 
> 
> Arnaldo Carvalho de Melo (16):
>   tools: Introduce tools/include/linux/time64.h for *SEC_PER_*SEC macros
>   perf bench numa: Use NSEC_PER_U?SEC
>   perf sched: Use linux/time64.h
>   perf timechart: Use NSEC_PER_U?SEC
>   perf bench sched-pipe: Use linux/time64.h, USEC_PER_SEC
>   perf stat: Use *SEC_PER_*SEC macros
>   perf bench mem: Use USEC_PER_SEC
>   perf bench sched-messaging: Use USEC_PER_MSEC
>   perf record: Use USEC_PER_MSEC
>   perf kvm: Use NSEC_PER_USEC
>   perf bench futex: Use NSEC_PER_USEC
>   perf top: Use MSEC_PER_SEC
>   perf disassemble: Move check for kallsyms + !kcore
>   perf disassemble: Simplify logic for picking the filename to disassemble
>   perf disassemble: Extract logic to find file to pass to objdump to a 
> separate function
>   perf report: Allow configuring the default sort order in ~/.perfconfig
> 
> Colin Ian King (5):
>   perf hists browser: Remove superfluous null check on map
>   perf tools: Fix typo: "ehough" -> "enough"
>   perf test bpf: Fix typo: "ehough" -> "enough"
>   perf bpf: Fix typo: "ehough" -> "enough"
>   perf record: Fix spelling mistake "Finshed" -> "Finished"
> 
> Jiri Olsa (5):
>   perf hists: Introduce nr_header_lines into struct perf_hpp_list
>   perf hists: Add line argument into perf_hpp_fmt's header callback
>   perf tools tui: Display multiple header lines
>   perf tools stdio: Display multiple header lines
>   perf hists: Add support for header span
> 
> Masami Hiramatsu (6):
>   ftrace: kprobe: uprobe: Add x8/x16/x32/x64 for hexadecimal types
>   ftrace: probe: Add README entries for k/uprobe-events
>   perf probe: Add supported for type casting by the running kernel
>   perf probe: Support hexadecimal casting
>   perf probe: Use hexadecimal type by default if possible
>   ftrace: kprobe: uprobe: Show u8/u16/u32/u64 types in decimal
> 
> Mathieu Poirier (1):
>   tools: Copy coresight-pmu.h header file needed by perf tools
> 
> Rui Teng (2):
>   perf tools: Use __weak definition from linux/compiler.h
>   perf tools: Skip running the feature tests for 'make install-doc'
> 
>  Documentation/trace/kprobetrace.txt|  9 ++-
>  Documentation/trace/uprobetracer.txt   |  9 ++-
>  kernel/trace/trace.c   | 24 ++
>  kernel/trace/trace_kprobe.c|  4 +
>  kernel/trace/trace_probe.c | 30 
>  kernel/trace/trace_probe.h | 11 ++-
>  kernel/trace/trace_uprobe.c|  4 +
>  tools/include/linux/coresight-pmu.h| 39 ++
>  tools/include/linux/time64.

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

2017-12-28 Thread Ingo Molnar

* Arnaldo Carvalho de Melo  wrote:

> Hi Ingo,
> 
>   Please consider pulling,
> 
> - Arnaldo
> 
> 
> Test results at the end of this message, as usual.
> 
> The following changes since commit faaf95677f33dac910b6cbe917cabea43c8c1616:
> 
>   Merge branch 'perf/urgent' into perf/core, to pick up fixes (2017-12-18 
> 18:13:00 +0100)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git 
> tags/perf-core-for-mingo-4.16-20171227
> 
> for you to fetch changes up to 5d4fd9c8b83b36d34521b3af361a5726899045bf:
> 
>   perf tools: Auto-complete for events with ':' (2017-12-27 12:16:00 -0300)
> 
> 
> perf/core improvements and fixes:
> 
> - Allow system wide 'perf stat --per-thread', sorting the result (Jin Yao)
> 
>   E.g.:
> 
>   [root@jouet ~]# perf stat --per-thread --metrics IPC
>   ^C
>Performance counter stats for 'system wide':
> 
>   make-9  23,012,094,032  inst_retired.any   #  0.8 IPC
>cc1-22419 692,027,497  inst_retired.any   #  0.8 IPC
>gcc-22418 328,231,855  inst_retired.any   #  0.9 IPC
>cc1-22509 220,853,647  inst_retired.any   #  0.8 IPC
>gcc-22486 199,874,810  inst_retired.any   #  1.0 IPC
> as-22466 177,896,365  inst_retired.any   #  0.9 IPC
>cc1-22465 150,732,374  inst_retired.any   #  0.8 IPC
>gcc-22508 112,555,593  inst_retired.any   #  0.9 IPC
>cc1-22487 108,964,079  inst_retired.any   #  0.7 IPC
>qemu-system-x86-2697   21,330,550  inst_retired.any   #  0.3 IPC
>systemd-journal-55120,642,951  inst_retired.any   #  0.4 IPC
>docker-containe-17651   9,552,892  inst_retired.any   #  0.5 IPC
>dockerd-current-98097,528,586  inst_retired.any   #  0.5 IPC
>   make-22153  12,504,194,380  inst_retired.any   #  0.8 IPC
>python2-22429  12,081,290,954  inst_retired.any   #  0.8 IPC
>   
>python2-22429  15,026,328,103  cpu_clk_unhalted.thread
>cc1-22419 826,660,193  cpu_clk_unhalted.thread
>gcc-22418 365,321,295  cpu_clk_unhalted.thread
>cc1-22509 279,169,362  cpu_clk_unhalted.thread
>gcc-22486 210,156,950  cpu_clk_unhalted.thread
>   
> 
>5.638075538 seconds time elapsed
> 
>   [root@jouet ~]#
> 
> - Improve shell auto-completion of perf events (Jin Yao)
> 
> -  Fix symbol fixup issues in arm64 due to ELF type (Kim Phillips)
> 
> - Ignore threads when they vanish after procfs based enumeration and
>   before we try to use them with sys_perf_event_open(), i.e. just remove
>   them from the thread_map and continue with the rest. This makes, among
>   other cases, the previous new feature (perf stat --per-thread for system
>   wide, albeit that not seeming to be the motivation for this patch) more
>   robust. (Mengting Zhang)
> 
> - Generate s390 syscall table from asm/unistd.h, doing like x86,
>   removing the dependency on audit-libs to do this id->string translation,
>   speeding up the support for newly introducted syscalls (Hendrik Brueckner)
> 
> - Fix 'perf test' on filesystems where readdir() returns d_type == DT_UNKNOWN,
>   such as XFS (Jiri Olsa)
> 
> - Fix PERF_SAMPLE_RAW_DATA endianity handling for cross-arch tracepoint
>   processing (Jiri Olsa)
> 
> - Add __return suffix for return events in 'perf probe', streamlining
>   entry/exit tracing (Masami Hiramatsu)
> 
> - Improve support for versioned symbols in 'perf probe" (Masami Hiramatsu)
> 
> - Clarify error message about invalid 'perf probe' event names (Masami 
> Hiramatsu)
> 
> - Fix check open filename arg using 'perf trace' in a 'perf test' entry for
>   systems using glibc >= 2.26, such as some ARM and s390 distros (Michael 
> Petlan)
> 
> - Make method for obtaining the (normalized) architecture id for a
>   perf.data file or for the running system used by the annotation routines
>   generally available, next user will be for generating per arch errno
>   string tables to allow for pretty printing errno codes recorded in a
>   perf.data file in architecture A to be properly decoded on hardware
>   archictecture B.  (Arnaldo Carvalho de Melo)
> 
> - Remove duplicate includes, found using scripts/checkincludes.pl (Pravin 
> Shedge)
> 
> - s390 needs -fPIC, enable it, also revert a patch that supposedly did
>   that but instead enabled -fPIC for x86 (Hendrik Brueckner, Arnaldo Carvalho 
> de Melo)
> 
> Signed-off-by: Arnaldo Carvalho de Melo 
> 
> 
> Arnaldo Carvalho de Melo (4):
>   perf annotate: Get the cpuid from evsel->evlist->env in 
> symbol__annotate()
>   perf annotate: Use perf_env when obtaining the arch name
>   perf env: Adopt perf_env__arch() from the annotate code
>   Revert "perf s390:

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

2019-03-09 Thread Ingo Molnar


* Arnaldo Carvalho de Melo  wrote:

> Hi Ingo,
> 
>   Please consider pulling,
> 
> - Arnaldo
> 
> Test results at the end of this message, as usual.
> 
> The following changes since commit c978b9460fe1d4a1e1effa0abd6bd69b18a098a8:
> 
>   Merge tag 'perf-core-for-mingo-5.1-20190225' of 
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core 
> (2019-02-28 08:29:50 +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-20190307
> 
> for you to fetch changes up to b8f7d86b5849ea7bb84bddc0345a3799049764d4:
> 
>   perf data: Force perf_data__open|close zero data->file.path (2019-03-06 
> 18:21:00 -0300)
> 
> 
> perf bpf:
> 
>   Arnaldo Carvalho de Melo:
> 
>   - Automatically add BTF ELF markers to 'perf trace' BPF programs, so that
> tools such as 'bpftool map dump' can pretty print map keys and values.
> 
> perf c2c:
> 
>   Jiri Olsa:
> 
>   - Fix report for empty NUMA node.
> 
> perf diff:
> 
>   Jin Yao:
> 
>   - Support --time, --cpu, --pid and --tid filter options.
> 
> perf probe:
> 
>   Arnaldo Carvalho de Melo:
> 
>   - Clarify error message about not finding kernel modules debuginfo.
> 
> perf record:
> 
>   Jiri Olsa:
> 
>   - Fixup probing for max attr.precise_ip.
> 
> perf trace:
> 
>   Arnaldo Carvalho de Melo:
> 
>   - Add missing %s lost in the 'msg_flags' recvmmsg arg when adding prefix 
> suppression logic.
> 
> perf annotate:
> 
>   Arnaldo Carvalho de Melo:
> 
>   - Calculate the max instruction name, align column to that, removing the
> hardcoded max 6 chars and cope with instructions with names longer than 
> that,
> such as vpmovmskb, vpcmpeqb, etc.
> 
> kernel:
> 
>   Song Liu:
> 
>   - Consider events with attr.bpf_event set as side-band.
> 
>   Gustavo A. R. Silva:
> 
>   - Mark expected switch fall-through in perf_event_parse_addr_filter().
> 
> Libraries:
> 
>   Jiri Olsa:
> 
>   - Fix leaks and double frees on error paths.
> 
> libtraceevent:
> 
>   Tony Jones:
> 
>   - Fix buffer overflow in arg_eval().
> 
> python scripting:
> 
>   Tony Jones:
> 
>   - More python3 fixes.
> 
> Trivial:
> 
>   Yang Wei:
> 
>   - Remove needless extra semicolon in clang C++ glue code.
> 
> Intel PT/BTS:
> 
>   Adrian Hunter:
> 
>   - Improve auxtrace address filter error message when there is no DSO.
> 
>   - Fix divide by zero when TSC is not available.
> 
>   - Further improvements to the export to sqlite/posgresql python scripts
> and to the GUI sqlviewer, exporting 'parent_id' so that we have enable
> the creation of call trees.
> 
>   Andi Kleen:
> 
>   - Generalize function to copy from thread addr space from intel-bts code.
> 
> Signed-off-by: Arnaldo Carvalho de Melo 
> 
> 
> Adrian Hunter (10):
>   perf auxtrace: Improve address filter error message when there is no DSO
>   perf intel-pt: Fix divide by zero when TSC is not available
>   perf db-export: Add calls parent_id to enable creation of call trees
>   perf scripts python: export-to-sqlite.py: Export calls parent_id
>   perf scripts python: export-to-postgresql.py: Fix invalid input syntax 
> for integer error
>   perf scripts python: export-to-postgresql.py: Export calls parent_id
>   perf scripts python: exported-sql-viewer.py: Factor out TreeWindowBase
>   perf scripts python: exported-sql-viewer.py: Improve TreeModel 
> abstraction
>   perf scripts python: exported-sql-viewer.py: Factor out 
> CallGraphModelBase
>   perf scripts python: exported-sql-viewer.py: Add call tree
> 
> Andi Kleen (1):
>   perf thread: Generalize function to copy from thread addr space from 
> intel-bts code
> 
> Arnaldo Carvalho de Melo (4):
>   perf probe: Clarify error message about not finding kernel modules 
> debuginfo
>   perf beauty msg_flags: Add missing %s lost when adding prefix 
> suppression logic
>   perf bpf: Automatically add BTF ELF markers
>   perf annotate: Calculate the max instruction name, align column to that
> 
> Gustavo A. R. Silva (1):
>   perf: Mark expected switch fall-through
> 
> Jin Yao (4):
>   perf time-utils: Refactor time range parsing code
>   perf diff: Support --time filter option
>   perf diff: Support --cpu filter option
>   perf diff: Support --pid/--tid filter options
> 
> Jiri Olsa (7):
>   perf c2c: Fix c2c report for empty numa node
>   perf hist: Add error path into hist_entry__init
>   perf hist: Fix memory leak of srcline
>   perf tools: Read and store caps/max_precise in perf_pmu
>   perf evsel: Probe for precise_ip with simple attr
>   perf session: Fix double free in perf_data__close
>   perf data: Force perf_data__open|close zero data->file.path
> 
> Song Liu (1):
>   perf, bpf: Consider events with attr.bpf_event as side-band e