Re: [PATCH v5 11/24] perf vendor events: Update/add Graniterapids events/metrics
From: Liang, Kan
Date: Wed Feb 05 2025 - 16:10:43 EST
On 2025-02-05 3:23 p.m., Ian Rogers wrote:
> On Wed, Feb 5, 2025 at 11:11 AM Liang, Kan <kan.liang@xxxxxxxxxxxxxxx> wrote:
>>
>>
>>
>> On 2025-02-05 12:31 p.m., Ian Rogers wrote:
>>> + {
>>> + "BriefDescription": "This category represents fraction of slots utilized by useful work i.e. issued uops that eventually get retired",
>>> + "MetricExpr": "topdown\\-retiring / (topdown\\-fe\\-bound + topdown\\-bad\\-spec + topdown\\-retiring + topdown\\-be\\-bound) + 0 * slots",
>>> + "MetricGroup": "BvUW;TmaL1;TopdownL1;tma_L1_group",
>>> + "MetricName": "tma_retiring",
>>> + "MetricThreshold": "tma_retiring > 0.7 | tma_heavy_operations > 0.1",
>>> + "MetricgroupNoGroup": "TopdownL1",
>>> + "PublicDescription": "This category represents fraction of slots utilized by useful work i.e. issued uops that eventually get retired. Ideally; all pipeline slots would be attributed to the Retiring category. Retiring of 100% would indicate the maximum Pipeline_Width throughput was achieved. Maximizing Retiring typically increases the Instructions-per-cycle (see IPC metric). Note that a high Retiring value does not necessary mean there is no room for more performance. For example; Heavy-operations or Microcode Assists are categorized under Retiring. They often indicate suboptimal performance and can often be optimized or avoided. Sample with: UOPS_RETIRED.SLOTS",
>>> + "ScaleUnit": "100%"
>>> + },
>>
>> The "Default" tag is missed for GNR as well.
>> It seems the new CPUIDs are not added in the script?
>
> Spotted it, we need to manually say which architectures with TopdownL1
> should be in Default because it was insisted upon that pre-Icelake
> CPUs with TopdownL1 not have TopdownL1 in Default. As you know, my
> preference would be to always put TopdownL1 metrics into Default.
>
For the future platforms, there should be always at least TopdownL1
support. Intel even adds extra fixed counters for the TopdownL1 events.
Maybe the script should be changed to only mark the old pre-Icelake as
no TopdownL1 Default. For the other platforms, always add TopdownL1 as
Default. It would avoid manually adding it for every new platforms.
Thanks,
Kan