Messages in this thread |  | | Subject | Re: [PATCH 00/18] perf metric: Add support to reuse metric | From | John Garry <> | Date | Thu, 16 Jul 2020 08:50:56 +0100 |
| |
On 12/07/2020 14:26, Jiri Olsa wrote: > 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
I was thinking that a test metric using this reuse feature could be added in pmu-events/arch/test/test_cpu. But since no relevant parsing is done in jevents, maybe not a lot of value. Just for a bit more completeness.
Thanks, John
> > 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(-) > > . >
|  |