Messages in this thread |  | | From | Jiri Olsa <> | Subject | [PATCH 00/18] perf metric: Add support to reuse metric | Date | Sun, 12 Jul 2020 15:26:16 +0200 |
| |
hi, this patchset is adding the support to reused metric in another metric. The metric needs to be referenced by 'metric:' prefix.
For example, to define IPC by using CPI with change like:
"BriefDescription": "Instructions Per Cycle (per Logical Processor)", - "MetricExpr": "INST_RETIRED.ANY / CPU_CLK_UNHALTED.THREAD", + "MetricExpr": "1/metric:CPI", "MetricGroup": "TopDownL1", "MetricName": "IPC"
I won't be able to find all the possible places we could use this at, so I wonder you guys (who was asking for this) would try it and come up with comments if there's something missing or we could already use it at some places.
It's based on Arnaldo's tmp.perf/core.
v2 changes: - collected Ian's acks for few patches [Ian] - renamed expr__add_id to expr__add_id_val [Ian] - renamed expr_parse_data to expr_id_data [Ian] - added recursion check [Ian] - added metric test for DCache_L2 metric [Ian] - added some renames as discussed in review [Ian]
Also available in here: git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git perf/metric
thanks, jirka
--- Jiri Olsa (18): perf metric: Rename expr__add_id to expr__add_val perf metric: Add struct expr_id_data to keep expr value perf metric: Add expr__add_id function perf metric: Change expr__get_id to return struct expr_id_data perf metric: Add expr__del_id function perf metric: Add find_metric function perf metric: Add add_metric function perf metric: Rename __metricgroup__add_metric to __add_metric perf metric: Collect referenced metrics in struct metric_ref_node perf metric: Collect referenced metrics in struct metric_expr perf metric: Add referenced metrics to hash data perf metric: Compute referenced metrics perf metric: Add events for the current group perf metric: Add cache_miss_cycles to metric parse test perf metric: Add DCache_L2 to metric parse test perf metric: Add recursion check when processing nested metrics perf metric: Rename struct egroup to metric perf metric: Rename group_list to list
tools/perf/tests/expr.c | 7 +- tools/perf/tests/parse-metric.c | 131 +++++++++++++++++++++++++++++++++++- tools/perf/tests/pmu-events.c | 4 +- tools/perf/util/expr.c | 130 ++++++++++++++++++++++++++++++------ tools/perf/util/expr.h | 34 +++++++++- tools/perf/util/expr.y | 16 +++-- tools/perf/util/metricgroup.c | 435 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- tools/perf/util/metricgroup.h | 6 ++ tools/perf/util/stat-shadow.c | 24 ++++--- 9 files changed, 644 insertions(+), 143 deletions(-)
|  |