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

From: Liang, Kan
Date: Fri Apr 28 2023 - 09:31:41 EST




On 2023-04-28 3:37 a.m., Ian Rogers wrote:
> 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.
>

I think it's OK to only disable the metric for perf stat default
temporarily on hybrid as a workaround for 6.4.
Now, the only problem is the default of perf stat on pre-icl in 6.4.

> Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>

Reviewed-by: Kan Liang <kan.liang@xxxxxxxxxxxxxxx>

Arnaldo, could you please back port this for 6.4 as well?

Thanks,
Kan
> ---
> 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;