Re: [RFC PATCH v5 01/16] perf stat: Add new field in stat_config to enable hardware aware grouping.

From: Arnaldo Carvalho de Melo
Date: Wed Apr 17 2024 - 12:21:44 EST


On Tue, Apr 16, 2024 at 08:49:21PM -0700, Ian Rogers wrote:
> On Fri, Apr 12, 2024 at 2:08 PM <weilin.wang@xxxxxxxxx> wrote:
> >
> > From: Weilin Wang <weilin.wang@xxxxxxxxx>
> >
> > Hardware counter and event information could be used to help creating event
> > groups that better utilize hardware counters and improve multiplexing.
> >
> > Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>
> > Signed-off-by: Weilin Wang <weilin.wang@xxxxxxxxx>
> > ---
> > tools/perf/builtin-stat.c | 5 +++++
> > tools/perf/util/metricgroup.c | 5 +++++
> > tools/perf/util/metricgroup.h | 1 +
> > tools/perf/util/stat.h | 1 +
> > 4 files changed, 12 insertions(+)
> >
> > diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
> > index 6bba1a89d030..c4a5f0984295 100644
> > --- a/tools/perf/builtin-stat.c
> > +++ b/tools/perf/builtin-stat.c
> > @@ -2106,6 +2106,7 @@ static int add_default_attributes(void)
> > stat_config.metric_no_threshold,
> > stat_config.user_requested_cpu_list,
> > stat_config.system_wide,
> > + stat_config.hardware_aware_grouping,
> > &stat_config.metric_events);
> > }
> >
> > @@ -2139,6 +2140,7 @@ static int add_default_attributes(void)
> > stat_config.metric_no_threshold,
> > stat_config.user_requested_cpu_list,
> > stat_config.system_wide,
> > + stat_config.hardware_aware_grouping,
> > &stat_config.metric_events);
> > }
> >
> > @@ -2173,6 +2175,7 @@ static int add_default_attributes(void)
> > /*metric_no_threshold=*/true,
> > stat_config.user_requested_cpu_list,
> > stat_config.system_wide,
> > + stat_config.hardware_aware_grouping,
> > &stat_config.metric_events) < 0)
> > return -1;
> > }
> > @@ -2214,6 +2217,7 @@ static int add_default_attributes(void)
> > /*metric_no_threshold=*/true,
> > stat_config.user_requested_cpu_list,
> > stat_config.system_wide,
> > + stat_config.hardware_aware_grouping,
> > &stat_config.metric_events) < 0)
> > return -1;
> >
> > @@ -2748,6 +2752,7 @@ int cmd_stat(int argc, const char **argv)
> > stat_config.metric_no_threshold,
> > stat_config.user_requested_cpu_list,
> > stat_config.system_wide,
> > + stat_config.hardware_aware_grouping,
> > &stat_config.metric_events);
> >
> > zfree(&metrics);
> > diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c
> > index 79ef6095ab28..11613450725a 100644
> > --- a/tools/perf/util/metricgroup.c
> > +++ b/tools/perf/util/metricgroup.c
> > @@ -1690,12 +1690,17 @@ int metricgroup__parse_groups(struct evlist *perf_evlist,
> > bool metric_no_threshold,
> > const char *user_requested_cpu_list,
> > bool system_wide,
> > + bool hardware_aware_grouping,
> > struct rblist *metric_events)
> > {
> > const struct pmu_metrics_table *table = pmu_metrics_table__find();
> >
> > if (!table)
> > return -EINVAL;
> > + if (hardware_aware_grouping) {
> > + pr_debug("Use hardware aware grouping instead of traditional metric grouping method\n");
> > + }
>
> nit: single line if statements shouldn't have curlies:
> https://www.kernel.org/doc/html/v6.8/process/coding-style.html#placing-braces-and-spaces

Fixed this while applying this patch.

- Arnaldo