Re: [PATCH] perf tool_pmu: Add skip check in tool_pmu__event_to_str()
From: Ian Rogers
Date: Fri Feb 07 2025 - 11:52:30 EST
On Fri, Feb 7, 2025 at 7:28 AM <kan.liang@xxxxxxxxxxxxxxx> wrote:
>
> From: Kan Liang <kan.liang@xxxxxxxxxxxxxxx>
>
> Some topdown related metrics may fail on hybrid machines.
>
> $perf stat -M tma_frontend_bound
> Cannot resolve IDs for tma_frontend_bound:
> cpu_atom@TOPDOWN_FE_BOUND.ALL@ / (8 * cpu_atom@CPU_CLK_UNHALTED.CORE@)
>
> In the find_tool_events(), the tool_pmu__event_to_str() is used to
> compare the tool_events. It only checks the event name, no PMU or arch.
> So the tool_events[TOOL_PMU__EVENT_SLOTS] is set to true, because the
> p-core Topdown metrics has "slots" event.
> The tool_events is shared. So when parsing the e-core metrics, the
> "slots" is automatically added.
>
> The "slots" event as a tool event should only be available on arm64. It
> has a different meaning on X86. The tool_pmu__skip_event() intends
> handle the case. Apply it for tool_pmu__event_to_str() as well.
>
> There is a lack of sanity check in the expr__get_id(). Add the check.
>
> Closes: https://lore.kernel.org/lkml/608077bc-4139-4a97-8dc4-7997177d95c4@xxxxxxxxxxxxxxx/
> Fixes: 069057239a67 ("perf tool_pmu: Move expr literals to tool_pmu")
> Signed-off-by: Kan Liang <kan.liang@xxxxxxxxxxxxxxx>
Thanks Kan!
Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>
Ian