[PATCH v2 01/43] perf stat: Disable TopdownL1 on hybrid

From: Ian Rogers
Date: Fri Apr 28 2023 - 03:38:38 EST


Bugs with event parsing, event grouping and metrics causes the
TopdownL1 metricgroup to crash the perf command. Temporarily disable
the group if no events/metrics are spcecified.

Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
---
tools/perf/builtin-stat.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index efda63f6bf32..be9677aa642f 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1885,7 +1885,12 @@ static int add_default_attributes(void)
* Add TopdownL1 metrics if they exist. To minimize
* multiplexing, don't request threshold computation.
*/
- if (metricgroup__has_metric("TopdownL1") &&
+ /*
+ * TODO: TopdownL1 is disabled on hybrid CPUs to avoid a crashes
+ * caused by exposing latent bugs. This is fixed properly in:
+ * https://lore.kernel.org/lkml/bff481ba-e60a-763f-0aa0-3ee53302c480@xxxxxxxxxxxxxxx/
+ */
+ if (metricgroup__has_metric("TopdownL1") && !perf_pmu__has_hybrid() &&
metricgroup__parse_groups(evsel_list, "TopdownL1",
/*metric_no_group=*/false,
/*metric_no_merge=*/false,
@@ -1894,6 +1899,7 @@ static int add_default_attributes(void)
stat_config.system_wide,
&stat_config.metric_events) < 0)
return -1;
+
/* Platform specific attrs */
if (evlist__add_default_attrs(evsel_list, default_null_attrs) < 0)
return -1;
--
2.40.1.495.gc816e09b53d-goog