Re: [PATCH v1 4/9] perf util: Update and print per-thread shadow stats

From: Jin, Yao
Date: Wed Nov 22 2017 - 07:06:13 EST

On 11/22/2017 4:37 PM, Jiri Olsa wrote:
On Wed, Nov 22, 2017 at 11:10:37AM +0800, Jin, Yao wrote:

On 11/21/2017 11:18 PM, Jiri Olsa wrote:
On Mon, Nov 20, 2017 at 10:43:39PM +0800, Jin Yao wrote:


if (num == 0)
diff --git a/tools/perf/util/stat.c b/tools/perf/util/stat.c
index 151e9ef..50bb16d 100644
--- a/tools/perf/util/stat.c
+++ b/tools/perf/util/stat.c
@@ -278,9 +278,16 @@ process_counter_values(struct perf_stat_config *config, struct perf_evsel *evsel
perf_evsel__compute_deltas(evsel, cpu, thread, count);
perf_counts_values__scale(count, config->scale, NULL);
if (config->aggr_mode == AGGR_NONE)
- perf_stat__update_shadow_stats(evsel, count->val, cpu);
- if (config->aggr_mode == AGGR_THREAD)
- perf_stat__update_shadow_stats(evsel, count->val, 0);
+ perf_stat__update_shadow_stats(evsel, count->val, cpu,
+ NULL);
+ if (config->aggr_mode == AGGR_THREAD) {
+ if (config->stats)
+ perf_stat__update_shadow_stats(evsel,
+ count->val, 0, &config->stats[thread]);

please add this part together with config->stats allocation/usage
and keep this change only about adding the struct runtime_stat *stat
into the code path with no functional change


The interface of perf_stat__update_shadow_stats() is changed (added with a
new parameter 'struct runtime_stat *stat').

If I move above part to another patch (e.g. move to
v1-0006-perf-stat-Allocate-shadow-stats-buffer-for-thread.patch), the
compilation would be failed if only applying with this patch. It's not good
for git bisect.

but you could make the patch just to add the 'struct runtime_stat *stat'
as an argument through the code path.. as a base for the stats, no?


Yeah, that might be OK. Let me have a try.

Jin Yao