Re: [PATCHv3 0/4] perf tools: Add support for user defined metric

From: John Garry
Date: Tue Jan 25 2022 - 07:39:49 EST


On 11/05/2020 21:53, Jiri Olsa wrote:

+

Hi jirka,

Did you a plan to continue to work? I don't think that this support was ever merged.

We have a requirement to be able to tune parameters of metrics, and support here seems suitable.

Thanks,
John

hi,
Joe asked for possibility to add user defined metrics. Given that
we already have metrics support, I added --metrics-file option that
allows to specify custom metrics.

$ cat metrics
# IPC
mine1 = instructions / cycles;
/* DECODED_ICACHE_UOPS% */
mine2 = 100 * (idq.dsb_uops / \ (idq.ms_uops + idq.mite_uops + idq.dsb_uops + lsd.uops));

$ sudo perf stat --metrics-file ./metrics -M mine1,mine2 --metric-only -a -I 1000
# time insn per cycle mine1 mine2
1.000536263 0.71 0.7 41.4
2.002069025 0.31 0.3 14.1
3.003427684 0.27 0.3 14.8
4.004807132 0.25 0.2 12.1
...

v3 changes:
- added doc for metrics file in perf stat man page
- reporting error line number now
- changed '#' style comment to C way with '//'

v2 changes:
- add new --metrics-file option
- rebased on current perf/core expression bison/flex enhancements

Also available in:
git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
perf/metric

thanks,
jirka


---
Jiri Olsa (4):
perf expr: Add parsing support for multiple expressions
perf expr: Allow comments in custom metric file
perf stat: Add --metrics-file option
perf expr: Report line number with error

tools/perf/Documentation/perf-stat.txt | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tools/perf/builtin-stat.c | 7 +++++--
tools/perf/tests/expr.c | 18 ++++++++++++++++++
tools/perf/util/expr.c | 6 ++++++
tools/perf/util/expr.h | 21 +++++++++++++++++++--
tools/perf/util/expr.l | 34 ++++++++++++++++++++++++++++++++++
tools/perf/util/expr.y | 21 +++++++++++++++++----
tools/perf/util/metricgroup.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
tools/perf/util/metricgroup.h | 3 ++-
tools/perf/util/stat.h | 1 +
10 files changed, 242 insertions(+), 16 deletions(-)

.