Re: [RFC PATCH 0/7] Share events between metrics

From: Jiri Olsa
Date: Thu May 07 2020 - 09:50:03 EST


On Thu, May 07, 2020 at 01:14:29AM -0700, Ian Rogers wrote:
> Metric groups contain metrics. Metrics create groups of events to
> ideally be scheduled together. Often metrics refer to the same events,
> for example, a cache hit and cache miss rate. Using separate event
> groups means these metrics are multiplexed at different times and the
> counts don't sum to 100%. More multiplexing also decreases the
> accuracy of the measurement.
>
> This change orders metrics from groups or the command line, so that
> the ones with the most events are set up first. Later metrics see if
> groups already provide their events, and reuse them if
> possible. Unnecessary events and groups are eliminated.
>
> RFC because:
> - without this change events within a metric may get scheduled
> together, after they may appear as part of a larger group and be
> multiplexed at different times, lowering accuracy - however, less
> multiplexing may compensate for this.
> - libbpf's hashmap is used, however, libbpf is an optional
> requirement for building perf.
> - other things I'm not thinking of.

hi,
I can't apply this, what branch/commit is this based on?

Applying: perf expr: migrate expr ids table to libbpf's hashmap
error: patch failed: tools/perf/tests/pmu-events.c:428
error: tools/perf/tests/pmu-events.c: patch does not apply
error: patch failed: tools/perf/util/expr.h:2
error: tools/perf/util/expr.h: patch does not apply
error: patch failed: tools/perf/util/expr.y:73
error: tools/perf/util/expr.y: patch does not apply
Patch failed at 0001 perf expr: migrate expr ids table to libbpf's hashmap

thanks,
jirka

>
> Thanks!
>
> Ian Rogers (7):
> perf expr: migrate expr ids table to libbpf's hashmap
> perf metricgroup: change evlist_used to a bitmap
> perf metricgroup: free metric_events on error
> perf metricgroup: always place duration_time last
> perf metricgroup: delay events string creation
> perf metricgroup: order event groups by size
> perf metricgroup: remove duped metric group events
>
> tools/perf/tests/expr.c | 32 ++---
> tools/perf/tests/pmu-events.c | 22 ++--
> tools/perf/util/expr.c | 125 ++++++++++--------
> tools/perf/util/expr.h | 22 ++--
> tools/perf/util/expr.y | 22 +---
> tools/perf/util/metricgroup.c | 242 +++++++++++++++++++++-------------
> tools/perf/util/stat-shadow.c | 46 ++++---
> 7 files changed, 280 insertions(+), 231 deletions(-)
>
> --
> 2.26.2.526.g744177e7f7-goog
>