Re: [PATCH v3 1/4] perf stat: Fix wrong per-thread runtime stat for interval mode

From: Jiri Olsa
Date: Thu May 07 2020 - 11:19:34 EST


On Thu, May 07, 2020 at 02:58:19PM +0800, Jin Yao wrote:

SNIP

> diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
> index e0c1ad23c768..97ee941649e6 100644
> --- a/tools/perf/builtin-stat.c
> +++ b/tools/perf/builtin-stat.c
> @@ -351,6 +351,16 @@ static void read_counters(struct timespec *rs)
> }
> }
>
> +static void thread_stats_reset(struct perf_stat_config *config)
> +{
> + int i;
> +
> + if (config->stats) {
> + for (i = 0; i < config->stats_num; i++)
> + perf_stat__reset_shadow_per_stat(&config->stats[i]);
> + }
> +}
> +
> static void process_interval(void)
> {
> struct timespec ts, rs;
> @@ -359,6 +369,7 @@ static void process_interval(void)
> diff_timespec(&rs, &ts, &ref_time);
>
> perf_stat__reset_shadow_per_stat(&rt_stat);
> + thread_stats_reset(&stat_config);

can't you call in here perf_stat__reset_stats?

and if not, I know it's threads related, but new
and delete functions are:

runtime_stat_new, runtime_stat_delete

so let's call it runtime_stat_reset and place it next to
the new/delete functions

other than that it looks ok, thanks

jirka

> read_counters(&rs);
>
> if (STAT_RECORD) {
> --
> 2.17.1
>