On Wed, May 20, 2020 at 11:20:04AM -0700, Ian Rogers wrote: SNIP > There are 5 out of 12 metric groups where no events are shared, such > as Power, however, disabling grouping of events always reduces the > number of events. > > The result for Memory_BW needs explanation: > > Metric group: Memory_BW > - No merging (old default, now --metric-no-merge): 9 > - Merging over metrics (new default) : 5 > - No event groups and merging (--metric-no-group): 11 > > Both with and without merging the groups fail to be set up and so the > event counts here are for broken metrics. The --metric-no-group number > is accurate as all the events are scheduled. Ideally a constraint > would be added for these metrics in the json code to avoid grouping. > > v2. rebases on kernel/git/acme/linux.git branch tmp.perf/core, fixes a > missing comma with metric lists (reported-by Jiri Olsa > <jolsa@xxxxxxxxxx>) and adds early returns to metricgroup__add_metric > (suggested-by Jiri Olsa). Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx> thanks, jirka > > v1. was prepared on kernel/git/acme/linux.git branch tmp.perf/core > > Compared to RFC v3: fix a bug where unnecessary commas were passed to > parse-events and were echoed. Fix a bug where the same event could be > matched more than once with --metric-no-group, causing there to be > events missing. > https://lore.kernel.org/lkml/20200508053629.210324-1-irogers@xxxxxxxxxx/ > > Ian Rogers (7): > perf metricgroup: Always place duration_time last > perf metricgroup: Use early return in add_metric > perf metricgroup: Delay events string creation > perf metricgroup: Order event groups by size > perf metricgroup: Remove duped metric group events > perf metricgroup: Add options to not group or merge > perf metricgroup: Remove unnecessary ',' from events > > tools/perf/Documentation/perf-stat.txt | 19 ++ > tools/perf/builtin-stat.c | 11 +- > tools/perf/util/metricgroup.c | 239 ++++++++++++++++++------- > tools/perf/util/metricgroup.h | 6 +- > tools/perf/util/stat.h | 2 + > 5 files changed, 207 insertions(+), 70 deletions(-) > > -- > 2.26.2.761.g0e0b3e54be-goog >