From: "Liang, Kan" <kan.liang@linux.intel.com>
To: Ian Rogers <irogers@google.com>
Cc: "Thomas Falcon" <thomas.falcon@intel.com>,
"Peter Zijlstra" <peterz@infradead.org>,
"Ingo Molnar" <mingo@redhat.com>,
"Arnaldo Carvalho de Melo" <acme@kernel.org>,
"Namhyung Kim" <namhyung@kernel.org>,
"Mark Rutland" <mark.rutland@arm.com>,
"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
"Jiri Olsa" <jolsa@kernel.org>,
"Adrian Hunter" <adrian.hunter@intel.com>,
"Andreas Färber" <afaerber@suse.de>,
"Manivannan Sadhasivam" <manivannan.sadhasivam@linaro.org>,
"Weilin Wang" <weilin.wang@intel.com>,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
"Perry Taylor" <perry.taylor@intel.com>,
"Samantha Alt" <samantha.alt@intel.com>,
"Caleb Biggers" <caleb.biggers@intel.com>,
"Edward Baker" <edward.baker@intel.com>,
"Michael Petlan" <mpetlan@redhat.com>
Subject: Re: [PATCH v5 11/24] perf vendor events: Update/add Graniterapids events/metrics
Date: Thu, 6 Feb 2025 14:53:17 -0500 [thread overview]
Message-ID: <608077bc-4139-4a97-8dc4-7997177d95c4@linux.intel.com> (raw)
In-Reply-To: <CAP-5=fW3eY70Vh_GuTVB=M2MFcpe-WqRy76cK++UMYT5OKMtLg@mail.gmail.com>
On 2025-02-06 2:05 p.m., Ian Rogers wrote:
> On Thu, Feb 6, 2025 at 10:59 AM Liang, Kan <kan.liang@linux.intel.com> wrote:
>>
>> On 2025-02-06 1:53 p.m., Liang, Kan wrote:
>>>>> However, when I dump the debug information,
>>>>> ./perf stat -M tma_frontend_bound -vvv
>>>>>
>>>>> I got below debug information. I have no idea where the slot is from.
>>>>> It seems the perf code mess up the p-core metrics with the e-core
>>>>> metrics. But why only slot?
>>>>> It seems a bug of perf tool.
>>>>>
>>>>> found event cpu_atom@CPU_CLK_UNHALTED.CORE@
>>>>> found event cpu_atom@TOPDOWN_FE_BOUND.ALL@
>>>>> found event slots
>>>>> Parsing metric events
>>>>>
>>>>> '{cpu_atom/CPU_CLK_UNHALTED.CORE,metric-id=cpu_atom!3CPU_CLK_UNHALTED.CORE!3/,cpu_atom/TOPDOWN_FE_BOUND.ALL,metric-id=cpu_atom!3TOPDOWN_FE_BOUND.ALL!3/,slots/metric-id=slots/}:W'
>>> It because the perf adds "slot" as a tool event for the e-core Topdown
>>> metrics.
>>> There is no "slot" event for e-core.
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/
>>> tools/perf/util/metricgroup.c#n1481
>>>
>>> I will check why "slot" event is added as a tool event for e-core?
>>> That doesn't make sense.
>>
>>
>> BTW: I checked the list of the tool events. Except the slots, others are
>> all SW (or non-HW) events which should always be available.
>> Slots is a HW event and only be available for p-core.
>> It doesn't look like a good fit here.
>>
>> static const char *const tool_pmu__event_names[TOOL_PMU__EVENT_MAX] = {
>> NULL,
>> "duration_time",
>> "user_time",
>> "system_time",
>> "has_pmem",
>> "num_cores",
>> "num_cpus",
>> "num_cpus_online",
>> "num_dies",
>> "num_packages",
>> "slots",
>> "smt_on",
>> "system_tsc_freq",
>> };
>
> IIRC it was added on metric changes I wasn't a reviewer on:
> https://lore.kernel.org/r/1673940573-90503-2-git-send-email-renyu.zj@linux.alibaba.com
> and then carried forward by me. The event should only be enabled on aarch64:
> https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/util/tool_pmu.c?h=perf-tools-next#n38
> Where is the slots event added to the metric expr (expression) string?
> The metric should have events pulled out, parsed and
> parse_events__sort_events_and_fix_groups deal with related issues to
> this. I thought it was a requirement that the slots be in the metric -
> or else why is the converter script injecting them? :-)
>
No, it's the perf tool which inject the "slots" event in parse_ids().
In parse_groups(), the tool_events[] is constructed here.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/perf/util/metricgroup.c#n1557
In the find_tool_events(), the tool_pmu__event_to_str() is used to
compare the tool_events. It only check the event name, no PMU or arch.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/perf/util/metricgroup.c#n1389
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.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/perf/util/metricgroup.c#n1476
I think we may need a similar fix in the tool_pmu__event_to_str() to
skip the "slots" for x86.
Thanks,
Kan
next prev parent reply other threads:[~2025-02-06 19:53 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-05 17:31 [PATCH v5 00/24] Intel vendor events and TMA 5.01 metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 01/24] perf vendor events: Update Alderlake events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 02/24] perf vendor events: Update AlderlakeN events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 03/24] perf vendor events: Add Arrowlake events/metrics Ian Rogers
2025-02-05 19:08 ` Liang, Kan
2025-02-05 17:31 ` [PATCH v5 04/24] perf vendor events: Update Broadwell events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 05/24] perf vendor events: Update BroadwellDE events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 06/24] perf vendor events: Update BroadwellX events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 07/24] perf vendor events: Update CascadelakeX events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 08/24] perf vendor events: Add Clearwaterforest events Ian Rogers
2025-02-05 17:31 ` [PATCH v5 09/24] perf vendor events: Update EmeraldRapids events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 10/24] perf vendor events: Update GrandRidge events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 11/24] perf vendor events: Update/add Graniterapids events/metrics Ian Rogers
2025-02-05 19:11 ` Liang, Kan
2025-02-05 20:23 ` Ian Rogers
2025-02-05 21:10 ` Liang, Kan
2025-02-05 21:33 ` Ian Rogers
2025-02-06 14:32 ` Liang, Kan
2025-02-06 16:40 ` Ian Rogers
2025-02-06 17:11 ` Liang, Kan
[not found] ` <CAP-5=fWQj01O3WmGLoAf6O_uEeMHpOUqVWvHi3nW_kGj4VtZWg@mail.gmail.com>
2025-02-06 18:53 ` Liang, Kan
2025-02-06 18:59 ` Liang, Kan
2025-02-06 19:05 ` Ian Rogers
2025-02-06 19:53 ` Liang, Kan [this message]
2025-02-07 17:39 ` Ian Rogers
2025-02-05 17:31 ` [PATCH v5 12/24] perf vendor events: Update Haswell events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 13/24] perf vendor events: Update HaswellX events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 14/24] perf vendor events: Update Icelake events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 15/24] perf vendor events: Update IcelakeX events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 16/24] perf vendor events: Update/add Lunarlake events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 17/24] perf vendor events: Update Meteorlake events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 18/24] perf vendor events: Update Rocketlake events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 19/24] perf vendor events: Update Sapphirerapids events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 20/24] perf vendor events: Update Sierraforest events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 21/24] perf vendor events: Update Skylake metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 22/24] perf vendor events: Update SkylakeX events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 23/24] perf vendor events: Update Tigerlake events/metrics Ian Rogers
2025-02-05 17:31 ` [PATCH v5 24/24] perf test stat_all_metrics: Ensure missing events fail test Ian Rogers
2025-02-05 19:44 ` [PATCH v5 00/24] Intel vendor events and TMA 5.01 metrics Falcon, Thomas
2025-02-05 20:47 ` Ian Rogers
2025-02-06 20:33 ` Falcon, Thomas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=608077bc-4139-4a97-8dc4-7997177d95c4@linux.intel.com \
--to=kan.liang@linux.intel.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=afaerber@suse.de \
--cc=alexander.shishkin@linux.intel.com \
--cc=caleb.biggers@intel.com \
--cc=edward.baker@intel.com \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=mpetlan@redhat.com \
--cc=namhyung@kernel.org \
--cc=perry.taylor@intel.com \
--cc=peterz@infradead.org \
--cc=samantha.alt@intel.com \
--cc=thomas.falcon@intel.com \
--cc=weilin.wang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox