Re: [PATCH v1 05/22] perf vendor events: Update Intel alderlake

From: Xing Zhengjun
Date: Thu Sep 29 2022 - 04:13:06 EST




On 9/29/2022 10:23 AM, Ian Rogers wrote:
On Wed, Sep 28, 2022 at 7:08 AM Arnaldo Carvalho de Melo
<acme@xxxxxxxxxx> wrote:

Em Wed, Sep 28, 2022 at 04:22:53PM +0800, Xing Zhengjun escreveu:
On 9/28/2022 3:21 PM, Ian Rogers wrote:
diff --git a/tools/perf/pmu-events/arch/x86/mapfile.csv b/tools/perf/pmu-events/arch/x86/mapfile.csv
index 7f2d777fd97f..594c6e96f0ce 100644
--- a/tools/perf/pmu-events/arch/x86/mapfile.csv
+++ b/tools/perf/pmu-events/arch/x86/mapfile.csv
@@ -1,5 +1,5 @@
Family-model,Version,Filename,EventType
-GenuineIntel-6-9[7A],v1.13,alderlake,core
+GenuineIntel-6-(97|9A|B7|BA|BF),v1.15,alderlake,core

The commit description should mention this change "Add more CPUID support
for ADL"

I added this note, with that can I have your Reviewed-by or Acked-by?

- Arnaldo

I think I should send a v2. I can add this then. Other things for v2 are:
- this week there will likely be an update to [1] which is implicitly
integrated here.
- the topdown metrics are all percentages but are currently values
zero to 1. It is straightforward to add a ScaleUnit of 100% to them
all.
- eyeballing topdown event metrics like:

{
"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)",
"MetricGroup": "TopdownL1;tma_L1_group",
"MetricName": "tma_retiring",
...
it looks like the group will fail due to the missing slots event. This
can be fixed with:
"MetricExpr": "topdown\\-retiring / (topdown\\-fe\\-bound +
topdown\\-bad\\-spec + topdown\\-retiring + topdown\\-be\\-bound) + 0
* TOPDOWN.SLOTS",

Thanks,
Ian

I just test all the events for SPR/ADL, no error find.
But there are a lots of metrics fail due to slots missed.

|0929_005708.420|ERROR| common.sh:123:do_cmd() - perf stat -M "tma_branch_mispredicts" -a sleep 0.1 failed. Return code is 255|
|0929_005709.221|ERROR| common.sh:123:do_cmd() - perf stat -M "tma_backend_bound" -a sleep 0.1 failed. Return code is 255|
|0929_005709.544|ERROR| common.sh:123:do_cmd() - perf stat -M "tma_memory_bound" -a sleep 0.1 failed. Return code is 255|
|0929_005723.757|ERROR| common.sh:123:do_cmd() - perf stat -M "tma_core_bound" -a sleep 0.1 failed. Return code is 255|
|0929_005724.531|ERROR| common.sh:123:do_cmd() - perf stat -M "tma_ports_utilization" -a sleep 0.1 failed. Return code is 255|
|0929_005731.541|ERROR| common.sh:123:do_cmd() - perf stat -M "tma_retiring" -a sleep 0.1 failed. Return code is 255|
|0929_005731.860|ERROR| common.sh:123:do_cmd() - perf stat -M "tma_light_operations" -a sleep 0.1 failed. Return code is 255|
|0929_005732.811|ERROR| common.sh:123:do_cmd() - perf stat -M "tma_x87_use" -a sleep 0.1 failed. Return code is 255|
|0929_005741.026|ERROR| common.sh:123:do_cmd() - perf stat -M "tma_heavy_operations" -a sleep 0.1 failed. Return code is 255|
|0929_005746.165|ERROR| common.sh:123:do_cmd() - perf stat -M "Memory_Latency" -a sleep 0.1 failed. Return code is 255|

# perf stat -v -M "tma_branch_mispredicts" -a sleep 1
Using CPUID GenuineIntel-6-8F-3
metric expr topdown\-br\-mispredict / (topdown\-fe\-bound + topdown\-bad\-spec + topdown\-retiring + topdown\-be\-bound) for tma_branch_mispredicts
found event topdown-retiring
found event topdown-fe-bound
found event topdown-be-bound
found event topdown-br-mispredict
found event topdown-bad-spec
Parsing metric events '{topdown-retiring/metric-id=topdown!1retiring/,topdown-fe-bound/metric-id=topdown!1fe!1bound/,topdown-be-bound/metric-id=topdown!1be!1bound/,topdown-br-mispredict/metric-id=topdown!1br!1mispredict/,topdown-bad-spec/metric-id=topdown!1bad!1spec/}:W'
topdown-retiring -> cpu/event=0,umask=0x80/
topdown-fe-bound -> cpu/event=0,umask=0x82/
topdown-be-bound -> cpu/event=0,umask=0x83/
topdown-br-mispredict -> cpu/event=0,umask=0x85/
topdown-bad-spec -> cpu/event=0,umask=0x81/
Control descriptor is not initialized
Warning:
topdown-retiring event is not supported by the kernel.
Error:
The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (topdown-retiring).
/bin/dmesg | grep -i perf may provide additional information.



[1] https://github.com/intel/perfmon-metrics

GenuineIntel-6-(1C|26|27|35|36),v4,bonnell,core
GenuineIntel-6-(3D|47),v26,broadwell,core
GenuineIntel-6-56,v23,broadwellde,core

--
Zhengjun Xing

--

- Arnaldo

--
Zhengjun Xing