On Thu, May 05, 2016 at 04:04:04PM -0700, Andi Kleen wrote:
> From: Andi Kleen <[email protected]>
> 
> Scale values by unit before passing them to the metrics printing functions.
> This is needed for TopDown, because it needs to scale the slots correctly
> by pipeline width / SMTness.
> 
> For existing metrics it shouldn't make any difference, as those generally
> use events that don't have any units.
> 
> Signed-off-by: Andi Kleen <[email protected]>

Acked-by: Jiri Olsa <[email protected]>

thanks,
jirka

> ---
>  tools/perf/util/stat.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/perf/util/stat.c b/tools/perf/util/stat.c
> index 4d9b481cf3b6..ffa1d0653861 100644
> --- a/tools/perf/util/stat.c
> +++ b/tools/perf/util/stat.c
> @@ -307,6 +307,7 @@ int perf_stat_process_counter(struct perf_stat_config 
> *config,
>       struct perf_counts_values *aggr = &counter->counts->aggr;
>       struct perf_stat_evsel *ps = counter->priv;
>       u64 *count = counter->counts->aggr.values;
> +     u64 val;
>       int i, ret;
>  
>       aggr->val = aggr->ena = aggr->run = 0;
> @@ -346,7 +347,8 @@ int perf_stat_process_counter(struct perf_stat_config 
> *config,
>       /*
>        * Save the full runtime - to allow normalization during printout:
>        */
> -     perf_stat__update_shadow_stats(counter, count, 0);
> +     val = counter->scale * *count;
> +     perf_stat__update_shadow_stats(counter, &val, 0);
>  
>       return 0;
>  }
> -- 
> 2.5.5
> 

Reply via email to