# =======================================================================================
#
#      Filename:  perfmon_zen4c_events.txt
#
#      Description:  Event list for AMD Zen4c (Bergamo)
#
#      Version:   5.4.1
#      Released:  09.12.2024
#
#      Author:   Thomas Gruber (tr), thomas.roehl@googlemail.com
#      Project:  likwid
#
#      Copyright (C) 2024 RRZE, University Erlangen-Nuremberg
#
#      This program is free software: you can redistribute it and/or modify it under
#      the terms of the GNU General Public License as published by the Free Software
#      Foundation, either version 3 of the License, or (at your option) any later
#      version.
#
#      This program is distributed in the hope that it will be useful, but WITHOUT ANY
#      WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
#      PARTICULAR PURPOSE.  See the GNU General Public License for more details.
#
#      You should have received a copy of the GNU General Public License along with
#      this program.  If not, see <http://www.gnu.org/licenses/>.
#
# =======================================================================================

# Fixed Events
# Not working well. With accessdaemon the counts are off. With perf_event, the
# event always returns zero
#EVENT_INST_RETIRED_ANY                      0x06 FIXC0
#UMASK_INST_RETIRED_ANY                      0x00

EVENT_ACTUAL_CPU_CLOCK                       0x01 FIXC1
UMASK_ACTUAL_CPU_CLOCK                       0x00

EVENT_APERF                                  0x01 FIXC1
UMASK_APERF                                  0x00

EVENT_MAX_CPU_CLOCK                          0x02 FIXC2
UMASK_MAX_CPU_CLOCK                          0x00

EVENT_MPERF                                  0x02 FIXC2
UMASK_MPERF                                  0x00

# Core-local Events

EVENT_MERGE                                 0xFFF PMC
UMASK_MERGE                                 0x00

# FP events

EVENT_RETIRED_X87_FP_OPS                    0x02 PMC
UMASK_RETIRED_X87_FP_OPS_ADD_SUB            0x01
UMASK_RETIRED_X87_FP_OPS_MULT               0x02
UMASK_RETIRED_X87_FP_OPS_DIV_SQRT           0x04

# Must be used with MERGE event
EVENT_RETIRED_SSE_AVX_FLOPS                 0x03 PMC
UMASK_RETIRED_SSE_AVX_FLOPS_ADD_SUB         0x01
UMASK_RETIRED_SSE_AVX_FLOPS_MULT            0x02
UMASK_RETIRED_SSE_AVX_FLOPS_DIV_SQRT        0x04
UMASK_RETIRED_SSE_AVX_FLOPS_FMA             0x08
UMASK_RETIRED_SSE_AVX_FLOPS_MAC             0x08
UMASK_RETIRED_SSE_AVX_FLOPS_BFLOAT_FMA      0x10
UMASK_RETIRED_SSE_AVX_FLOPS_BFLOAT_MAC      0x10
UMASK_RETIRED_SSE_AVX_FLOPS_ALL             0x1F

EVENT_RETIRED_SERIALIZING_OPS               0x05 PMC
UMASK_RETIRED_SERIALIZING_OPS_X87_CONTROL   0x01
UMASK_RETIRED_SERIALIZING_OPS_X87_BOTTOM    0x02
UMASK_RETIRED_SERIALIZING_OPS_SSE_CONTROL   0x04
UMASK_RETIRED_SERIALIZING_OPS_SSE_BOTTOM    0x08

EVENT_RETIRED_FP_OPS_BY_WIDTH               0x08 PMC
UMASK_RETIRED_FP_OPS_BY_WIDTH_X87           0x01
UMASK_RETIRED_FP_OPS_BY_WIDTH_MMX           0x02
UMASK_RETIRED_FP_OPS_BY_WIDTH_SCALAR        0x04
UMASK_RETIRED_FP_OPS_BY_WIDTH_PACK128       0x08
UMASK_RETIRED_FP_OPS_BY_WIDTH_PACK256       0x10
UMASK_RETIRED_FP_OPS_BY_WIDTH_PACK512       0x20

EVENT_RETIRED_FP_OPS_BY_TYPE                0x0A PMC
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_ADD     0x01
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_SUB     0x02
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_MUL     0x03
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_MAC     0x04
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_FMA     0x04
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_DIV     0x05
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_SQRT    0x06
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_CMP     0x07
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_CVT     0x08
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_BLEND   0x09
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_OTHER   0x0E
UMASK_RETIRED_FP_OPS_BY_TYPE_SCALAR_ALL     0x0F
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_ADD     0x10
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_SUB     0x20
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_MUL     0x30
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_MAC     0x40
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_FMA     0x40
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_DIV     0x50
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_SQRT    0x60
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_CMP     0x70
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_CVT     0x80
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_BLEND   0x90
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_SHUFFLE 0xB0
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_LOGICAL 0xD0
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_OTHER   0xE0
UMASK_RETIRED_FP_OPS_BY_TYPE_VECTOR_ALL     0xF0
UMASK_RETIRED_FP_OPS_BY_TYPE_ALL_ALL        0xFF

EVENT_RETIRED_INT_OPS                       0x0B PMC
UMASK_RETIRED_INT_OPS_MMX_ADD               0x01
UMASK_RETIRED_INT_OPS_MMX_SUB               0x02
UMASK_RETIRED_INT_OPS_MMX_MUL               0x03
UMASK_RETIRED_INT_OPS_MMX_MAC               0x04
UMASK_RETIRED_INT_OPS_MMX_FMA               0x04
UMASK_RETIRED_INT_OPS_MMX_CMP               0x07
UMASK_RETIRED_INT_OPS_MMX_SHIFT             0x09
UMASK_RETIRED_INT_OPS_MMX_MOV               0x0A
UMASK_RETIRED_INT_OPS_MMX_SHUFFLE           0x0B
UMASK_RETIRED_INT_OPS_MMX_PACK              0x0C
UMASK_RETIRED_INT_OPS_MMX_LOGICAL           0x0D
UMASK_RETIRED_INT_OPS_MMX_OTHER             0x0E
UMASK_RETIRED_INT_OPS_MMX_ALL               0x0F
UMASK_RETIRED_INT_OPS_SSE_AVX_ADD           0x10
UMASK_RETIRED_INT_OPS_SSE_AVX_SUB           0x20
UMASK_RETIRED_INT_OPS_SSE_AVX_MUL           0x30
UMASK_RETIRED_INT_OPS_SSE_AVX_MAC           0x40
UMASK_RETIRED_INT_OPS_SSE_AVX_FMA           0x40
UMASK_RETIRED_INT_OPS_SSE_AVX_AES           0x50
UMASK_RETIRED_INT_OPS_SSE_AVX_SHA           0x60
UMASK_RETIRED_INT_OPS_SSE_AVX_CMP           0x70
UMASK_RETIRED_INT_OPS_SSE_AVX_CLM           0x80
UMASK_RETIRED_INT_OPS_SSE_AVX_SHIFT         0x90
UMASK_RETIRED_INT_OPS_SSE_AVX_MOV           0x0A
UMASK_RETIRED_INT_OPS_SSE_AVX_SHUFFLE       0xB0
UMASK_RETIRED_INT_OPS_SSE_AVX_PACK          0xC0
UMASK_RETIRED_INT_OPS_SSE_AVX_LOGICAL       0xD0
UMASK_RETIRED_INT_OPS_SSE_AVX_OTHER         0xE0
UMASK_RETIRED_INT_OPS_SSE_AVX_ALL           0xF0
UMASK_RETIRED_INT_OPS_ALL_ALL               0xFF

EVENT_RETIRED_PACKED_FP_OPS                   0x0C PMC
UMASK_RETIRED_PACKED_FP_OPS_FP128_ADD         0x01
UMASK_RETIRED_PACKED_FP_OPS_FP128_SUB         0x02
UMASK_RETIRED_PACKED_FP_OPS_FP128_MUL         0x03
UMASK_RETIRED_PACKED_FP_OPS_FP128_MAC         0x04
UMASK_RETIRED_PACKED_FP_OPS_FP128_FMA         0x04
UMASK_RETIRED_PACKED_FP_OPS_FP128_DIV         0x05
UMASK_RETIRED_PACKED_FP_OPS_FP128_SQRT        0x06
UMASK_RETIRED_PACKED_FP_OPS_FP128_CMP         0x07
UMASK_RETIRED_PACKED_FP_OPS_FP128_CVT         0x08
UMASK_RETIRED_PACKED_FP_OPS_FP128_BLEND       0x09
UMASK_RETIRED_PACKED_FP_OPS_FP128_SHUFFLE     0x0B
UMASK_RETIRED_PACKED_FP_OPS_FP128_LOGICAL     0x0D
UMASK_RETIRED_PACKED_FP_OPS_FP128_OTHER       0x0E
UMASK_RETIRED_PACKED_FP_OPS_FP128_ALL         0x0F
UMASK_RETIRED_PACKED_FP_OPS_FP256_ADD         0x10
UMASK_RETIRED_PACKED_FP_OPS_FP256_SUB         0x20
UMASK_RETIRED_PACKED_FP_OPS_FP256_MUL         0x30
UMASK_RETIRED_PACKED_FP_OPS_FP256_MAC         0x40
UMASK_RETIRED_PACKED_FP_OPS_FP256_FMA         0x40
UMASK_RETIRED_PACKED_FP_OPS_FP256_DIV         0x50
UMASK_RETIRED_PACKED_FP_OPS_FP256_SQRT        0x60
UMASK_RETIRED_PACKED_FP_OPS_FP256_CMP         0x70
UMASK_RETIRED_PACKED_FP_OPS_FP256_CVT         0x80
UMASK_RETIRED_PACKED_FP_OPS_FP256_BLEND       0x90
UMASK_RETIRED_PACKED_FP_OPS_FP256_SHUFFLE     0xB0
UMASK_RETIRED_PACKED_FP_OPS_FP256_LOGICAL     0xD0
UMASK_RETIRED_PACKED_FP_OPS_FP256_OTHER       0xE0
UMASK_RETIRED_PACKED_FP_OPS_FP256_ALL         0xF0
UMASK_RETIRED_PACKED_FP_OPS_ALL_ALL           0xFF

EVENT_RETIRED_PACKED_INT_OPS                    0x0D PMC
UMASK_RETIRED_PACKED_INT_OPS_INT128_ADD         0x01
UMASK_RETIRED_PACKED_INT_OPS_INT128_SUB         0x02
UMASK_RETIRED_PACKED_INT_OPS_INT128_MUL         0x03
UMASK_RETIRED_PACKED_INT_OPS_INT128_MAC         0x04
UMASK_RETIRED_PACKED_INT_OPS_INT128_FMA         0x04
UMASK_RETIRED_PACKED_INT_OPS_INT128_AES         0x05
UMASK_RETIRED_PACKED_INT_OPS_INT128_SHA         0x06
UMASK_RETIRED_PACKED_INT_OPS_INT128_CMP         0x07
UMASK_RETIRED_PACKED_INT_OPS_INT128_CLM         0x08
UMASK_RETIRED_PACKED_INT_OPS_INT128_SHIFT       0x09
UMASK_RETIRED_PACKED_INT_OPS_INT128_MOV         0x0A
UMASK_RETIRED_PACKED_INT_OPS_INT128_SHUFFLE     0x0B
UMASK_RETIRED_PACKED_INT_OPS_INT128_PACK        0x0C
UMASK_RETIRED_PACKED_INT_OPS_INT128_LOGICAL     0x0D
UMASK_RETIRED_PACKED_INT_OPS_INT128_OTHER       0x0E
UMASK_RETIRED_PACKED_INT_OPS_INT128_ALL         0x0F
UMASK_RETIRED_PACKED_INT_OPS_INT256_ADD         0x10
UMASK_RETIRED_PACKED_INT_OPS_INT256_SUB         0x20
UMASK_RETIRED_PACKED_INT_OPS_INT256_MUL         0x30
UMASK_RETIRED_PACKED_INT_OPS_INT256_MAC         0x40
UMASK_RETIRED_PACKED_INT_OPS_INT256_FMA         0x40
UMASK_RETIRED_PACKED_INT_OPS_INT256_CMP         0x70
UMASK_RETIRED_PACKED_INT_OPS_INT256_SHIFT       0x90
UMASK_RETIRED_PACKED_INT_OPS_INT256_MOV         0xA0
UMASK_RETIRED_PACKED_INT_OPS_INT256_SHUFFLE     0xB0
UMASK_RETIRED_PACKED_INT_OPS_INT256_PACK        0xC0
UMASK_RETIRED_PACKED_INT_OPS_INT256_LOGICAL     0xD0
UMASK_RETIRED_PACKED_INT_OPS_INT256_OTHER       0xE0
UMASK_RETIRED_PACKED_INT_OPS_INT256_ALL         0xF0
UMASK_RETIRED_PACKED_INT_OPS_ALL_ALL            0xFF

EVENT_FP_DISPATCH_FAULTS                    0x0E PMC
UMASK_FP_DISPATCH_FAULTS_X87_FILL           0x01
UMASK_FP_DISPATCH_FAULTS_XMM_FILL           0x02
UMASK_FP_DISPATCH_FAULTS_YMM_FILL           0x04
UMASK_FP_DISPATCH_FAULTS_YMM_SPILL          0x08

# Load/Store (LS) events

EVENT_BAD_STATUS2                           0x24 PMC
UMASK_BAD_STATUS2_STLI_OTHER                0x02

EVENT_RETIRED_LOCK_INSTR                    0x25 PMC
UMASK_RETIRED_LOCK_INSTR_BUS_LOCK           0x01

EVENT_RETIRED_CLFLUSH                       0x26 PMC
UMASK_RETIRED_CLFLUSH                       0x00

EVENT_RETIRED_CPUID                         0x27 PMC
UMASK_RETIRED_CPUID                         0x00

EVENT_LS_DISPATCH                           0x29 PMC
UMASK_LS_DISPATCH_LOADS                     0x01
UMASK_LS_DISPATCH_STORES                    0x02
UMASK_LS_DISPATCH_LOAD_OP_STORES            0x04
# Added by T. Gruber
UMASK_LS_DISPATCH_ALL                       0x07

EVENT_SMI_RECEIVED                          0x2B PMC
UMASK_SMI_RECEIVED                          0x00

EVENT_INTERRUPTS_TAKEN                      0x2C PMC
UMASK_INTERRUPTS_TAKEN                      0x01

EVENT_ST_TO_LD_FWD                          0x35 PMC
UMASK_ST_TO_LD_FWD                          0x00

EVENT_ST_COMMIT_CANCELS2                    0x37 PMC
UMASK_ST_COMMIT_CANCELS2_WCB_FULL           0x01

EVENT_LS_MAB_ALLOC                          0x41 PMC
UMASK_LS_MAB_ALLOC_LD_ST                    0x3F
UMASK_LS_MAB_ALLOC_HWPF                     0x40
UMASK_LS_MAB_ALLOC_ALL                      0x7F

EVENT_DEMAND_DATA_CACHE_FILLS                               0x43 PMC
UMASK_DEMAND_DATA_CACHE_FILLS_LOCAL_L2                      0x01
UMASK_DEMAND_DATA_CACHE_FILLS_LOCAL_CCX                     0x02
UMASK_DEMAND_DATA_CACHE_FILLS_INT_CACHE                     0x02 # Added by T. Gruber
UMASK_DEMAND_DATA_CACHE_FILLS_NEAR_CACHE_NEAR_FAR           0x04
UMASK_DEMAND_DATA_CACHE_FILLS_EXT_CACHE_LOCAL               0x04 # Added by T. Gruber
UMASK_DEMAND_DATA_CACHE_FILLS_DRAM_IO_NEAR                  0x08
UMASK_DEMAND_DATA_CACHE_FILLS_LOCAL_DRAM                    0x08 # Added by T. Gruber
UMASK_DEMAND_DATA_CACHE_FILLS_LOCAL_ALL                     0x0F # Added by T. Gruber
UMASK_DEMAND_DATA_CACHE_FILLS_EXT_CACHE_REMOTE              0x10 # Added by T. Gruber
UMASK_DEMAND_DATA_CACHE_FILLS_FAR_CACHE_NEAR_FAR            0x10
UMASK_DEMAND_DATA_CACHE_FILLS_REMOTE_DRAM                   0x40 # Added by T. Gruber
UMASK_DEMAND_DATA_CACHE_FILLS_DRAM_IO_FAR                   0x40
UMASK_DEMAND_DATA_CACHE_FILLS_ALTERNATE_MEMORIES_NEAR_FAR   0x80
UMASK_DEMAND_DATA_CACHE_FILLS_REMOTE_ALL                    0xD0 # Added by T. Gruber
UMASK_DEMAND_DATA_CACHE_FILLS_ALL                           0xDF # Added by T. Gruber

EVENT_ANY_DATA_CACHE_FILLS                              0x44 PMC
UMASK_ANY_DATA_CACHE_FILLS_LOCAL_L2                     0x01
UMASK_ANY_DATA_CACHE_FILLS_LOCAL_CCX                    0x02
UMASK_ANY_DATA_CACHE_FILLS_INT_CACHE                    0x02 # Added by T. Gruber
UMASK_ANY_DATA_CACHE_FILLS_NEAR_CACHE_NEAR_FAR          0x04
UMASK_ANY_DATA_CACHE_FILLS_EXT_CACHE_LOCAL              0x04 # Added by T. Gruber
UMASK_ANY_DATA_CACHE_FILLS_DRAM_IO_NEAR                 0x08
UMASK_ANY_DATA_CACHE_FILLS_LOCAL_DRAM                   0x08 # Added by T. Gruber
UMASK_ANY_DATA_CACHE_FILLS_LOCAL_ALL                    0x0F # Added by T. Gruber
UMASK_ANY_DATA_CACHE_FILLS_EXT_CACHE_REMOTE             0x10 # Added by T. Gruber
UMASK_ANY_DATA_CACHE_FILLS_FAR_CACHE_NEAR_FAR           0x10
UMASK_ANY_DATA_CACHE_FILLS_REMOTE_DRAM                  0x40 # Added by T. Gruber
UMASK_ANY_DATA_CACHE_FILLS_DRAM_IO_FAR                  0x40
UMASK_ANY_DATA_CACHE_FILLS_ALTERNATE_MEMORIES_NEAR_FAR  0x80
UMASK_ANY_DATA_CACHE_FILLS_REMOTE_ALL                   0xD0 # Added by T. Gruber
UMASK_ANY_DATA_CACHE_FILLS_ALL                          0xDF # Added by T. Gruber

EVENT_L1_DTLB_MISS                                      0x45 PMC
UMASK_L1_DTLB_MISS_4K_L2_HIT                            0x01
UMASK_L1_DTLB_MISS_COALESCED_PAGE_HIT                   0x02
UMASK_L1_DTLB_MISS_2M_L2_HIT                            0x04
UMASK_L1_DTLB_MISS_1G_L2_HIT                            0x08
UMASK_L1_DTLB_MISS_ANY_L2_HIT                           0x0F # Added by T. Gruber
UMASK_L1_DTLB_MISS_4K_L2_MISS                           0x10
UMASK_L1_DTLB_MISS_COALESCED_PAGE_MISS                  0x20
UMASK_L1_DTLB_MISS_2M_L2_MISS                           0x40
UMASK_L1_DTLB_MISS_1G_L2_MISS                           0x80
UMASK_L1_DTLB_MISS_ANY_L2_MISS                          0xF0 # Added by T. Gruber

EVENT_MISALIGNED_LOADS                      0x47 PMC
UMASK_MISALIGNED_LOADS_MA_64B               0x01
UMASK_MISALIGNED_LOADS_MA_4K                0x02
UMASK_MISALIGNED_LOADS_MA_ANY               0x03 # Added by T. Gruber

EVENT_PREF_INSTR_DISPATCHED                 0x4B PMC
UMASK_PREF_INSTR_DISPATCHED_PREFETCH        0x01
UMASK_PREF_INSTR_DISPATCHED_PREFETCHW       0x02
UMASK_PREF_INSTR_DISPATCHED_PREFETCHNTA     0x04
UMASK_PREF_INSTR_DISPATCHED_ANY             0x07 # Added by T. Gruber

EVENT_WCB_CLOSE_FLUSH                       0x50 PMC
UMASK_WCB_CLOSE_FLUSH_FULL_LINE_64B         0x01

EVENT_INEFFECTIVE_SW_PREF                   0x52 PMC
UMASK_INEFFECTIVE_SW_PREF_DATA_PIPE_SW_PF_DC_HIT    0x01
UMASK_INEFFECTIVE_SW_PREF_MAB_MCH_CNT       0x02

UMASK_SWPREF_DATA_CACHE_FILLS_LOCAL_L2          0x01
UMASK_SWPREF_DATA_CACHE_FILLS_LOCAL_CCX         0x02
UMASK_SWPREF_DATA_CACHE_FILLS_INT_CACHE         0x02 # Added by T. Gruber
UMASK_SWPREF_DATA_CACHE_FILLS_NEAR_CACHE_NEAR_FAR   0x04
UMASK_SWPREF_DATA_CACHE_FILLS_EXT_CACHE_LOCAL   0x04 # Added by T. Gruber
UMASK_SWPREF_DATA_CACHE_FILLS_DRAM_IO_NEAR      0x08
UMASK_SWPREF_DATA_CACHE_FILLS_LOCAL_DRAM        0x08 # Added by T. Gruber
UMASK_SWPREF_DATA_CACHE_FILLS_LOCAL_ALL         0x0F # Added by T. Gruber
UMASK_SWPREF_DATA_CACHE_FILLS_EXT_CACHE_REMOTE  0x10 # Added by T. Gruber
UMASK_SWPREF_DATA_CACHE_FILLS_FAR_CACHE_NEAR_FAR  0x10
UMASK_SWPREF_DATA_CACHE_FILLS_REMOTE_DRAM       0x40 # Added by T. Gruber
UMASK_SWPREF_DATA_CACHE_FILLS_DRAM_IO_FAR       0x40
UMASK_SWPREF_DATA_CACHE_FILLS_ALTERNATE_MEMORIES_NEAR_FAR   0x80
UMASK_SWPREF_DATA_CACHE_FILLS_REMOTE_ALL        0xD0 # Added by T. Gruber
UMASK_SWPREF_DATA_CACHE_FILLS_ALL               0xDF # Added by T. Gruber

EVENT_HWPREF_DATA_CACHE_FILLS                   0x5A PMC
UMASK_HWPREF_DATA_CACHE_FILLS_LOCAL_L2          0x01
UMASK_HWPREF_DATA_CACHE_FILLS_LOCAL_CCX         0x02
UMASK_HWPREF_DATA_CACHE_FILLS_INT_CACHE         0x02 # Added by T. Gruber
UMASK_HWPREF_DATA_CACHE_FILLS_NEAR_CACHE_NEAR_FAR   0x04
UMASK_HWPREF_DATA_CACHE_FILLS_EXT_CACHE_LOCAL   0x04 # Added by T. Gruber
UMASK_HWPREF_DATA_CACHE_FILLS_DRAM_IO_NEAR      0x08
UMASK_HWPREF_DATA_CACHE_FILLS_LOCAL_DRAM        0x08 # Added by T. Gruber
UMASK_HWPREF_DATA_CACHE_FILLS_LOCAL_ALL         0x0F # Added by T. Gruber
UMASK_HWPREF_DATA_CACHE_FILLS_EXT_CACHE_REMOTE  0x10 # Added by T. Gruber
UMASK_HWPREF_DATA_CACHE_FILLS_FAR_CACHE_NEAR_FAR  0x10
UMASK_HWPREF_DATA_CACHE_FILLS_REMOTE_DRAM       0x40 # Added by T. Gruber
UMASK_HWPREF_DATA_CACHE_FILLS_DRAM_IO_FAR       0x40
UMASK_HWPREF_DATA_CACHE_FILLS_ALTERNATE_MEMORIES_NEAR_FAR   0x80
UMASK_HWPREF_DATA_CACHE_FILLS_REMOTE_ALL        0xD0 # Added by T. Gruber
UMASK_HWPREF_DATA_CACHE_FILLS_ALL               0xDF # Added by T. Gruber

EVENT_COUNT_OF_ALLOC_MABS                   0x5F PMC
UMASK_COUNT_OF_ALLOC_MABS                   0x00

EVENT_CPU_CLOCKS_UNHALTED                    0x76 PMC
UMASK_CPU_CLOCKS_UNHALTED                    0x00

EVENT_TLB_FLUSHES                            0x78 PMC
UMASK_TLB_FLUSHES_ALL                        0xFF

EVENT_P0_FREQ_CYCLES_UNHALTED               0x120 PMC
UMASK_P0_FREQ_CYCLES_UNHALTED               0x01

# IC and BP events

# The number of 64-byte instruction cache lines fulfilled from the L2 cache.
EVENT_ICACHE_L2_REFILLS                     0x82     PMC
UMASK_ICACHE_L2_REFILLS                     0x00

# The number of 64-byte instruction cache line fulfilled from system memory or another cache.
EVENT_ICACHE_SYSTEM_REFILLS                 0x83     PMC
UMASK_ICACHE_SYSTEM_REFILLS                 0x00

EVENT_L1_ITLB_MISS_L2_ITLB_HIT              0x84     PMC
UMASK_L1_ITLB_MISS_L2_ITLB_HIT              0x00

EVENT_L1_ITLB_MISS_L2_ITLB_MISS                 0x85     PMC
UMASK_L1_ITLB_MISS_L2_ITLB_MISS_IF_4K           0x01
UMASK_L1_ITLB_MISS_L2_ITLB_MISS_IF_2M           0x02
UMASK_L1_ITLB_MISS_L2_ITLB_MISS_IF_1G           0x04
UMASK_L1_ITLB_MISS_L2_ITLB_MISS_COALESCED_4K    0x08
UMASK_L1_ITLB_MISS_L2_ITLB_MISS_ANY             0x0F # Added by T. Gruber

EVENT_L1_TLB_FETCH_HIT                  0x94 PMC
UMASK_L1_TLB_FETCH_HIT_IF_4K            0x01
UMASK_L1_TLB_FETCH_HIT_IF_2M            0x02
UMASK_L1_TLB_FETCH_HIT_IF_1G            0x04
UMASK_L1_TLB_FETCH_HIT_IF_ANY           0x07 # Added by T. Gruber

EVENT_RESYNCS_OR_NC_REDIRECTS           0x96 PMC
UMASK_RESYNCS_OR_NC_REDIRECTS           0x00

EVENT_FETCH_IBS                         0x188 PMC
UMASK_FETCH_IBS_FETCH_TAGGED            0x02
UMASK_FETCH_IBS_SAMPLE_DISCARDED        0x04
UMASK_FETCH_IBS_SAMPLE_FILTERED         0x08
UMASK_FETCH_IBS_SAMPLE_VAL              0x10

EVENT_IC_TAG                                0x18E PMC
UMASK_IC_TAG_HIT                            0x07
UMASK_IC_TAG_MISS                           0x18
UMASK_IC_TAG_ANY                            0x1F

EVENT_OC_CACHE                              0x28F PMC
UMASK_OC_CACHE_HIT                          0x03
UMASK_OC_CACHE_MISS                         0x04
UMASK_OC_CACHE_ANY                          0x07

# DE Events

EVENT_UOPS_QUEUE_EMTPY                  0xA9 PMC
UMASK_UOPS_QUEUE_EMTPY                  0x00

EVENT_UOPS_DISP                           0xAA PMC
UMASK_UOPS_DISP_FROM_DEC                  0x01
UMASK_UOPS_DISP_FROM_OPCACHE              0x02
UMASK_UOPS_DISP_FROM_LOOP_BUFFER          0x04

EVENT_TYPE_UOPS_FROM_DECODER                0xAB PMC
UMASK_TYPE_UOPS_FROM_DECODER_FP             0x04
UMASK_TYPE_UOPS_FROM_DECODER_INT            0x08

EVENT_DISPATCH_RESOURCE_STALL_CYCLES_1                          0xAE PMC
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_1_INT_REGFILE              0x01
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_1_LOAD_QUEUE               0x02
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_1_STORE_QUEUE              0x04
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_1_TAKEN_BRANCH             0x10
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_1_FP_REGFILE               0x20
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_1_FP_SCHEDULER             0x40
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_1_FP_FLUSH                 0x80

EVENT_DISPATCH_RESOURCE_STALL_CYCLES_2                          0xAF PMC
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_2_INT_SCHEDULER_0_TOKENS   0x01
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_2_INT_SCHEDULER_1_TOKENS   0x02
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_2_INT_SCHEDULER_2_TOKENS   0x04
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_2_INT_SCHEDULER_3_TOKENS   0x08
UMASK_DISPATCH_RESOURCE_STALL_CYCLES_2_RETIRE_TOKEN_STALL       0x20

EVENT_DISPATCH_STALLS_PER_SLOT                  0x1A0 PMC
UMASK_DISPATCH_STALLS_PER_SLOT_FRONTEND         0x01
UMASK_DISPATCH_STALLS_PER_SLOT_BACKEND          0x1E
UMASK_DISPATCH_STALLS_PER_SLOT_OTHER_SMT_THREAD 0x60

EVENT_ADDITIONAL_DISPATCH_RESOURCE_STALLS       0x1A2 PMC
UMASK_ADDITIONAL_DISPATCH_RESOURCE_STALLS       0x30

# EX (SC) Events

EVENT_RETIRED_INSTRUCTIONS                    0xC0     PMC
UMASK_RETIRED_INSTRUCTIONS                    0x00

EVENT_RETIRED_UOPS                            0xC1     PMC
UMASK_RETIRED_UOPS                            0x00

EVENT_RETIRED_BRANCH_INSTR                    0xC2     PMC
UMASK_RETIRED_BRANCH_INSTR                    0x00

EVENT_RETIRED_MISP_BRANCH_INSTR               0xC3     PMC
UMASK_RETIRED_MISP_BRANCH_INSTR               0x00

EVENT_RETIRED_TAKEN_BRANCH_INSTR              0xC4     PMC
UMASK_RETIRED_TAKEN_BRANCH_INSTR              0x00

EVENT_RETIRED_TAKEN_MISP_BRANCH_INSTR         0xC5     PMC
UMASK_RETIRED_TAKEN_MISP_BRANCH_INSTR         0x00

EVENT_RETIRED_FAR_CONTROL_TRANSFERS           0xC6     PMC
UMASK_RETIRED_FAR_CONTROL_TRANSFERS           0x00

EVENT_RETIRED_NEAR_RETURNS                    0xC8     PMC
UMASK_RETIRED_NEAR_RETURNS                    0x00

EVENT_RETIRED_NEAR_RETURNS_MISP               0xC9     PMC
UMASK_RETIRED_NEAR_RETURNS_MISP               0x00

EVENT_RETIRED_INDIRECT_BRANCHES_MISP          0xCA     PMC
UMASK_RETIRED_INDIRECT_BRANCHES_MISP          0x00

EVENT_RETIRED_MMX_FP_INSTR                    0xCB     PMC
UMASK_RETIRED_MMX_FP_INSTR_X87                0x01
UMASK_RETIRED_MMX_FP_INSTR_MMX                0x02
UMASK_RETIRED_MMX_FP_INSTR_SSE                0x04
UMASK_RETIRED_MMX_FP_INSTR_ALL                0x07 # Added by T. Gruber

EVENT_RETIRED_INDIRECT_BRANCH_INSTR           0xCC     PMC
UMASK_RETIRED_INDIRECT_BRANCH_INSTR           0x00

EVENT_RETIRED_COND_BRANCH_INSTR               0xD1 PMC
UMASK_RETIRED_COND_BRANCH_INSTR               0x00

EVENT_DIV_BUSY_CYCLES                         0xD3 PMC
UMASK_DIV_BUSY_CYCLES                         0x00

EVENT_DIV_OP_COUNT                            0xD4 PMC
UMASK_DIV_OP_COUNT                            0x00

EVENT_CYCLES_NO_RETIRE                                0xD6 PMC
UMASK_CYCLES_NO_RETIRE_LOAD_ALU_QUEUE_EMPTY           0x01
UMASK_CYCLES_NO_RETIRE_LOAD_ALU_NOT_COMPLETE          0x02
UMASK_CYCLES_NO_RETIRE_LOAD_ALU_OTHER                 0x08
UMASK_CYCLES_NO_RETIRE_LOAD_ALU_THREAD_NOT_SELECTED   0x10
UMASK_CYCLES_NO_RETIRE_LOAD_QUEUE_EMPTY               0x51
UMASK_CYCLES_NO_RETIRE_LOAD_NOT_COMPLETE              0x52
UMASK_CYCLES_NO_RETIRE_LOAD_OTHER                     0x58
UMASK_CYCLES_NO_RETIRE_LOAD_THREAD_NOT_SELECTED       0x60

EVENT_RETIRED_MICROCODED_INSTR                  0x1C1 PMC
UMASK_RETIRED_MICROCODED_INSTR                  0x00

EVENT_RETIRED_MICROCODE_OPS                     0x1C2 PMC
UMASK_RETIRED_MICROCODE_OPS                     0x00

EVENT_RETIRED_BRANCHES_MISP_DIRECTION_MISMATCH  0x1C7     PMC
UMASK_RETIRED_BRANCHES_MISP_DIRECTION_MISMATCH  0x00

EVENT_RETIRED_UNCOND_INDIRECT_BRANCHES_MISP     0x1C8 PMC
UMASK_RETIRED_UNCOND_INDIRECT_BRANCHES_MISP     0x00

EVENT_RETIRED_UNCOND_BRANCHE_INSTR     0x1C9 PMC
UMASK_RETIRED_UNCOND_BRANCHE_INSTR     0x00

EVENT_TAGGED_IBS_OPS                          0x1CF PMC
UMASK_TAGGED_IBS_OPS_COUNT                    0x01
UMASK_TAGGED_IBS_OPS_COUNT_RETIRED            0x02
UMASK_TAGGED_IBS_OPS_COUNT_ROLLOVER           0x04

EVENT_RETIRED_FUSED_INSTR                       0x1D0 PMC
UMASK_RETIRED_FUSED_INSTR                       0x00

# L2 Cache Events

EVENT_REQUESTS_TO_L2_GRP1                     0x60 PMC
UMASK_REQUESTS_TO_L2_GRP1_GRP2                0x01
UMASK_REQUESTS_TO_L2_GRP1_L2_HW_PREF          0x02
UMASK_REQUESTS_TO_L2_GRP1_PREF_L2             0x04
UMASK_REQUESTS_TO_L2_GRP1_CHANGE_TO_X         0x08
UMASK_REQUESTS_TO_L2_GRP1_CACHEABLE_IC_READ   0x10
UMASK_REQUESTS_TO_L2_GRP1_LS_RD_BLOCK_C_S     0x20
UMASK_REQUESTS_TO_L2_GRP1_RD_BLOCK_X          0x40
UMASK_REQUESTS_TO_L2_GRP1_RD_BLOCK_L          0x80
UMASK_REQUESTS_TO_L2_GRP1_DATA_CACHE_MISSES   0xE8 # Added by T. Gruber
UMASK_REQUESTS_TO_L2_GRP1_L1_CACHES_MISS      0x88 # Added by T. Gruber
UMASK_REQUESTS_TO_L2_GRP1_ALL_NO_PF           0xF9 # Added by T. Gruber
UMASK_REQUESTS_TO_L2_GRP1_ALL                 0xFF # Added by T. Gruber

EVENT_REQUESTS_TO_L2_GRP2                     0x61 PMC
UMASK_REQUESTS_TO_L2_GRP2_RD_SIZED            0x20
UMASK_REQUESTS_TO_L2_GRP2_RD_SIZED_NC         0x40

EVENT_L2_WCB_REQ                                0x63 PMC
UMASK_L2_WCB_REQ_CLOSE                          0x20
UMASK_L2_WCB_REQ_WRITE                          0x40

EVENT_CORE_TO_L2_CACHE_REQUESTS                      0x64 PMC
UMASK_CORE_TO_L2_CACHE_REQUESTS_IC_FILL_MISS         0x01
UMASK_CORE_TO_L2_CACHE_REQUESTS_IC_FILL_HIT_S        0x02
UMASK_CORE_TO_L2_CACHE_REQUESTS_IC_FILL_HIT_X        0x04
UMASK_CORE_TO_L2_CACHE_REQUESTS_LD_READ_BLK_C        0x08
UMASK_CORE_TO_L2_CACHE_REQUESTS_LD_READ_BLK_X        0x10
UMASK_CORE_TO_L2_CACHE_REQUESTS_LD_READ_BLK_L_HIT_S  0x20
UMASK_CORE_TO_L2_CACHE_REQUESTS_LD_READ_BLK_L_HIT_X  0x40
UMASK_CORE_TO_L2_CACHE_REQUESTS_LD_READ_BLK_CS       0x80
UMASK_CORE_TO_L2_CACHE_REQUESTS_MISSES               0x09 # Added by T. Gruber
UMASK_CORE_TO_L2_CACHE_REQUESTS_HITS                 0xF6 # Added by T. Gruber

EVENT_L2_PF_HIT_IN_L2                       0x70 PMC
UMASK_L2_PF_HIT_IN_L2_L2PREF                0x1F
UMASK_L2_PF_HIT_IN_L2_L1DCPREF              0xE0
UMASK_L2_PF_HIT_IN_L2_ALLPREF               0xFF

EVENT_L2_PF_HIT_IN_L3                       0x71 PMC
UMASK_L2_PF_HIT_IN_L3_L2PREF                0x1F
UMASK_L2_PF_HIT_IN_L3_L1DCPREF              0xE0
UMASK_L2_PF_HIT_IN_L3                       0xFF

EVENT_L2_PF_MISS_IN_L3                      0x72 PMC
UMASK_L2_PF_MISS_IN_L3_L2PREF               0x1F
UMASK_L2_PF_MISS_IN_L3_L1DCPREF             0xE0
UMASK_L2_PF_MISS_IN_L3                      0xFF

EVENT_L2_FILL_RSP_SRC                           0x165 PMC
UMASK_L2_FILL_RSP_SRC_LOCAL_CCX                 0x02
UMASK_L2_FILL_RSP_SRC_NEAR_FAR_CACHE_NEAR       0x04
UMASK_L2_FILL_RSP_SRC_DRAM_IO_NEAR              0x08
UMASK_L2_FILL_RSP_SRC_NEAR_FAR_CACHE_FAR        0x10
UMASK_L2_FILL_RSP_SRC_DRAM_IO_FAR               0x40
UMASK_L2_FILL_RSP_SRC_ALTERNATE_MEMORY_NEAR_FAR 0x80

# L3 Cache Events

EVENT_L3_LOOKUP_STATE                       0x04 CPMC
UMASK_L3_LOOKUP_STATE_MISS                  0x01
UMASK_L3_LOOKUP_STATE_HIT                   0xFE
UMASK_L3_LOOKUP_STATE_ALL_TYPES             0xFF # Added by T. Gruber

EVENT_L3_XI_SAMPLED_LATENCY                             0xAC CPMC
UMASK_L3_XI_SAMPLED_LATENCY_DRAM_NEAR                   0x01
UMASK_L3_XI_SAMPLED_LATENCY_DRAM_FAR                    0x02
UMASK_L3_XI_SAMPLED_LATENCY_NEAR_CACHE_FAR_CACHE_NEAR   0x04
UMASK_L3_XI_SAMPLED_LATENCY_NEAR_CACHE_FAR_CACHE_FAR    0x08
UMASK_L3_XI_SAMPLED_LATENCY_EXT_NEAR                    0x10
UMASK_L3_XI_SAMPLED_LATENCY_EXT_FAR                     0x20

EVENT_L3_XI_SAMPLED_LATENCY_REQUESTS                             0xAD CPMC
DEFAULT_OPTIONS_L3_XI_SAMPLED_LATENCY_REQUESTS_DRAM_NEAR         EVENT_OPTION_SLICE=0x3
UMASK_L3_XI_SAMPLED_LATENCY_REQUESTS_DRAM_NEAR                   0x01
DEFAULT_OPTIONS_L3_XI_SAMPLED_LATENCY_REQUESTS_DRAM_FAR          EVENT_OPTION_SLICE=0x3
UMASK_L3_XI_SAMPLED_LATENCY_REQUESTS_DRAM_FAR                    0x02
DEFAULT_OPTIONS_L3_XI_SAMPLED_LATENCY_REQUESTS_NEAR_CACHE_FAR_CACHE_NEAR         EVENT_OPTION_SLICE=0x3
UMASK_L3_XI_SAMPLED_LATENCY_REQUESTS_NEAR_CACHE_FAR_CACHE_NEAR   0x04
DEFAULT_OPTIONS_L3_XI_SAMPLED_LATENCY_REQUESTS_NEAR_CACHE_FAR_CACHE_FAR         EVENT_OPTION_SLICE=0x3
UMASK_L3_XI_SAMPLED_LATENCY_REQUESTS_NEAR_CACHE_FAR_CACHE_FAR    0x08
DEFAULT_OPTIONS_L3_XI_SAMPLED_LATENCY_REQUESTS_EXT_NEAR          EVENT_OPTION_SLICE=0x3
UMASK_L3_XI_SAMPLED_LATENCY_REQUESTS_EXT_NEAR                    0x10
DEFAULT_OPTIONS_L3_XI_SAMPLED_LATENCY_REQUESTS_EXT_FAR           EVENT_OPTION_SLICE=0x3
UMASK_L3_XI_SAMPLED_LATENCY_REQUESTS_EXT_FAR                     0x20

# Energy Events
# Only usable in direct or accessdaemon mode.
# perf_event combines the core events to one pkg event
# to be comparable with Intel architectures.

EVENT_RAPL_CORE_ENERGY                    0x01 PWR0
UMASK_RAPL_CORE_ENERGY                    0x00

EVENT_RAPL_L3_ENERGY                     0x03 PWR2
UMASK_RAPL_L3_ENERGY                     0x00


# Data fabric events

# DRAM read data bytes for local processor:
# (DfEvent[0x000000000740FE1F] +
# DfEvent[0x000000000740FE5F] +
# DfEvent[0x000000000740FE9F] +
# DfEvent[0x000000000740FEDF] +
# DfEvent[0x000000010740FE1F] +
# DfEvent[0x000000010740FE5F] +
# DfEvent[0x000000010740FE9F] +
# DfEvent[0x000000010740FEDF] +
# DfEvent[0x000000020740FE1F] +
# DfEvent[0x000000020740FE5F] +
# DfEvent[0x000000020740FE9F] +
# DfEvent[0x000000020740FEDF]) *64B

# Since there are 12 events and the AMD Zen4 has 12 memory channels, we
# assume that each event covers one channel

EVENT_DRAM_READS_LOCAL_CHANNEL_0      0x1F DFC
UMASK_DRAM_READS_LOCAL_CHANNEL_0      0x7FE

EVENT_DRAM_READS_LOCAL_CHANNEL_1      0x5F DFC
UMASK_DRAM_READS_LOCAL_CHANNEL_1      0x7FE

EVENT_DRAM_READS_LOCAL_CHANNEL_2      0x9F DFC
UMASK_DRAM_READS_LOCAL_CHANNEL_2      0x7FE

EVENT_DRAM_READS_LOCAL_CHANNEL_3      0xDF DFC
UMASK_DRAM_READS_LOCAL_CHANNEL_3      0x7FE

EVENT_DRAM_READS_LOCAL_CHANNEL_4      0x11F DFC
UMASK_DRAM_READS_LOCAL_CHANNEL_4      0x7FE

EVENT_DRAM_READS_LOCAL_CHANNEL_5      0x15F DFC
UMASK_DRAM_READS_LOCAL_CHANNEL_5      0x7FE

EVENT_DRAM_READS_LOCAL_CHANNEL_6      0x19F DFC
UMASK_DRAM_READS_LOCAL_CHANNEL_6      0x7FE

EVENT_DRAM_READS_LOCAL_CHANNEL_7      0x1DF DFC
UMASK_DRAM_READS_LOCAL_CHANNEL_7      0x7FE

EVENT_DRAM_READS_LOCAL_CHANNEL_8      0x21F DFC
UMASK_DRAM_READS_LOCAL_CHANNEL_8      0x7FE

EVENT_DRAM_READS_LOCAL_CHANNEL_9      0x25F DFC
UMASK_DRAM_READS_LOCAL_CHANNEL_9      0x7FE

EVENT_DRAM_READS_LOCAL_CHANNEL_10     0x29F DFC
UMASK_DRAM_READS_LOCAL_CHANNEL_10     0x7FE

EVENT_DRAM_READS_LOCAL_CHANNEL_11     0x2DF DFC
UMASK_DRAM_READS_LOCAL_CHANNEL_11     0x7FE

# DRAM write data bytes for local processor:
# (DfEvent[0x000000000740FF1F] +
# DfEvent[0x000000000740FF5F] +
# DfEvent[0x000000000740FF9F] +
# DfEvent[0x000000000740FFDF] +
# DfEvent[0x000000010740FF1F] +
# DfEvent[0x000000010740FF5F] +
# DfEvent[0x000000010740FF9F] +
# DfEvent[0x000000010740FFDF] +
# DfEvent[0x000000020740FF1F] +
# DfEvent[0x000000020740FF5F] +
# DfEvent[0x000000020740FF9F] +
# DfEvent[0x000000020740FFDF]) * 64B

# Since there are 12 events and the AMD Zen4 has 12 memory channels, we
# assume that each event covers one channel

EVENT_DRAM_WRITES_LOCAL_CHANNEL_0      0x1F DFC
UMASK_DRAM_WRITES_LOCAL_CHANNEL_0      0x7FF

EVENT_DRAM_WRITES_LOCAL_CHANNEL_1      0x5F DFC
UMASK_DRAM_WRITES_LOCAL_CHANNEL_1      0x7FF

EVENT_DRAM_WRITES_LOCAL_CHANNEL_2      0x9F DFC
UMASK_DRAM_WRITES_LOCAL_CHANNEL_2      0x7FF

EVENT_DRAM_WRITES_LOCAL_CHANNEL_3      0xDF DFC
UMASK_DRAM_WRITES_LOCAL_CHANNEL_3      0x7FF

EVENT_DRAM_WRITES_LOCAL_CHANNEL_4      0x11F DFC
UMASK_DRAM_WRITES_LOCAL_CHANNEL_4      0x7FF

EVENT_DRAM_WRITES_LOCAL_CHANNEL_5      0x15F DFC
UMASK_DRAM_WRITES_LOCAL_CHANNEL_5      0x7FF

EVENT_DRAM_WRITES_LOCAL_CHANNEL_6      0x19F DFC
UMASK_DRAM_WRITES_LOCAL_CHANNEL_6      0x7FF

EVENT_DRAM_WRITES_LOCAL_CHANNEL_7      0x1DF DFC
UMASK_DRAM_WRITES_LOCAL_CHANNEL_7      0x7FF

EVENT_DRAM_WRITES_LOCAL_CHANNEL_8      0x21F DFC
UMASK_DRAM_WRITES_LOCAL_CHANNEL_8      0x7FF

EVENT_DRAM_WRITES_LOCAL_CHANNEL_9      0x25F DFC
UMASK_DRAM_WRITES_LOCAL_CHANNEL_9      0x7FF

EVENT_DRAM_WRITES_LOCAL_CHANNEL_10     0x29F DFC
UMASK_DRAM_WRITES_LOCAL_CHANNEL_10     0x7FF

EVENT_DRAM_WRITES_LOCAL_CHANNEL_11     0x2DF DFC
UMASK_DRAM_WRITES_LOCAL_CHANNEL_11     0x7FF

# DRAM read data bytes for remote processor:
# (DfEvent[0x000000000B40FE1F] +
# DfEvent[0x000000000B40FE5F] +
# DfEvent[0x000000000B40FE9F] +
# DfEvent[0x000000000B40FEDF] +
# DfEvent[0x000000010B40FE1F] +
# DfEvent[0x000000010B40FE5F] +
# DfEvent[0x000000010B40FE9F] +
# DfEvent[0x000000010B40FEDF] +
# DfEvent[0x000000020B40FE1F] +
# DfEvent[0x000000020B40FE5F] +
# DfEvent[0x000000020B40FE9F] +
# DfEvent[0x000000020B40FEDF]) * 64B

# Since there are 12 events and the AMD Zen4 has 12 memory channels, we
# assume that each event covers one channel

EVENT_DRAM_READS_REMOTE_CHANNEL_0      0x1F DFC
UMASK_DRAM_READS_REMOTE_CHANNEL_0      0xBFE

EVENT_DRAM_READS_REMOTE_CHANNEL_1      0x5F DFC
UMASK_DRAM_READS_REMOTE_CHANNEL_1      0xBFE

EVENT_DRAM_READS_REMOTE_CHANNEL_2      0x9F DFC
UMASK_DRAM_READS_REMOTE_CHANNEL_2      0xBFE

EVENT_DRAM_READS_REMOTE_CHANNEL_3      0xDF DFC
UMASK_DRAM_READS_REMOTE_CHANNEL_3      0xBFE

EVENT_DRAM_READS_REMOTE_CHANNEL_4      0x11F DFC
UMASK_DRAM_READS_REMOTE_CHANNEL_4      0xBFE

EVENT_DRAM_READS_REMOTE_CHANNEL_5      0x15F DFC
UMASK_DRAM_READS_REMOTE_CHANNEL_5      0xBFE

EVENT_DRAM_READS_REMOTE_CHANNEL_6      0x19F DFC
UMASK_DRAM_READS_REMOTE_CHANNEL_6      0xBFE

EVENT_DRAM_READS_REMOTE_CHANNEL_7      0x1DF DFC
UMASK_DRAM_READS_REMOTE_CHANNEL_7      0xBFE

EVENT_DRAM_READS_REMOTE_CHANNEL_8      0x21F DFC
UMASK_DRAM_READS_REMOTE_CHANNEL_8      0xBFE

EVENT_DRAM_READS_REMOTE_CHANNEL_9      0x25F DFC
UMASK_DRAM_READS_REMOTE_CHANNEL_9      0xBFE

EVENT_DRAM_READS_REMOTE_CHANNEL_10     0x29F DFC
UMASK_DRAM_READS_REMOTE_CHANNEL_10     0xBFE

EVENT_DRAM_READS_REMOTE_CHANNEL_11     0x2DF DFC
UMASK_DRAM_READS_REMOTE_CHANNEL_11     0xBFE

# DRAM write data bytes for remote processor
# (DfEvent[0x000000000B40FF1F] +
# DfEvent[0x000000000B40FF5F] +
# DfEvent[0x000000000B40FF9F] +
# DfEvent[0x000000000B40FFDF] +
# DfEvent[0x000000010B40FF1F] +
# DfEvent[0x000000010B40FF5F] +
# DfEvent[0x000000010B40FF9F] +
# DfEvent[0x000000010B40FFDF] +
# DfEvent[0x000000020B40FF1F] +
# DfEvent[0x000000020B40FF5F] +
# DfEvent[0x000000020B40FF9F] +
# DfEvent[0x000000020B40FFDF]) * 64B

# Since there are 12 events and the AMD Zen4 has 12 memory channels, we
# assume that each event covers one channel

EVENT_DRAM_WRITES_REMOTE_CHANNEL_0      0x1F DFC
UMASK_DRAM_WRITES_REMOTE_CHANNEL_0      0xBFF

EVENT_DRAM_WRITES_REMOTE_CHANNEL_1      0x5F DFC
UMASK_DRAM_WRITES_REMOTE_CHANNEL_1      0xBFF

EVENT_DRAM_WRITES_REMOTE_CHANNEL_2      0x9F DFC
UMASK_DRAM_WRITES_REMOTE_CHANNEL_2      0xBFF

EVENT_DRAM_WRITES_REMOTE_CHANNEL_3      0xDF DFC
UMASK_DRAM_WRITES_REMOTE_CHANNEL_3      0xBFF

EVENT_DRAM_WRITES_REMOTE_CHANNEL_4      0x11F DFC
UMASK_DRAM_WRITES_REMOTE_CHANNEL_4      0xBFF

EVENT_DRAM_WRITES_REMOTE_CHANNEL_5      0x15F DFC
UMASK_DRAM_WRITES_REMOTE_CHANNEL_5      0xBFF

EVENT_DRAM_WRITES_REMOTE_CHANNEL_6      0x19F DFC
UMASK_DRAM_WRITES_REMOTE_CHANNEL_6      0xBFF

EVENT_DRAM_WRITES_REMOTE_CHANNEL_7      0x1DF DFC
UMASK_DRAM_WRITES_REMOTE_CHANNEL_7      0xBFF

EVENT_DRAM_WRITES_REMOTE_CHANNEL_8      0x21F DFC
UMASK_DRAM_WRITES_REMOTE_CHANNEL_8      0xBFF

EVENT_DRAM_WRITES_REMOTE_CHANNEL_9      0x25F DFC
UMASK_DRAM_WRITES_REMOTE_CHANNEL_9      0xBFF

EVENT_DRAM_WRITES_REMOTE_CHANNEL_10     0x29F DFC
UMASK_DRAM_WRITES_REMOTE_CHANNEL_10     0xBFF

EVENT_DRAM_WRITES_REMOTE_CHANNEL_11     0x2DF DFC
UMASK_DRAM_WRITES_REMOTE_CHANNEL_11     0xBFF

# Local upstream DMA read data bytes
# (DfEvent[0x000000080740FE1F] +
# DfEvent[0x000000080740FE5F] +
# DfEvent[0x000000080740FE9F] +
# DfEvent[0x000000080740FEDF]) * 64B

EVENT_DRAM_DMA_READS_LOCAL_0            0x81F DFC
UMASK_DRAM_DMA_READS_LOCAL_0            0x7FF

EVENT_DRAM_DMA_READS_LOCAL_1            0x85F DFC
UMASK_DRAM_DMA_READS_LOCAL_1            0x7FF

EVENT_DRAM_DMA_READS_LOCAL_2            0x89F DFC
UMASK_DRAM_DMA_READS_LOCAL_2            0x7FF

EVENT_DRAM_DMA_READS_LOCAL_3            0x8DF DFC
UMASK_DRAM_DMA_READS_LOCAL_3            0x7FF

# Local upstream DMA write data bytes
# (DfEvent[0x000000080740FF1F] +
# DfEvent[0x000000080740FF5F] +
# DfEvent[0x000000080740FF9F] +
# DfEvent[0x000000080740FFDF]) * 64B

EVENT_DRAM_DMA_WRITES_LOCAL_0            0x81F DFC
UMASK_DRAM_DMA_WRITES_LOCAL_0            0x7FF

EVENT_DRAM_DMA_WRITES_LOCAL_1            0x85F DFC
UMASK_DRAM_DMA_WRITES_LOCAL_1            0x7FF

EVENT_DRAM_DMA_WRITES_LOCAL_2            0x89F DFC
UMASK_DRAM_DMA_WRITES_LOCAL_2            0x7FF

EVENT_DRAM_DMA_WRITES_LOCAL_3            0x8DF DFC
UMASK_DRAM_DMA_WRITES_LOCAL_3            0x7FF

# Remote socket upstream DMA read data bytes
# (DfEvent[0x000000080B40FE1F] +
# DfEvent[0x000000080B40FE5F] +
# DfEvent[0x000000080B40FE9F] +
# DfEvent[0x000000080B40FEDF]) * 64B

EVENT_DRAM_DMA_READS_REMOTE_0            0x81F DFC
UMASK_DRAM_DMA_READS_REMOTE_0            0xBFF

EVENT_DRAM_DMA_READS_REMOTE_1            0x85F DFC
UMASK_DRAM_DMA_READS_REMOTE_1            0xBFF

EVENT_DRAM_DMA_READS_REMOTE_2            0x89F DFC
UMASK_DRAM_DMA_READS_REMOTE_2            0xBFF

EVENT_DRAM_DMA_READS_REMOTE_3            0x8DF DFC
UMASK_DRAM_DMA_READS_REMOTE_3            0xBFF

# Remote socket upstream DMA write data bytes
# (DfEvent[0x000000080B40FF1F] +
# DfEvent[0x000000080B40FF5F] +
# DfEvent[0x000000080B40FF9F] +
# DfEvent[0x000000080B40FFDF]) * 64B

EVENT_DRAM_DMA_WRITES_REMOTE_0            0x81F DFC
UMASK_DRAM_DMA_WRITES_REMOTE_0            0xBFF

EVENT_DRAM_DMA_WRITES_REMOTE_1            0x85F DFC
UMASK_DRAM_DMA_WRITES_REMOTE_1            0xBFF

EVENT_DRAM_DMA_WRITES_REMOTE_2            0x89F DFC
UMASK_DRAM_DMA_WRITES_REMOTE_2            0xBFF

EVENT_DRAM_DMA_WRITES_REMOTE_3            0x8DF DFC
UMASK_DRAM_DMA_WRITES_REMOTE_3            0xBFF

# Local inbound data bytes to the CPU (e.g. read data)
# (DfEvent[0x000000040740FE1E] +
# DfEvent[0x000000040740FE1F] +
# DfEvent[0x000000040740FE5E] +
# DfEvent[0x000000040740FE5F] +
# DfEvent[0x000000040740FE9E] +
# DfEvent[0x000000040740FE9F] +
# DfEvent[0x000000040740FEDE] +
# DfEvent[0x000000040740FEDF] +
# DfEvent[0x000000050740FE1E] +
# DfEvent[0x000000050740FE1F] +
# DfEvent[0x000000050740FE5E] +
# DfEvent[0x000000050740FE5F] +
# DfEvent[0x000000050740FE9E] +
# DfEvent[0x000000050740FE9F] +
# DfEvent[0x000000050740FEDE] +
# DfEvent[0x000000050740FEDF]) * 32B


EVENT_LOCAL_INBOUND_DATA_0          0x41E DFC
UMASK_LOCAL_INBOUND_DATA_0          0x7FE

EVENT_LOCAL_INBOUND_DATA_1          0x41F DFC
UMASK_LOCAL_INBOUND_DATA_1          0x7FE

EVENT_LOCAL_INBOUND_DATA_2          0x45E DFC
UMASK_LOCAL_INBOUND_DATA_2          0x7FE

EVENT_LOCAL_INBOUND_DATA_3          0x45F DFC
UMASK_LOCAL_INBOUND_DATA_3          0x7FE

EVENT_LOCAL_INBOUND_DATA_4          0x49E DFC
UMASK_LOCAL_INBOUND_DATA_4          0x7FE

EVENT_LOCAL_INBOUND_DATA_5          0x49F DFC
UMASK_LOCAL_INBOUND_DATA_5          0x7FE

EVENT_LOCAL_INBOUND_DATA_6          0x4DE DFC
UMASK_LOCAL_INBOUND_DATA_6          0x7FE

EVENT_LOCAL_INBOUND_DATA_7          0x4DF DFC
UMASK_LOCAL_INBOUND_DATA_7          0x7FE

EVENT_LOCAL_INBOUND_DATA_8          0x51E DFC
UMASK_LOCAL_INBOUND_DATA_8          0x7FE

EVENT_LOCAL_INBOUND_DATA_9          0x51F DFC
UMASK_LOCAL_INBOUND_DATA_9          0x7FE

EVENT_LOCAL_INBOUND_DATA_10         0x55E DFC
UMASK_LOCAL_INBOUND_DATA_10         0x7FE

EVENT_LOCAL_INBOUND_DATA_11         0x55F DFC
UMASK_LOCAL_INBOUND_DATA_11         0x7FE

EVENT_LOCAL_INBOUND_DATA_12         0x59E DFC
UMASK_LOCAL_INBOUND_DATA_12         0x7FE

EVENT_LOCAL_INBOUND_DATA_13         0x59F DFC
UMASK_LOCAL_INBOUND_DATA_13         0x7FE

EVENT_LOCAL_INBOUND_DATA_14         0x5DE DFC
UMASK_LOCAL_INBOUND_DATA_14         0x7FE

EVENT_LOCAL_INBOUND_DATA_15         0x5DF DFC
UMASK_LOCAL_INBOUND_DATA_15         0x7FE

# Local outbound data bytes from the CPU (e.g. write data)
# (DfEvent[0x000000040740FF1E] +
# DfEvent[0x000000040740FF1F] +
# DfEvent[0x000000040740FF5E] +
# DfEvent[0x000000040740FF5F] +
# DfEvent[0x000000040740FF9E] +
# DfEvent[0x000000040740FF9F] +
# DfEvent[0x000000040740FFDE] +
# DfEvent[0x000000040740FFDF] +
# DfEvent[0x000000050740FF1E] +
# DfEvent[0x000000050740FF1F] +
# DfEvent[0x000000050740FF5E] +
# DfEvent[0x000000050740FF5F] +
# DfEvent[0x000000050740FF9E] +
# DfEvent[0x000000050740FF9F] +
# DfEvent[0x000000050740FFDE] +
# DfEvent[0x000000050740FFDF]) * 64

EVENT_LOCAL_OUTBOUND_DATA_0          0x41E DFC
UMASK_LOCAL_OUTBOUND_DATA_0          0x7FF

EVENT_LOCAL_OUTBOUND_DATA_1          0x41F DFC
UMASK_LOCAL_OUTBOUND_DATA_1          0x7FF

EVENT_LOCAL_OUTBOUND_DATA_2          0x45E DFC
UMASK_LOCAL_OUTBOUND_DATA_2          0x7FF

EVENT_LOCAL_OUTBOUND_DATA_3          0x45F DFC
UMASK_LOCAL_OUTBOUND_DATA_3          0x7FF

EVENT_LOCAL_OUTBOUND_DATA_4          0x49E DFC
UMASK_LOCAL_OUTBOUND_DATA_4          0x7FF

EVENT_LOCAL_OUTBOUND_DATA_5          0x49F DFC
UMASK_LOCAL_OUTBOUND_DATA_5          0x7FF

EVENT_LOCAL_OUTBOUND_DATA_6          0x4DE DFC
UMASK_LOCAL_OUTBOUND_DATA_6          0x7FF

EVENT_LOCAL_OUTBOUND_DATA_7          0x4DF DFC
UMASK_LOCAL_OUTBOUND_DATA_7          0x7FF

EVENT_LOCAL_OUTBOUND_DATA_8          0x51E DFC
UMASK_LOCAL_OUTBOUND_DATA_8          0x7FF

EVENT_LOCAL_OUTBOUND_DATA_9          0x51F DFC
UMASK_LOCAL_OUTBOUND_DATA_9          0x7FF

EVENT_LOCAL_OUTBOUND_DATA_10         0x55E DFC
UMASK_LOCAL_OUTBOUND_DATA_10         0x7FF

EVENT_LOCAL_OUTBOUND_DATA_11         0x55F DFC
UMASK_LOCAL_OUTBOUND_DATA_11         0x7FF

EVENT_LOCAL_OUTBOUND_DATA_12         0x59E DFC
UMASK_LOCAL_OUTBOUND_DATA_12         0x7FF

EVENT_LOCAL_OUTBOUND_DATA_13         0x59F DFC
UMASK_LOCAL_OUTBOUND_DATA_13         0x7FF

EVENT_LOCAL_OUTBOUND_DATA_14         0x5DE DFC
UMASK_LOCAL_OUTBOUND_DATA_14         0x7FF

EVENT_LOCAL_OUTBOUND_DATA_15         0x5DF DFC
UMASK_LOCAL_OUTBOUND_DATA_15         0x7FF


# Remote socket inbound data bytes to the CPU (e.g. read data)
# (DfEvent[0x000000040B40FE1E] +
# DfEvent[0x000000040B40FE1F] +
# DfEvent[0x000000040B40FE5E] +
# DfEvent[0x000000040B40FE5F] +
# DfEvent[0x000000040B40FE9E] +
# DfEvent[0x000000040B40FE9F] +
# DfEvent[0x000000040B40FEDE] +
# DfEvent[0x000000040B40FEDF] +
# DfEvent[0x000000050B40FE1E] +
# DfEvent[0x000000050B40FE1F] +
# DfEvent[0x000000050B40FE5E] +
# DfEvent[0x000000050B40FE5F] +
# DfEvent[0x000000050B40FE9E] +
# DfEvent[0x000000050B40FE9F] +
# DfEvent[0x000000050B40FEDE] +
# DfEvent[0x000000050B40FEDF]) * 32B


EVENT_REMOTE_INBOUND_DATA_0          0x41E DFC
UMASK_REMOTE_INBOUND_DATA_0          0xBFE

EVENT_REMOTE_INBOUND_DATA_1          0x41F DFC
UMASK_REMOTE_INBOUND_DATA_1          0xBFE

EVENT_REMOTE_INBOUND_DATA_2          0x45E DFC
UMASK_REMOTE_INBOUND_DATA_2          0xBFE

EVENT_REMOTE_INBOUND_DATA_3          0x45F DFC
UMASK_REMOTE_INBOUND_DATA_3          0xBFE

EVENT_REMOTE_INBOUND_DATA_4          0x49E DFC
UMASK_REMOTE_INBOUND_DATA_4          0xBFE

EVENT_REMOTE_INBOUND_DATA_5          0x49F DFC
UMASK_REMOTE_INBOUND_DATA_5          0xBFE

EVENT_REMOTE_INBOUND_DATA_6          0x4DE DFC
UMASK_REMOTE_INBOUND_DATA_6          0xBFE

EVENT_REMOTE_INBOUND_DATA_7          0x4DF DFC
UMASK_REMOTE_INBOUND_DATA_7          0xBFE

EVENT_REMOTE_INBOUND_DATA_8          0x51E DFC
UMASK_REMOTE_INBOUND_DATA_8          0xBFE

EVENT_REMOTE_INBOUND_DATA_9          0x51F DFC
UMASK_REMOTE_INBOUND_DATA_9          0xBFE

EVENT_REMOTE_INBOUND_DATA_10         0x55E DFC
UMASK_REMOTE_INBOUND_DATA_10         0xBFE

EVENT_REMOTE_INBOUND_DATA_11         0x55F DFC
UMASK_REMOTE_INBOUND_DATA_11         0xBFE

EVENT_REMOTE_INBOUND_DATA_12         0x59E DFC
UMASK_REMOTE_INBOUND_DATA_12         0xBFE

EVENT_REMOTE_INBOUND_DATA_13         0x59F DFC
UMASK_REMOTE_INBOUND_DATA_13         0xBFE

EVENT_REMOTE_INBOUND_DATA_14         0x5DE DFC
UMASK_REMOTE_INBOUND_DATA_14         0xBFE

EVENT_REMOTE_INBOUND_DATA_15         0x5DF DFC
UMASK_REMOTE_INBOUND_DATA_15         0xBFE

# Remote socket outbound data bytes from the CPU (e.g. write data)
# (DfEvent[0x000000040B40FF1E] +
# DfEvent[0x000000040B40FF1F] +
# DfEvent[0x000000040B40FF5E] +
# DfEvent[0x000000040B40FF5F] +
# DfEvent[0x000000040B40FF9E] +
# DfEvent[0x000000040B40FF9F] +
# DfEvent[0x000000040B40FFDE] +
# DfEvent[0x000000040B40FFDF] +
# DfEvent[0x000000050B40FF1E] +
# DfEvent[0x000000050B40FF1F] +
# DfEvent[0x000000050B40FF5E] +
# DfEvent[0x000000050B40FF5F] +
# DfEvent[0x000000050B40FF9E] +
# DfEvent[0x000000050B40FF9F] +
# DfEvent[0x000000050B40FFDE] +
# DfEvent[0x000000050B40FFDF]) * 64B

EVENT_REMOTE_OUTBOUND_DATA_0          0x41E DFC
UMASK_REMOTE_OUTBOUND_DATA_0          0xBFF

EVENT_REMOTE_OUTBOUND_DATA_1          0x41F DFC
UMASK_REMOTE_OUTBOUND_DATA_1          0xBFF

EVENT_REMOTE_OUTBOUND_DATA_2          0x45E DFC
UMASK_REMOTE_OUTBOUND_DATA_2          0xBFF

EVENT_REMOTE_OUTBOUND_DATA_3          0x45F DFC
UMASK_REMOTE_OUTBOUND_DATA_3          0xBFF

EVENT_REMOTE_OUTBOUND_DATA_4          0x49E DFC
UMASK_REMOTE_OUTBOUND_DATA_4          0xBFF

EVENT_REMOTE_OUTBOUND_DATA_5          0x49F DFC
UMASK_REMOTE_OUTBOUND_DATA_5          0xBFF

EVENT_REMOTE_OUTBOUND_DATA_6          0x4DE DFC
UMASK_REMOTE_OUTBOUND_DATA_6          0xBFF

EVENT_REMOTE_OUTBOUND_DATA_7          0x4DF DFC
UMASK_REMOTE_OUTBOUND_DATA_7          0xBFF

EVENT_REMOTE_OUTBOUND_DATA_8          0x51E DFC
UMASK_REMOTE_OUTBOUND_DATA_8          0xBFF

EVENT_REMOTE_OUTBOUND_DATA_9          0x51F DFC
UMASK_REMOTE_OUTBOUND_DATA_9          0xBFF

EVENT_REMOTE_OUTBOUND_DATA_10         0x55E DFC
UMASK_REMOTE_OUTBOUND_DATA_10         0xBFF

EVENT_REMOTE_OUTBOUND_DATA_11         0x55F DFC
UMASK_REMOTE_OUTBOUND_DATA_11         0xBFF

EVENT_REMOTE_OUTBOUND_DATA_12         0x59E DFC
UMASK_REMOTE_OUTBOUND_DATA_12         0xBFF

EVENT_REMOTE_OUTBOUND_DATA_13         0x59F DFC
UMASK_REMOTE_OUTBOUND_DATA_13         0xBFF

EVENT_REMOTE_OUTBOUND_DATA_14         0x5DE DFC
UMASK_REMOTE_OUTBOUND_DATA_14         0xBFF

EVENT_REMOTE_OUTBOUND_DATA_15         0x5DF DFC
UMASK_REMOTE_OUTBOUND_DATA_15         0xBFF


# Outbound data bytes from all links (local socket)
# (DfEvent[0x0000000B0F403E5F] +
# DfEvent[0x0000000B0F403E9F] +
# DfEvent[0x0000000B0F403EDF] +
# DfEvent[0x0000000C0F403E1F] +
# DfEvent[0x0000000C0F403E5F] +
# DfEvent[0x0000000C0F403E9F] +
# DfEvent[0x0000000C0F403EDF] +
# DfEvent[0x0000000D0F403E1F]) * 64B

EVENT_LOCAL_OUTBOUND_ALL_LINKS_0        0xB5F DFC
UMASK_LOCAL_OUTBOUND_ALL_LINKS_0        0xF3E

EVENT_LOCAL_OUTBOUND_ALL_LINKS_1        0xB9F DFC
UMASK_LOCAL_OUTBOUND_ALL_LINKS_1        0xF3E

EVENT_LOCAL_OUTBOUND_ALL_LINKS_2        0xBDF DFC
UMASK_LOCAL_OUTBOUND_ALL_LINKS_2        0xF3E

EVENT_LOCAL_OUTBOUND_ALL_LINKS_3        0xC1F DFC
UMASK_LOCAL_OUTBOUND_ALL_LINKS_3        0xF3E

EVENT_LOCAL_OUTBOUND_ALL_LINKS_4        0xC5F DFC
UMASK_LOCAL_OUTBOUND_ALL_LINKS_4        0xF3E

EVENT_LOCAL_OUTBOUND_ALL_LINKS_5        0xC9F DFC
UMASK_LOCAL_OUTBOUND_ALL_LINKS_5        0xF3E

EVENT_LOCAL_OUTBOUND_ALL_LINKS_6        0xCDF DFC
UMASK_LOCAL_OUTBOUND_ALL_LINKS_6        0xF3E

EVENT_LOCAL_OUTBOUND_ALL_LINKS_7        0xD5F DFC
UMASK_LOCAL_OUTBOUND_ALL_LINKS_7        0xF1F
