[PATCHv2 0/3] perf tools: Add support for user defined metric

From: Jiri Olsa
Date: Tue Apr 21 2020 - 14:13:59 EST


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
...

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 (3):
perf expr: Add parsing support for multiple expressions
perf expr: Allow comments in custom metric file
perf stat: Add --metrics-file option

tools/perf/Documentation/perf-stat.txt | 3 +++
tools/perf/builtin-stat.c | 7 +++++--
tools/perf/tests/expr.c | 13 +++++++++++++
tools/perf/util/expr.c | 6 ++++++
tools/perf/util/expr.h | 19 +++++++++++++++++--
tools/perf/util/expr.l | 24 ++++++++++++++++++++++++
tools/perf/util/expr.y | 13 ++++++++++++-
tools/perf/util/metricgroup.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
tools/perf/util/metricgroup.h | 3 ++-
tools/perf/util/stat.h | 1 +
10 files changed, 142 insertions(+), 13 deletions(-)