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

From: Ingo Molnar
Date: Sat Mar 05 2016 - 03:08:37 EST



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

> Em Thu, Mar 03, 2016 at 09:21:30AM +0100, Ingo Molnar escreveu:
>
> > Hm, there's a 'perf stat' regression that I can see:
> >
> > Before:
> > # 1.59 stalled cycles per insn
> > 1,818,488,088 branches # 151.667 M/sec
> >
> > After:
> >
> > triton:~/tip> perf stat -a sleep 1
> >
> > 24166678 branches # 2.016 M/sec
> >
> > ... see how the numbers became human-unreadable, losing the big-number separator?
> >
> > I suspect it's due to the following commit:
> >
> > fa184776ac27 perf stat: Check existence of frontend/backed stalled cycles
>
> Ok, I inserted Jiri's patch fixing the problem just before the commit
> (fa184776ac27) that triggers it, so that we don't break bisection for
> human-readable numbers in 'perf stat'.
>
> Its all in a new signed tag, that combines the two outstanding ones
> (perf-core-for-mingo-20160229 + perf-core-for-mingo-20160302), please
> consider pulling.
>
> - Arnaldo
>
> The following changes since commit 675965b00d734c985e4285f5bec7e524d15fc4e1:
>
> perf: Export perf_event_sysfs_show() (2016-02-29 09:35:27 +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-20160303
>
> for you to fetch changes up to fb4605ba47e772ff9d62d1d54218a832ec8b3e1d:
>
> perf stat: Check for frontend stalled for metrics (2016-03-03 11:10:40 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Check existence of frontend/backed stalled cycles in 'perf stat' (Andi Kleen)
>
> - Implement CSV metrics output in 'perf stat' (Andi Kleen)
>
> - Support metrics in 'perf stat' --per-core/socket mode (Andi Kleen)
>
> - Avoid installing .o files from tools/lib/ into the python extension (Jiri Olsa)
>
> - Rename the tracepoint '/format' field that carries the syscall ID from 'nr',
> that is also the name of some syscalls arguments, to "__syscall_nr", to
> avoid having multiple fields with the same name, that was breaking the
> python script skeleton generator from perf.data files (Taeung Song)
>
> - Support converting data from bpf events in 'perf data' (Wang Nan)
>
> - Fix segfault in 'perf test' hists related entries (Arnaldo Carvalho de Melo)
>
> - Fix output of %llu for 64 bit values read on 32 bit machines in libtraceevent (Steven Rostedt)
>
> - Fix time stamp rounding issue in libtraceevent (Chaos.Chen)
>
> Infrastructure:
>
> - Fix setlocale() breakage in the pmu parsing code (Jiri Olsa)
>
> - Split libtraceevent's pevent_print_event() (Steven Rostedt)
>
> - Librarize some 'perf record' bits to allow handling multiple perf.data
> files per session (Wang Nan)
>
> - Ensure return non-zero rc when mmap fails in 'perf record' (Wang Nan)
>
> - Fix double free on 'command_line' in a error path in 'perf script' (Colin Ian King)
>
> - Initialize struct sigaction 'sa_flags' field in a 'perf test' entry (Colin Ian King)
>
> - Fix various build warnings in turbostat, detected with gcc6 (Colin Ian King)
>
> - Use .s extension for preprocessed assembler code (Masahiro Yamada)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> ----------------------------------------------------------------
> Andi Kleen (4):
> perf stat: Check existence of frontend/backed stalled cycles
> perf stat: Implement CSV metrics output
> perf stat: Support metrics in --per-core/socket mode
> perf stat: Check for frontend stalled for metrics
>
> Arnaldo Carvalho de Melo (1):
> perf test: Fix hists related entries
>
> Chaos.Chen (1):
> tools lib traceevent: Fix time stamp rounding issue
>
> Colin Ian King (3):
> perf script: Fix double free on command_line
> perf tests: Initialize sa.sa_flags
> tools/power turbostat: fix various build warnings
>
> Jiri Olsa (2):
> perf tools: Fix python extension build
> perf tools: Fix locale handling in pmu parsing
>
> Masahiro Yamada (1):
> tools build: Use .s extension for preprocessed assembler code
>
> Steven Rostedt (1):
> tools lib traceevent: Split pevent_print_event() into specific functionality functions
>
> Steven Rostedt (Red Hat) (2):
> tools lib traceevent: Set int_array fields to NULL if freeing from error
> tools lib traceevent: Fix output of %llu for 64 bit values read on 32 bit machines
>
> Taeung Song (2):
> perf trace: Check and discard not only 'nr' but also '__syscall_nr'
> tracing/syscalls: Rename "/format" tracepoint field name "nr" to "__syscall_nr:
>
> Wang Nan (6):
> perf data: Support converting data from bpf_perf_event_output()
> perf data: Explicitly set byte order for integer types
> perf record: Use WARN_ONCE to replace 'if' condition
> perf record: Extract synthesize code to record__synthesize()
> perf record: Introduce record__finish_output() to finish a perf.data
> perf record: Ensure return non-zero rc when mmap fail
>
> kernel/trace/trace_syscalls.c | 16 +-
> tools/build/Makefile.build | 2 +-
> tools/lib/traceevent/event-parse.c | 146 ++++++++++++++----
> tools/lib/traceevent/event-parse.h | 13 ++
> tools/perf/arch/x86/tests/rdpmc.c | 1 +
> tools/perf/builtin-record.c | 168 ++++++++++++---------
> tools/perf/builtin-stat.c | 158 +++++++++++++++++--
> tools/perf/builtin-trace.c | 8 +-
> tools/perf/util/data-convert-bt.c | 118 ++++++++++++++-
> tools/perf/util/pmu.c | 13 ++
> .../util/scripting-engines/trace-event-python.c | 4 +-
> tools/perf/util/setup.py | 4 +
> tools/perf/util/sort.c | 37 +++--
> tools/perf/util/stat-shadow.c | 18 ++-
> tools/perf/util/stat.h | 1 +
> tools/power/x86/turbostat/turbostat.c | 8 +-
> 16 files changed, 566 insertions(+), 149 deletions(-)

Pulled, thanks a lot Arnaldo!

Ingo