All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 0/5] perf stat: Support overall statistics for interval mode
@ 2020-05-20  4:27 Jin Yao
  2020-05-20  4:27 ` [PATCH v6 1/5] perf stat: Fix wrong per-thread runtime stat " Jin Yao
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Jin Yao @ 2020-05-20  4:27 UTC (permalink / raw)
  To: acme, jolsa, peterz, mingo, alexander.shishkin
  Cc: Linux-kernel, ak, kan.liang, yao.jin, Jin Yao

Currently perf-stat supports to print counts at regular interval (-I),
but it's not very easy for user to get the overall statistics.

With this patchset, it supports to report the summary at the end of
interval output.

For example,

 root@kbl-ppc:~# perf stat -e cycles -I1000 --interval-count 2
 #           time             counts unit events
      1.000412064          2,281,114      cycles
      2.001383658          2,547,880      cycles

  Performance counter stats for 'system wide':

          4,828,994      cycles

        2.002860349 seconds time elapsed

 root@kbl-ppc:~# perf stat -e cycles,instructions -I1000 --interval-count 2
 #           time             counts unit events
      1.000389902          1,536,093      cycles
      1.000389902            420,226      instructions              #    0.27  insn per cycle
      2.001433453          2,213,952      cycles
      2.001433453            735,465      instructions              #    0.33  insn per cycle

  Performance counter stats for 'system wide':

          3,750,045      cycles
          1,155,691      instructions              #    0.31  insn per cycle

        2.003023361 seconds time elapsed

 root@kbl-ppc:~# perf stat -M CPI,IPC -I1000 --interval-count 2
 #           time             counts unit events
      1.000435121            905,303      inst_retired.any          #      2.9 CPI
      1.000435121          2,663,333      cycles
      1.000435121            914,702      inst_retired.any          #      0.3 IPC
      1.000435121          2,676,559      cpu_clk_unhalted.thread
      2.001615941          1,951,092      inst_retired.any          #      1.8 CPI
      2.001615941          3,551,357      cycles
      2.001615941          1,950,837      inst_retired.any          #      0.5 IPC
      2.001615941          3,551,044      cpu_clk_unhalted.thread

  Performance counter stats for 'system wide':

          2,856,395      inst_retired.any          #      2.2 CPI
          6,214,690      cycles
          2,865,539      inst_retired.any          #      0.5 IPC
          6,227,603      cpu_clk_unhalted.thread

        2.003403078 seconds time elapsed

 v6:
 ---
 1. Add comments in perf_evlist__save_aggr_prev_raw_counts.
 2. Move init_stats(&walltime_nsecs_stats) under interval condition check.

 Following patches are changed in v6.
    perf stat: Save aggr value to first member of prev_raw_counts
    perf stat: Report summary for interval mode

 v5:
 ---
 1. Create new patch "perf stat: Save aggr value to first member
    of prev_raw_counts".

 2. Call perf_evlist__save_aggr_prev_raw_counts to save aggr value
    to first member of prev_raw_counts for AGGR_GLOBAL. Then next,
    perf_stat_process_counter can create aggr values from per cpu
    values.

 Following patches are impacted in v5:
    perf stat: Copy counts from prev_raw_counts to evsel->counts
    perf stat: Save aggr value to first member of prev_raw_counts
    perf stat: Report summary for interval mode

 v4:
 ---
 1. Create runtime_stat_reset.

 2. Zero the aggr in perf_counts__reset and use it to reset
    prev_raw_counts.

 3. Move affinity setup and read_counter_cpu to a new function
    read_affinity_counters. It's only called when stat_config.summary
    is not set.

 v3:
 ---
 1. 'perf stat: Fix wrong per-thread runtime stat for interval mode'
    is a new patch which fixes an existing issue found in test.

 2. We use the prev_raw_counts for summary counts. Drop the summary_counts in v2.

 3. Fix some issues.

 v2:
 ---
 Rebase to perf/core branch

Jin Yao (5):
  perf stat: Fix wrong per-thread runtime stat for interval mode
  perf counts: Reset prev_raw_counts counts
  perf stat: Copy counts from prev_raw_counts to evsel->counts
  perf stat: Save aggr value to first member of prev_raw_counts
  perf stat: Report summary for interval mode

 tools/perf/builtin-stat.c | 101 +++++++++++++++++++++++++-------------
 tools/perf/util/counts.c  |   4 +-
 tools/perf/util/counts.h  |   1 +
 tools/perf/util/stat.c    |  53 +++++++++++++++++---
 tools/perf/util/stat.h    |   3 ++
 5 files changed, 122 insertions(+), 40 deletions(-)

-- 
2.17.1


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

end of thread, other threads:[~2020-05-20 14:13 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-20  4:27 [PATCH v6 0/5] perf stat: Support overall statistics for interval mode Jin Yao
2020-05-20  4:27 ` [PATCH v6 1/5] perf stat: Fix wrong per-thread runtime stat " Jin Yao
2020-05-20  4:27 ` [PATCH v6 2/5] perf counts: Reset prev_raw_counts counts Jin Yao
2020-05-20  4:27 ` [PATCH v6 3/5] perf stat: Copy counts from prev_raw_counts to evsel->counts Jin Yao
2020-05-20  4:27 ` [PATCH v6 4/5] perf stat: Save aggr value to first member of prev_raw_counts Jin Yao
2020-05-20  4:27 ` [PATCH v6 5/5] perf stat: Report summary for interval mode Jin Yao
2020-05-20 10:54 ` [PATCH v6 0/5] perf stat: Support overall statistics " Jiri Olsa
2020-05-20 14:13   ` Arnaldo Carvalho de Melo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.