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