Re: [PATCH v2 1/2] perf vendor events amd: Update Zen 5 core events

From: Sandipan Das

Date: Mon Jul 06 2026 - 14:29:27 EST


On 06-07-2026 22:44, Ian Rogers wrote:
> On Mon, Jun 22, 2026 at 10:28 PM Sandipan Das <sandipan.das@xxxxxxx> wrote:
>>
>> Update definitions for the following events.
>> * PMCx00A - Add missing unit masks
>> * PMCx00B - Add missing unit masks and fix descriptions
>> * PMCx00C - Add missing unit masks
>> * PMCx00D - Add missing unit masks
>> * PMCx025 - Add missing unit masks and fix descriptions
>>
>> Fixes: 45c072f2537a ("perf vendor events amd: Add Zen 5 core events")
>> Signed-off-by: Sandipan Das <sandipan.das@xxxxxxx>
>> ---
>>
>> Previous versions can be found at:
>> v1: https://lore.kernel.org/all/f16d1391366762dee0d49f00697f5e6ea913e2c1.1780330378.git.sandipan.das@xxxxxxx/
>>
>> Changes in v2:
>> * Fix event description pointed out by sashiko.
>>
>> ---
>> .../arch/x86/amdzen5/floating-point.json | 130 +++++++++++++++---
>> .../arch/x86/amdzen5/load-store.json | 8 +-
>> 2 files changed, 120 insertions(+), 18 deletions(-)
>>
>> diff --git a/tools/perf/pmu-events/arch/x86/amdzen5/floating-point.json b/tools/perf/pmu-events/arch/x86/amdzen5/floating-point.json
>> index 9204bfb1d69e..569975b53cc3 100644
>> --- a/tools/perf/pmu-events/arch/x86/amdzen5/floating-point.json
>> +++ b/tools/perf/pmu-events/arch/x86/amdzen5/floating-point.json
>> @@ -179,6 +179,30 @@
>> "BriefDescription": "Retired scalar floating-point blend ops.",
>> "UMask": "0x09"
>> },
>> + {
>> + "EventName": "fp_ops_retired_by_type.scalar_mov",
>> + "EventCode": "0x0a",
>> + "BriefDescription": "Retired scalar floating-point MOV ops.",
>> + "UMask": "0x0a"
>> + },
>> + {
>> + "EventName": "fp_ops_retired_by_type.scalar_shuffle",
>> + "EventCode": "0x0a",
>> + "BriefDescription": "Retired scalar floating-point shuffle ops (may include instructions not necessarily thought of as including shuffles e.g. horizontal add, dot product, and certain MOV instructions).",
>> + "UMask": "0x0b"
>> + },
>> + {
>> + "EventName": "fp_ops_retired_by_type.scalar_bfloat",
>> + "EventCode": "0x0a",
>> + "BriefDescription": "Retired scalar floating-point bfloat ops.",
>> + "UMask": "0x0c"
>> + },
>> + {
>> + "EventName": "fp_ops_retired_by_type.scalar_logical",
>> + "EventCode": "0x0a",
>> + "BriefDescription": "Retired scalar floating-point logical ops.",
>> + "UMask": "0x0d"
>> + },
>> {
>> "EventName": "fp_ops_retired_by_type.scalar_other",
>> "EventCode": "0x0a",
>> @@ -245,12 +269,24 @@
>> "BriefDescription": "Retired vector floating-point blend ops.",
>> "UMask": "0x90"
>> },
>> + {
>> + "EventName": "fp_ops_retired_by_type.vector_mov",
>> + "EventCode": "0x0a",
>> + "BriefDescription": "Retired vector floating-point MOV ops.",
>> + "UMask": "0xa0"
>> + },
>> {
>> "EventName": "fp_ops_retired_by_type.vector_shuffle",
>> "EventCode": "0x0a",
>> "BriefDescription": "Retired vector floating-point shuffle ops (may include instructions not necessarily thought of as including shuffles e.g. horizontal add, dot product, and certain MOV instructions).",
>> "UMask": "0xb0"
>> },
>> + {
>> + "EventName": "fp_ops_retired_by_type.vector_bfloat",
>> + "EventCode": "0x0a",
>> + "BriefDescription": "Retired vector floating-point bfloat ops.",
>> + "UMask": "0xc0"
>> + },
>> {
>> "EventName": "fp_ops_retired_by_type.vector_logical",
>> "EventCode": "0x0a",
>> @@ -278,7 +314,7 @@
>> {
>> "EventName": "sse_avx_ops_retired.mmx_add",
>> "EventCode": "0x0b",
>> - "BriefDescription": "Retired MMX integer add.",
>> + "BriefDescription": "Retired MMX integer add ops.",
>> "UMask": "0x01"
>> },
>> {
>> @@ -299,16 +335,34 @@
>> "BriefDescription": "Retired MMX integer multiply-accumulate ops.",
>> "UMask": "0x04"
>> },
>> + {
>> + "EventName": "sse_avx_ops_retired.mmx_aes",
>> + "EventCode": "0x0b",
>> + "BriefDescription": "Retired MMX integer AES ops.",
>> + "UMask": "0x05"
>> + },
>> + {
>> + "EventName": "sse_avx_ops_retired.mmx_sha",
>> + "EventCode": "0x0b",
>> + "BriefDescription": "Retired MMX integer SHA ops.",
>> + "UMask": "0x06"
>> + },
>> {
>> "EventName": "sse_avx_ops_retired.mmx_cmp",
>> "EventCode": "0x0b",
>> "BriefDescription": "Retired MMX integer compare ops.",
>> "UMask": "0x07"
>> },
>> + {
>> + "EventName": "sse_avx_ops_retired.mmx_cvt",
>> + "EventCode": "0x0b",
>> + "BriefDescription": "Retired MMX integer convert or pack ops.",
>> + "UMask": "0x08"
>> + },
>> {
>> "EventName": "sse_avx_ops_retired.mmx_shift",
>> "EventCode": "0x0b",
>> - "BriefDescription": "Retired MMX integer shift ops.",
>> + "BriefDescription": "Retired MMX integer shift or rotate ops.",
>> "UMask": "0x09"
>> },
>> {
>> @@ -324,9 +378,9 @@
>> "UMask": "0x0b"
>> },
>> {
>> - "EventName": "sse_avx_ops_retired.mmx_pack",
>> + "EventName": "sse_avx_ops_retired.mmx_vnni",
>
> Just a heads up, when renaming events it may be a good idea to keep
> the old name and mark the event as deprecated, then add the event
> again with the new name. This avoids events breaking when the perf
> tool is updated. Personally I feel vendors should get to decide about
> this kind of thing, but there have been some strong sensitivities
> around event names in the past.
>

Thanks for the suggestion. I agree that renames can be problematic
for existing scripted workflows.

Namhyung, please let me know if you want to revert these changes.
I can send out v3.

>
>> "EventCode": "0x0b",
>> - "BriefDescription": "Retired MMX integer pack ops.",
>> + "BriefDescription": "Retired MMX integer VNNI ops.",
>> "UMask": "0x0c"
>> },
>> {
>> @@ -390,15 +444,15 @@
>> "UMask": "0x70"
>> },
>> {
>> - "EventName": "sse_avx_ops_retired.sse_avx_clm",
>> + "EventName": "sse_avx_ops_retired.sse_avx_cvt",
>> "EventCode": "0x0b",
>> - "BriefDescription": "Retired SSE and AVX integer CLM ops.",
>> + "BriefDescription": "Retired SSE and AVX integer convert or pack ops.",
>> "UMask": "0x80"
>> },
>> {
>> "EventName": "sse_avx_ops_retired.sse_avx_shift",
>> "EventCode": "0x0b",
>> - "BriefDescription": "Retired SSE and AVX integer shift ops.",
>> + "BriefDescription": "Retired SSE and AVX integer shift or rotate ops.",
>> "UMask": "0x90"
>> },
>> {
>> @@ -414,9 +468,9 @@
>> "UMask": "0xb0"
>> },
>> {
>> - "EventName": "sse_avx_ops_retired.sse_avx_pack",
>> + "EventName": "sse_avx_ops_retired.sse_avx_vnni",
>> "EventCode": "0x0b",
>> - "BriefDescription": "Retired SSE and AVX integer pack ops.",
>> + "BriefDescription": "Retired SSE and AVX integer VNNI ops.",
>> "UMask": "0xc0"
>> },
>> {
>> @@ -497,12 +551,24 @@
>> "BriefDescription": "Retired 128-bit packed floating-point blend ops.",
>> "UMask": "0x09"
>> },
>> + {
>> + "EventName": "fp_pack_ops_retired.fp128_mov",
>> + "EventCode": "0x0c",
>> + "BriefDescription": "Retired 128-bit packed floating-point MOV ops.",
>> + "UMask": "0x0a"
>> + },
>> {
>> "EventName": "fp_pack_ops_retired.fp128_shuffle",
>> "EventCode": "0x0c",
>> "BriefDescription": "Retired 128-bit packed floating-point shuffle ops (may include instructions not necessarily thought of as including shuffles e.g. horizontal add, dot product, and certain MOV instructions).",
>> "UMask": "0x0b"
>> },
>> + {
>> + "EventName": "fp_pack_ops_retired.fp128_bfloat",
>> + "EventCode": "0x0c",
>> + "BriefDescription": "Retired 128-bit packed floating-point bfloat ops.",
>> + "UMask": "0x0c"
>> + },
>> {
>> "EventName": "fp_pack_ops_retired.fp128_logical",
>> "EventCode": "0x0c",
>> @@ -575,12 +641,24 @@
>> "BriefDescription": "Retired 256-bit packed floating-point blend ops.",
>> "UMask": "0x90"
>> },
>> + {
>> + "EventName": "fp_pack_ops_retired.fp256_mov",
>> + "EventCode": "0x0c",
>> + "BriefDescription": "Retired 256-bit packed floating-point MOV ops.",
>> + "UMask": "0xa0"
>> + },
>> {
>> "EventName": "fp_pack_ops_retired.fp256_shuffle",
>> "EventCode": "0x0c",
>> "BriefDescription": "Retired 256-bit packed floating-point shuffle ops (may include instructions not necessarily thought of as including shuffles e.g. horizontal add, dot product, and certain MOV instructions).",
>> "UMask": "0xb0"
>> },
>> + {
>> + "EventName": "fp_pack_ops_retired.fp256_bfloat",
>> + "EventCode": "0x0c",
>> + "BriefDescription": "Retired 256-bit packed floating-point bfloat ops.",
>> + "UMask": "0xc0"
>> + },
>> {
>> "EventName": "fp_pack_ops_retired.fp256_logical",
>> "EventCode": "0x0c",
>> @@ -648,15 +726,15 @@
>> "UMask": "0x07"
>> },
>> {
>> - "EventName": "packed_int_op_type.int128_clm",
>> + "EventName": "packed_int_op_type.int128_cvt",
>> "EventCode": "0x0d",
>> - "BriefDescription": "Retired 128-bit packed integer CLM ops.",
>> + "BriefDescription": "Retired 128-bit packed integer convert or pack ops.",
>> "UMask": "0x08"
>> },
>> {
>> "EventName": "packed_int_op_type.int128_shift",
>> "EventCode": "0x0d",
>> - "BriefDescription": "Retired 128-bit packed integer shift ops.",
>> + "BriefDescription": "Retired 128-bit packed integer shift or rotate ops.",
>> "UMask": "0x09"
>> },
>> {
>> @@ -672,9 +750,9 @@
>> "UMask": "0x0b"
>> },
>> {
>> - "EventName": "packed_int_op_type.int128_pack",
>> + "EventName": "packed_int_op_type.int128_vnni",
>> "EventCode": "0x0d",
>> - "BriefDescription": "Retired 128-bit packed integer pack ops.",
>> + "BriefDescription": "Retired 128-bit packed integer VNNI ops.",
>> "UMask": "0x0c"
>> },
>> {
>> @@ -719,16 +797,34 @@
>> "BriefDescription": "Retired 256-bit packed integer multiply-accumulate ops.",
>> "UMask": "0x40"
>> },
>> + {
>> + "EventName": "packed_int_op_type.int256_aes",
>> + "EventCode": "0x0d",
>> + "BriefDescription": "Retired 256-bit packed integer AES ops.",
>> + "UMask": "0x50"
>> + },
>> + {
>> + "EventName": "packed_int_op_type.int256_sha",
>> + "EventCode": "0x0d",
>> + "BriefDescription": "Retired 256-bit packed integer SHA ops.",
>> + "UMask": "0x60"
>> + },
>> {
>> "EventName": "packed_int_op_type.int256_cmp",
>> "EventCode": "0x0d",
>> "BriefDescription": "Retired 256-bit packed integer compare ops.",
>> "UMask": "0x70"
>> },
>> + {
>> + "EventName": "packed_int_op_type.int256_cvt",
>> + "EventCode": "0x0d",
>> + "BriefDescription": "Retired 256-bit packed integer convert or pack ops.",
>> + "UMask": "0x80"
>> + },
>> {
>> "EventName": "packed_int_op_type.int256_shift",
>> "EventCode": "0x0d",
>> - "BriefDescription": "Retired 256-bit packed integer shift ops.",
>> + "BriefDescription": "Retired 256-bit packed integer shift or rotate ops.",
>> "UMask": "0x90"
>> },
>> {
>> @@ -744,9 +840,9 @@
>> "UMask": "0xb0"
>> },
>> {
>> - "EventName": "packed_int_op_type.int256_pack",
>> + "EventName": "packed_int_op_type.int256_vnni",
>> "EventCode": "0x0d",
>> - "BriefDescription": "Retired 256-bit packed integer pack ops.",
>> + "BriefDescription": "Retired 256-bit packed integer VNNI ops.",
>> "UMask": "0xc0"
>> },
>> {
>> diff --git a/tools/perf/pmu-events/arch/x86/amdzen5/load-store.json b/tools/perf/pmu-events/arch/x86/amdzen5/load-store.json
>> index 06bbaea15925..b1994539ece8 100644
>> --- a/tools/perf/pmu-events/arch/x86/amdzen5/load-store.json
>> +++ b/tools/perf/pmu-events/arch/x86/amdzen5/load-store.json
>> @@ -8,9 +8,15 @@
>> {
>> "EventName": "ls_locks.bus_lock",
>> "EventCode": "0x25",
>> - "BriefDescription": "Retired Lock instructions which caused a bus lock.",
>> + "BriefDescription": "Retired lock instructions which caused a bus lock.",
>> "UMask": "0x01"
>> },
>> + {
>> + "EventName": "ls_locks.all",
>> + "EventCode": "0x25",
>> + "BriefDescription": "Retired lock instructions of all types.",
>> + "UMask": "0x1f"
>> + },
>> {
>> "EventName": "ls_ret_cl_flush",
>> "EventCode": "0x26",
>> --
>> 2.53.0
>>