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

From: Ian Rogers
Date: Thu May 07 2020 - 10:11:32 EST


On Thu, May 7, 2020 at 6:49 AM Jiri Olsa <jolsa@xxxxxxxxxx> wrote:
>
> 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 for trying! I have resent the entire patch series here:
https://lore.kernel.org/lkml/20200507140819.126960-1-irogers@xxxxxxxxxx/
It is acme's perf/core tree + metric fix/test CLs + some minor fixes.
Details in the cover letter.

Thanks,
Ian

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