Re: [PATCH 08/10] perf, tools, stat: Output JSON MetricExpr metric

From: Jiri Olsa
Date: Tue Mar 07 2017 - 05:04:00 EST


On Tue, Feb 28, 2017 at 10:49:22PM -0800, Andi Kleen wrote:
> From: Andi Kleen <ak@xxxxxxxxxxxxxxx>
>
> Add generic infrastructure to perf stat to output ratios for "MetricExpr"
> entries in the event lists. Many events are more useful as ratios
> than in raw form, typically some count in relation to total ticks.
>
> Transfer the MetricExpr information from the alias to the evsel.
>
> We mark the events that need to be collected for MetricExpr, and also
> link the events using them with a pointer. The code is careful
> to always prefer the right event in the same group to minimize
> multiplexing errors. At the moment only a single relation is supported.
>
> Then add a rblist to the stat shadow code that remembers stats based
> on the cpu and context.
>
> Then finally update and retrieve and print these values similarly to the
> existing hardcoded perf metrics. We use the simple expression parser
> added earlier to evaluate the expression.
>
> Normally we just output the result without further commentary,
> but for --metric-only this would lead to empty columns. So for this
> case use the original event as description.
>
> So far there is no attempt to automatically add the MetricExpr event,
> if it is missing, however we suggest it to the user.
>
> $ perf stat -a -I 1000 -e '{unc_p_clockticks,unc_p_freq_max_os_cycles}'
> 1.000228813 800,139,950 unc_p_clockticks
> 1.000228813 789,833,783 unc_p_freq_max_os_cycles # 98.7
> 2.000654229 800,308,990 unc_p_clockticks
> 2.000654229 396,214,238 unc_p_freq_max_os_cycles # 49.5
>
> $ perf stat -a -I 1000 -e '{unc_p_clockticks,unc_p_freq_max_os_cycles}' --metric-only
> 1.000206740 48.0
> 2.000451543 48.1

The comment above suggest I'll see 'original event as description' in this example??

However, could you just make those metric names working in here?
Displaying original event for metric value is misleading.

jirka