linux/arch/s390/kernel/perf_cpum_cf_events.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2/*
   3 * Perf PMU sysfs events attributes for available CPU-measurement counters
   4 *
   5 */
   6
   7#include <linux/slab.h>
   8#include <linux/perf_event.h>
   9#include <asm/cpu_mf.h>
  10
  11
  12/* BEGIN: CPUM_CF COUNTER DEFINITIONS =================================== */
  13
  14CPUMF_EVENT_ATTR(cf_fvn1, CPU_CYCLES, 0x0000);
  15CPUMF_EVENT_ATTR(cf_fvn1, INSTRUCTIONS, 0x0001);
  16CPUMF_EVENT_ATTR(cf_fvn1, L1I_DIR_WRITES, 0x0002);
  17CPUMF_EVENT_ATTR(cf_fvn1, L1I_PENALTY_CYCLES, 0x0003);
  18CPUMF_EVENT_ATTR(cf_fvn1, PROBLEM_STATE_CPU_CYCLES, 0x0020);
  19CPUMF_EVENT_ATTR(cf_fvn1, PROBLEM_STATE_INSTRUCTIONS, 0x0021);
  20CPUMF_EVENT_ATTR(cf_fvn1, PROBLEM_STATE_L1I_DIR_WRITES, 0x0022);
  21CPUMF_EVENT_ATTR(cf_fvn1, PROBLEM_STATE_L1I_PENALTY_CYCLES, 0x0023);
  22CPUMF_EVENT_ATTR(cf_fvn1, PROBLEM_STATE_L1D_DIR_WRITES, 0x0024);
  23CPUMF_EVENT_ATTR(cf_fvn1, PROBLEM_STATE_L1D_PENALTY_CYCLES, 0x0025);
  24CPUMF_EVENT_ATTR(cf_fvn1, L1D_DIR_WRITES, 0x0004);
  25CPUMF_EVENT_ATTR(cf_fvn1, L1D_PENALTY_CYCLES, 0x0005);
  26CPUMF_EVENT_ATTR(cf_fvn3, CPU_CYCLES, 0x0000);
  27CPUMF_EVENT_ATTR(cf_fvn3, INSTRUCTIONS, 0x0001);
  28CPUMF_EVENT_ATTR(cf_fvn3, L1I_DIR_WRITES, 0x0002);
  29CPUMF_EVENT_ATTR(cf_fvn3, L1I_PENALTY_CYCLES, 0x0003);
  30CPUMF_EVENT_ATTR(cf_fvn3, PROBLEM_STATE_CPU_CYCLES, 0x0020);
  31CPUMF_EVENT_ATTR(cf_fvn3, PROBLEM_STATE_INSTRUCTIONS, 0x0021);
  32CPUMF_EVENT_ATTR(cf_fvn3, L1D_DIR_WRITES, 0x0004);
  33CPUMF_EVENT_ATTR(cf_fvn3, L1D_PENALTY_CYCLES, 0x0005);
  34CPUMF_EVENT_ATTR(cf_svn_12345, PRNG_FUNCTIONS, 0x0040);
  35CPUMF_EVENT_ATTR(cf_svn_12345, PRNG_CYCLES, 0x0041);
  36CPUMF_EVENT_ATTR(cf_svn_12345, PRNG_BLOCKED_FUNCTIONS, 0x0042);
  37CPUMF_EVENT_ATTR(cf_svn_12345, PRNG_BLOCKED_CYCLES, 0x0043);
  38CPUMF_EVENT_ATTR(cf_svn_12345, SHA_FUNCTIONS, 0x0044);
  39CPUMF_EVENT_ATTR(cf_svn_12345, SHA_CYCLES, 0x0045);
  40CPUMF_EVENT_ATTR(cf_svn_12345, SHA_BLOCKED_FUNCTIONS, 0x0046);
  41CPUMF_EVENT_ATTR(cf_svn_12345, SHA_BLOCKED_CYCLES, 0x0047);
  42CPUMF_EVENT_ATTR(cf_svn_12345, DEA_FUNCTIONS, 0x0048);
  43CPUMF_EVENT_ATTR(cf_svn_12345, DEA_CYCLES, 0x0049);
  44CPUMF_EVENT_ATTR(cf_svn_12345, DEA_BLOCKED_FUNCTIONS, 0x004a);
  45CPUMF_EVENT_ATTR(cf_svn_12345, DEA_BLOCKED_CYCLES, 0x004b);
  46CPUMF_EVENT_ATTR(cf_svn_12345, AES_FUNCTIONS, 0x004c);
  47CPUMF_EVENT_ATTR(cf_svn_12345, AES_CYCLES, 0x004d);
  48CPUMF_EVENT_ATTR(cf_svn_12345, AES_BLOCKED_FUNCTIONS, 0x004e);
  49CPUMF_EVENT_ATTR(cf_svn_12345, AES_BLOCKED_CYCLES, 0x004f);
  50CPUMF_EVENT_ATTR(cf_svn_6, ECC_FUNCTION_COUNT, 0x0050);
  51CPUMF_EVENT_ATTR(cf_svn_6, ECC_CYCLES_COUNT, 0x0051);
  52CPUMF_EVENT_ATTR(cf_svn_6, ECC_BLOCKED_FUNCTION_COUNT, 0x0052);
  53CPUMF_EVENT_ATTR(cf_svn_6, ECC_BLOCKED_CYCLES_COUNT, 0x0053);
  54CPUMF_EVENT_ATTR(cf_z10, L1I_L2_SOURCED_WRITES, 0x0080);
  55CPUMF_EVENT_ATTR(cf_z10, L1D_L2_SOURCED_WRITES, 0x0081);
  56CPUMF_EVENT_ATTR(cf_z10, L1I_L3_LOCAL_WRITES, 0x0082);
  57CPUMF_EVENT_ATTR(cf_z10, L1D_L3_LOCAL_WRITES, 0x0083);
  58CPUMF_EVENT_ATTR(cf_z10, L1I_L3_REMOTE_WRITES, 0x0084);
  59CPUMF_EVENT_ATTR(cf_z10, L1D_L3_REMOTE_WRITES, 0x0085);
  60CPUMF_EVENT_ATTR(cf_z10, L1D_LMEM_SOURCED_WRITES, 0x0086);
  61CPUMF_EVENT_ATTR(cf_z10, L1I_LMEM_SOURCED_WRITES, 0x0087);
  62CPUMF_EVENT_ATTR(cf_z10, L1D_RO_EXCL_WRITES, 0x0088);
  63CPUMF_EVENT_ATTR(cf_z10, L1I_CACHELINE_INVALIDATES, 0x0089);
  64CPUMF_EVENT_ATTR(cf_z10, ITLB1_WRITES, 0x008a);
  65CPUMF_EVENT_ATTR(cf_z10, DTLB1_WRITES, 0x008b);
  66CPUMF_EVENT_ATTR(cf_z10, TLB2_PTE_WRITES, 0x008c);
  67CPUMF_EVENT_ATTR(cf_z10, TLB2_CRSTE_WRITES, 0x008d);
  68CPUMF_EVENT_ATTR(cf_z10, TLB2_CRSTE_HPAGE_WRITES, 0x008e);
  69CPUMF_EVENT_ATTR(cf_z10, ITLB1_MISSES, 0x0091);
  70CPUMF_EVENT_ATTR(cf_z10, DTLB1_MISSES, 0x0092);
  71CPUMF_EVENT_ATTR(cf_z10, L2C_STORES_SENT, 0x0093);
  72CPUMF_EVENT_ATTR(cf_z196, L1D_L2_SOURCED_WRITES, 0x0080);
  73CPUMF_EVENT_ATTR(cf_z196, L1I_L2_SOURCED_WRITES, 0x0081);
  74CPUMF_EVENT_ATTR(cf_z196, DTLB1_MISSES, 0x0082);
  75CPUMF_EVENT_ATTR(cf_z196, ITLB1_MISSES, 0x0083);
  76CPUMF_EVENT_ATTR(cf_z196, L2C_STORES_SENT, 0x0085);
  77CPUMF_EVENT_ATTR(cf_z196, L1D_OFFBOOK_L3_SOURCED_WRITES, 0x0086);
  78CPUMF_EVENT_ATTR(cf_z196, L1D_ONBOOK_L4_SOURCED_WRITES, 0x0087);
  79CPUMF_EVENT_ATTR(cf_z196, L1I_ONBOOK_L4_SOURCED_WRITES, 0x0088);
  80CPUMF_EVENT_ATTR(cf_z196, L1D_RO_EXCL_WRITES, 0x0089);
  81CPUMF_EVENT_ATTR(cf_z196, L1D_OFFBOOK_L4_SOURCED_WRITES, 0x008a);
  82CPUMF_EVENT_ATTR(cf_z196, L1I_OFFBOOK_L4_SOURCED_WRITES, 0x008b);
  83CPUMF_EVENT_ATTR(cf_z196, DTLB1_HPAGE_WRITES, 0x008c);
  84CPUMF_EVENT_ATTR(cf_z196, L1D_LMEM_SOURCED_WRITES, 0x008d);
  85CPUMF_EVENT_ATTR(cf_z196, L1I_LMEM_SOURCED_WRITES, 0x008e);
  86CPUMF_EVENT_ATTR(cf_z196, L1I_OFFBOOK_L3_SOURCED_WRITES, 0x008f);
  87CPUMF_EVENT_ATTR(cf_z196, DTLB1_WRITES, 0x0090);
  88CPUMF_EVENT_ATTR(cf_z196, ITLB1_WRITES, 0x0091);
  89CPUMF_EVENT_ATTR(cf_z196, TLB2_PTE_WRITES, 0x0092);
  90CPUMF_EVENT_ATTR(cf_z196, TLB2_CRSTE_HPAGE_WRITES, 0x0093);
  91CPUMF_EVENT_ATTR(cf_z196, TLB2_CRSTE_WRITES, 0x0094);
  92CPUMF_EVENT_ATTR(cf_z196, L1D_ONCHIP_L3_SOURCED_WRITES, 0x0096);
  93CPUMF_EVENT_ATTR(cf_z196, L1D_OFFCHIP_L3_SOURCED_WRITES, 0x0098);
  94CPUMF_EVENT_ATTR(cf_z196, L1I_ONCHIP_L3_SOURCED_WRITES, 0x0099);
  95CPUMF_EVENT_ATTR(cf_z196, L1I_OFFCHIP_L3_SOURCED_WRITES, 0x009b);
  96CPUMF_EVENT_ATTR(cf_zec12, DTLB1_MISSES, 0x0080);
  97CPUMF_EVENT_ATTR(cf_zec12, ITLB1_MISSES, 0x0081);
  98CPUMF_EVENT_ATTR(cf_zec12, L1D_L2I_SOURCED_WRITES, 0x0082);
  99CPUMF_EVENT_ATTR(cf_zec12, L1I_L2I_SOURCED_WRITES, 0x0083);
 100CPUMF_EVENT_ATTR(cf_zec12, L1D_L2D_SOURCED_WRITES, 0x0084);
 101CPUMF_EVENT_ATTR(cf_zec12, DTLB1_WRITES, 0x0085);
 102CPUMF_EVENT_ATTR(cf_zec12, L1D_LMEM_SOURCED_WRITES, 0x0087);
 103CPUMF_EVENT_ATTR(cf_zec12, L1I_LMEM_SOURCED_WRITES, 0x0089);
 104CPUMF_EVENT_ATTR(cf_zec12, L1D_RO_EXCL_WRITES, 0x008a);
 105CPUMF_EVENT_ATTR(cf_zec12, DTLB1_HPAGE_WRITES, 0x008b);
 106CPUMF_EVENT_ATTR(cf_zec12, ITLB1_WRITES, 0x008c);
 107CPUMF_EVENT_ATTR(cf_zec12, TLB2_PTE_WRITES, 0x008d);
 108CPUMF_EVENT_ATTR(cf_zec12, TLB2_CRSTE_HPAGE_WRITES, 0x008e);
 109CPUMF_EVENT_ATTR(cf_zec12, TLB2_CRSTE_WRITES, 0x008f);
 110CPUMF_EVENT_ATTR(cf_zec12, L1D_ONCHIP_L3_SOURCED_WRITES, 0x0090);
 111CPUMF_EVENT_ATTR(cf_zec12, L1D_OFFCHIP_L3_SOURCED_WRITES, 0x0091);
 112CPUMF_EVENT_ATTR(cf_zec12, L1D_OFFBOOK_L3_SOURCED_WRITES, 0x0092);
 113CPUMF_EVENT_ATTR(cf_zec12, L1D_ONBOOK_L4_SOURCED_WRITES, 0x0093);
 114CPUMF_EVENT_ATTR(cf_zec12, L1D_OFFBOOK_L4_SOURCED_WRITES, 0x0094);
 115CPUMF_EVENT_ATTR(cf_zec12, TX_NC_TEND, 0x0095);
 116CPUMF_EVENT_ATTR(cf_zec12, L1D_ONCHIP_L3_SOURCED_WRITES_IV, 0x0096);
 117CPUMF_EVENT_ATTR(cf_zec12, L1D_OFFCHIP_L3_SOURCED_WRITES_IV, 0x0097);
 118CPUMF_EVENT_ATTR(cf_zec12, L1D_OFFBOOK_L3_SOURCED_WRITES_IV, 0x0098);
 119CPUMF_EVENT_ATTR(cf_zec12, L1I_ONCHIP_L3_SOURCED_WRITES, 0x0099);
 120CPUMF_EVENT_ATTR(cf_zec12, L1I_OFFCHIP_L3_SOURCED_WRITES, 0x009a);
 121CPUMF_EVENT_ATTR(cf_zec12, L1I_OFFBOOK_L3_SOURCED_WRITES, 0x009b);
 122CPUMF_EVENT_ATTR(cf_zec12, L1I_ONBOOK_L4_SOURCED_WRITES, 0x009c);
 123CPUMF_EVENT_ATTR(cf_zec12, L1I_OFFBOOK_L4_SOURCED_WRITES, 0x009d);
 124CPUMF_EVENT_ATTR(cf_zec12, TX_C_TEND, 0x009e);
 125CPUMF_EVENT_ATTR(cf_zec12, L1I_ONCHIP_L3_SOURCED_WRITES_IV, 0x009f);
 126CPUMF_EVENT_ATTR(cf_zec12, L1I_OFFCHIP_L3_SOURCED_WRITES_IV, 0x00a0);
 127CPUMF_EVENT_ATTR(cf_zec12, L1I_OFFBOOK_L3_SOURCED_WRITES_IV, 0x00a1);
 128CPUMF_EVENT_ATTR(cf_zec12, TX_NC_TABORT, 0x00b1);
 129CPUMF_EVENT_ATTR(cf_zec12, TX_C_TABORT_NO_SPECIAL, 0x00b2);
 130CPUMF_EVENT_ATTR(cf_zec12, TX_C_TABORT_SPECIAL, 0x00b3);
 131CPUMF_EVENT_ATTR(cf_z13, L1D_RO_EXCL_WRITES, 0x0080);
 132CPUMF_EVENT_ATTR(cf_z13, DTLB1_WRITES, 0x0081);
 133CPUMF_EVENT_ATTR(cf_z13, DTLB1_MISSES, 0x0082);
 134CPUMF_EVENT_ATTR(cf_z13, DTLB1_HPAGE_WRITES, 0x0083);
 135CPUMF_EVENT_ATTR(cf_z13, DTLB1_GPAGE_WRITES, 0x0084);
 136CPUMF_EVENT_ATTR(cf_z13, L1D_L2D_SOURCED_WRITES, 0x0085);
 137CPUMF_EVENT_ATTR(cf_z13, ITLB1_WRITES, 0x0086);
 138CPUMF_EVENT_ATTR(cf_z13, ITLB1_MISSES, 0x0087);
 139CPUMF_EVENT_ATTR(cf_z13, L1I_L2I_SOURCED_WRITES, 0x0088);
 140CPUMF_EVENT_ATTR(cf_z13, TLB2_PTE_WRITES, 0x0089);
 141CPUMF_EVENT_ATTR(cf_z13, TLB2_CRSTE_HPAGE_WRITES, 0x008a);
 142CPUMF_EVENT_ATTR(cf_z13, TLB2_CRSTE_WRITES, 0x008b);
 143CPUMF_EVENT_ATTR(cf_z13, TX_C_TEND, 0x008c);
 144CPUMF_EVENT_ATTR(cf_z13, TX_NC_TEND, 0x008d);
 145CPUMF_EVENT_ATTR(cf_z13, L1C_TLB1_MISSES, 0x008f);
 146CPUMF_EVENT_ATTR(cf_z13, L1D_ONCHIP_L3_SOURCED_WRITES, 0x0090);
 147CPUMF_EVENT_ATTR(cf_z13, L1D_ONCHIP_L3_SOURCED_WRITES_IV, 0x0091);
 148CPUMF_EVENT_ATTR(cf_z13, L1D_ONNODE_L4_SOURCED_WRITES, 0x0092);
 149CPUMF_EVENT_ATTR(cf_z13, L1D_ONNODE_L3_SOURCED_WRITES_IV, 0x0093);
 150CPUMF_EVENT_ATTR(cf_z13, L1D_ONNODE_L3_SOURCED_WRITES, 0x0094);
 151CPUMF_EVENT_ATTR(cf_z13, L1D_ONDRAWER_L4_SOURCED_WRITES, 0x0095);
 152CPUMF_EVENT_ATTR(cf_z13, L1D_ONDRAWER_L3_SOURCED_WRITES_IV, 0x0096);
 153CPUMF_EVENT_ATTR(cf_z13, L1D_ONDRAWER_L3_SOURCED_WRITES, 0x0097);
 154CPUMF_EVENT_ATTR(cf_z13, L1D_OFFDRAWER_SCOL_L4_SOURCED_WRITES, 0x0098);
 155CPUMF_EVENT_ATTR(cf_z13, L1D_OFFDRAWER_SCOL_L3_SOURCED_WRITES_IV, 0x0099);
 156CPUMF_EVENT_ATTR(cf_z13, L1D_OFFDRAWER_SCOL_L3_SOURCED_WRITES, 0x009a);
 157CPUMF_EVENT_ATTR(cf_z13, L1D_OFFDRAWER_FCOL_L4_SOURCED_WRITES, 0x009b);
 158CPUMF_EVENT_ATTR(cf_z13, L1D_OFFDRAWER_FCOL_L3_SOURCED_WRITES_IV, 0x009c);
 159CPUMF_EVENT_ATTR(cf_z13, L1D_OFFDRAWER_FCOL_L3_SOURCED_WRITES, 0x009d);
 160CPUMF_EVENT_ATTR(cf_z13, L1D_ONNODE_MEM_SOURCED_WRITES, 0x009e);
 161CPUMF_EVENT_ATTR(cf_z13, L1D_ONDRAWER_MEM_SOURCED_WRITES, 0x009f);
 162CPUMF_EVENT_ATTR(cf_z13, L1D_OFFDRAWER_MEM_SOURCED_WRITES, 0x00a0);
 163CPUMF_EVENT_ATTR(cf_z13, L1D_ONCHIP_MEM_SOURCED_WRITES, 0x00a1);
 164CPUMF_EVENT_ATTR(cf_z13, L1I_ONCHIP_L3_SOURCED_WRITES, 0x00a2);
 165CPUMF_EVENT_ATTR(cf_z13, L1I_ONCHIP_L3_SOURCED_WRITES_IV, 0x00a3);
 166CPUMF_EVENT_ATTR(cf_z13, L1I_ONNODE_L4_SOURCED_WRITES, 0x00a4);
 167CPUMF_EVENT_ATTR(cf_z13, L1I_ONNODE_L3_SOURCED_WRITES_IV, 0x00a5);
 168CPUMF_EVENT_ATTR(cf_z13, L1I_ONNODE_L3_SOURCED_WRITES, 0x00a6);
 169CPUMF_EVENT_ATTR(cf_z13, L1I_ONDRAWER_L4_SOURCED_WRITES, 0x00a7);
 170CPUMF_EVENT_ATTR(cf_z13, L1I_ONDRAWER_L3_SOURCED_WRITES_IV, 0x00a8);
 171CPUMF_EVENT_ATTR(cf_z13, L1I_ONDRAWER_L3_SOURCED_WRITES, 0x00a9);
 172CPUMF_EVENT_ATTR(cf_z13, L1I_OFFDRAWER_SCOL_L4_SOURCED_WRITES, 0x00aa);
 173CPUMF_EVENT_ATTR(cf_z13, L1I_OFFDRAWER_SCOL_L3_SOURCED_WRITES_IV, 0x00ab);
 174CPUMF_EVENT_ATTR(cf_z13, L1I_OFFDRAWER_SCOL_L3_SOURCED_WRITES, 0x00ac);
 175CPUMF_EVENT_ATTR(cf_z13, L1I_OFFDRAWER_FCOL_L4_SOURCED_WRITES, 0x00ad);
 176CPUMF_EVENT_ATTR(cf_z13, L1I_OFFDRAWER_FCOL_L3_SOURCED_WRITES_IV, 0x00ae);
 177CPUMF_EVENT_ATTR(cf_z13, L1I_OFFDRAWER_FCOL_L3_SOURCED_WRITES, 0x00af);
 178CPUMF_EVENT_ATTR(cf_z13, L1I_ONNODE_MEM_SOURCED_WRITES, 0x00b0);
 179CPUMF_EVENT_ATTR(cf_z13, L1I_ONDRAWER_MEM_SOURCED_WRITES, 0x00b1);
 180CPUMF_EVENT_ATTR(cf_z13, L1I_OFFDRAWER_MEM_SOURCED_WRITES, 0x00b2);
 181CPUMF_EVENT_ATTR(cf_z13, L1I_ONCHIP_MEM_SOURCED_WRITES, 0x00b3);
 182CPUMF_EVENT_ATTR(cf_z13, TX_NC_TABORT, 0x00da);
 183CPUMF_EVENT_ATTR(cf_z13, TX_C_TABORT_NO_SPECIAL, 0x00db);
 184CPUMF_EVENT_ATTR(cf_z13, TX_C_TABORT_SPECIAL, 0x00dc);
 185CPUMF_EVENT_ATTR(cf_z13, MT_DIAG_CYCLES_ONE_THR_ACTIVE, 0x01c0);
 186CPUMF_EVENT_ATTR(cf_z13, MT_DIAG_CYCLES_TWO_THR_ACTIVE, 0x01c1);
 187CPUMF_EVENT_ATTR(cf_z14, L1D_RO_EXCL_WRITES, 0x0080);
 188CPUMF_EVENT_ATTR(cf_z14, DTLB2_WRITES, 0x0081);
 189CPUMF_EVENT_ATTR(cf_z14, DTLB2_MISSES, 0x0082);
 190CPUMF_EVENT_ATTR(cf_z14, DTLB2_HPAGE_WRITES, 0x0083);
 191CPUMF_EVENT_ATTR(cf_z14, DTLB2_GPAGE_WRITES, 0x0084);
 192CPUMF_EVENT_ATTR(cf_z14, L1D_L2D_SOURCED_WRITES, 0x0085);
 193CPUMF_EVENT_ATTR(cf_z14, ITLB2_WRITES, 0x0086);
 194CPUMF_EVENT_ATTR(cf_z14, ITLB2_MISSES, 0x0087);
 195CPUMF_EVENT_ATTR(cf_z14, L1I_L2I_SOURCED_WRITES, 0x0088);
 196CPUMF_EVENT_ATTR(cf_z14, TLB2_PTE_WRITES, 0x0089);
 197CPUMF_EVENT_ATTR(cf_z14, TLB2_CRSTE_WRITES, 0x008a);
 198CPUMF_EVENT_ATTR(cf_z14, TLB2_ENGINES_BUSY, 0x008b);
 199CPUMF_EVENT_ATTR(cf_z14, TX_C_TEND, 0x008c);
 200CPUMF_EVENT_ATTR(cf_z14, TX_NC_TEND, 0x008d);
 201CPUMF_EVENT_ATTR(cf_z14, L1C_TLB2_MISSES, 0x008f);
 202CPUMF_EVENT_ATTR(cf_z14, L1D_ONCHIP_L3_SOURCED_WRITES, 0x0090);
 203CPUMF_EVENT_ATTR(cf_z14, L1D_ONCHIP_MEMORY_SOURCED_WRITES, 0x0091);
 204CPUMF_EVENT_ATTR(cf_z14, L1D_ONCHIP_L3_SOURCED_WRITES_IV, 0x0092);
 205CPUMF_EVENT_ATTR(cf_z14, L1D_ONCLUSTER_L3_SOURCED_WRITES, 0x0093);
 206CPUMF_EVENT_ATTR(cf_z14, L1D_ONCLUSTER_MEMORY_SOURCED_WRITES, 0x0094);
 207CPUMF_EVENT_ATTR(cf_z14, L1D_ONCLUSTER_L3_SOURCED_WRITES_IV, 0x0095);
 208CPUMF_EVENT_ATTR(cf_z14, L1D_OFFCLUSTER_L3_SOURCED_WRITES, 0x0096);
 209CPUMF_EVENT_ATTR(cf_z14, L1D_OFFCLUSTER_MEMORY_SOURCED_WRITES, 0x0097);
 210CPUMF_EVENT_ATTR(cf_z14, L1D_OFFCLUSTER_L3_SOURCED_WRITES_IV, 0x0098);
 211CPUMF_EVENT_ATTR(cf_z14, L1D_OFFDRAWER_L3_SOURCED_WRITES, 0x0099);
 212CPUMF_EVENT_ATTR(cf_z14, L1D_OFFDRAWER_MEMORY_SOURCED_WRITES, 0x009a);
 213CPUMF_EVENT_ATTR(cf_z14, L1D_OFFDRAWER_L3_SOURCED_WRITES_IV, 0x009b);
 214CPUMF_EVENT_ATTR(cf_z14, L1D_ONDRAWER_L4_SOURCED_WRITES, 0x009c);
 215CPUMF_EVENT_ATTR(cf_z14, L1D_OFFDRAWER_L4_SOURCED_WRITES, 0x009d);
 216CPUMF_EVENT_ATTR(cf_z14, L1D_ONCHIP_L3_SOURCED_WRITES_RO, 0x009e);
 217CPUMF_EVENT_ATTR(cf_z14, L1I_ONCHIP_L3_SOURCED_WRITES, 0x00a2);
 218CPUMF_EVENT_ATTR(cf_z14, L1I_ONCHIP_MEMORY_SOURCED_WRITES, 0x00a3);
 219CPUMF_EVENT_ATTR(cf_z14, L1I_ONCHIP_L3_SOURCED_WRITES_IV, 0x00a4);
 220CPUMF_EVENT_ATTR(cf_z14, L1I_ONCLUSTER_L3_SOURCED_WRITES, 0x00a5);
 221CPUMF_EVENT_ATTR(cf_z14, L1I_ONCLUSTER_MEMORY_SOURCED_WRITES, 0x00a6);
 222CPUMF_EVENT_ATTR(cf_z14, L1I_ONCLUSTER_L3_SOURCED_WRITES_IV, 0x00a7);
 223CPUMF_EVENT_ATTR(cf_z14, L1I_OFFCLUSTER_L3_SOURCED_WRITES, 0x00a8);
 224CPUMF_EVENT_ATTR(cf_z14, L1I_OFFCLUSTER_MEMORY_SOURCED_WRITES, 0x00a9);
 225CPUMF_EVENT_ATTR(cf_z14, L1I_OFFCLUSTER_L3_SOURCED_WRITES_IV, 0x00aa);
 226CPUMF_EVENT_ATTR(cf_z14, L1I_OFFDRAWER_L3_SOURCED_WRITES, 0x00ab);
 227CPUMF_EVENT_ATTR(cf_z14, L1I_OFFDRAWER_MEMORY_SOURCED_WRITES, 0x00ac);
 228CPUMF_EVENT_ATTR(cf_z14, L1I_OFFDRAWER_L3_SOURCED_WRITES_IV, 0x00ad);
 229CPUMF_EVENT_ATTR(cf_z14, L1I_ONDRAWER_L4_SOURCED_WRITES, 0x00ae);
 230CPUMF_EVENT_ATTR(cf_z14, L1I_OFFDRAWER_L4_SOURCED_WRITES, 0x00af);
 231CPUMF_EVENT_ATTR(cf_z14, BCD_DFP_EXECUTION_SLOTS, 0x00e0);
 232CPUMF_EVENT_ATTR(cf_z14, VX_BCD_EXECUTION_SLOTS, 0x00e1);
 233CPUMF_EVENT_ATTR(cf_z14, DECIMAL_INSTRUCTIONS, 0x00e2);
 234CPUMF_EVENT_ATTR(cf_z14, LAST_HOST_TRANSLATIONS, 0x00e8);
 235CPUMF_EVENT_ATTR(cf_z14, TX_NC_TABORT, 0x00f3);
 236CPUMF_EVENT_ATTR(cf_z14, TX_C_TABORT_NO_SPECIAL, 0x00f4);
 237CPUMF_EVENT_ATTR(cf_z14, TX_C_TABORT_SPECIAL, 0x00f5);
 238CPUMF_EVENT_ATTR(cf_z14, MT_DIAG_CYCLES_ONE_THR_ACTIVE, 0x01c0);
 239CPUMF_EVENT_ATTR(cf_z14, MT_DIAG_CYCLES_TWO_THR_ACTIVE, 0x01c1);
 240
 241CPUMF_EVENT_ATTR(cf_z15, L1D_RO_EXCL_WRITES, 0x0080);
 242CPUMF_EVENT_ATTR(cf_z15, DTLB2_WRITES, 0x0081);
 243CPUMF_EVENT_ATTR(cf_z15, DTLB2_MISSES, 0x0082);
 244CPUMF_EVENT_ATTR(cf_z15, DTLB2_HPAGE_WRITES, 0x0083);
 245CPUMF_EVENT_ATTR(cf_z15, DTLB2_GPAGE_WRITES, 0x0084);
 246CPUMF_EVENT_ATTR(cf_z15, L1D_L2D_SOURCED_WRITES, 0x0085);
 247CPUMF_EVENT_ATTR(cf_z15, ITLB2_WRITES, 0x0086);
 248CPUMF_EVENT_ATTR(cf_z15, ITLB2_MISSES, 0x0087);
 249CPUMF_EVENT_ATTR(cf_z15, L1I_L2I_SOURCED_WRITES, 0x0088);
 250CPUMF_EVENT_ATTR(cf_z15, TLB2_PTE_WRITES, 0x0089);
 251CPUMF_EVENT_ATTR(cf_z15, TLB2_CRSTE_WRITES, 0x008a);
 252CPUMF_EVENT_ATTR(cf_z15, TLB2_ENGINES_BUSY, 0x008b);
 253CPUMF_EVENT_ATTR(cf_z15, TX_C_TEND, 0x008c);
 254CPUMF_EVENT_ATTR(cf_z15, TX_NC_TEND, 0x008d);
 255CPUMF_EVENT_ATTR(cf_z15, L1C_TLB2_MISSES, 0x008f);
 256CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES, 0x0090);
 257CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_MEMORY_SOURCED_WRITES, 0x0091);
 258CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_IV, 0x0092);
 259CPUMF_EVENT_ATTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES, 0x0093);
 260CPUMF_EVENT_ATTR(cf_z15, L1D_ONCLUSTER_MEMORY_SOURCED_WRITES, 0x0094);
 261CPUMF_EVENT_ATTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES_IV, 0x0095);
 262CPUMF_EVENT_ATTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES, 0x0096);
 263CPUMF_EVENT_ATTR(cf_z15, L1D_OFFCLUSTER_MEMORY_SOURCED_WRITES, 0x0097);
 264CPUMF_EVENT_ATTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES_IV, 0x0098);
 265CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES, 0x0099);
 266CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_MEMORY_SOURCED_WRITES, 0x009a);
 267CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES_IV, 0x009b);
 268CPUMF_EVENT_ATTR(cf_z15, L1D_ONDRAWER_L4_SOURCED_WRITES, 0x009c);
 269CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_L4_SOURCED_WRITES, 0x009d);
 270CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_RO, 0x009e);
 271CPUMF_EVENT_ATTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES, 0x00a2);
 272CPUMF_EVENT_ATTR(cf_z15, L1I_ONCHIP_MEMORY_SOURCED_WRITES, 0x00a3);
 273CPUMF_EVENT_ATTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES_IV, 0x00a4);
 274CPUMF_EVENT_ATTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES, 0x00a5);
 275CPUMF_EVENT_ATTR(cf_z15, L1I_ONCLUSTER_MEMORY_SOURCED_WRITES, 0x00a6);
 276CPUMF_EVENT_ATTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES_IV, 0x00a7);
 277CPUMF_EVENT_ATTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES, 0x00a8);
 278CPUMF_EVENT_ATTR(cf_z15, L1I_OFFCLUSTER_MEMORY_SOURCED_WRITES, 0x00a9);
 279CPUMF_EVENT_ATTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES_IV, 0x00aa);
 280CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES, 0x00ab);
 281CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_MEMORY_SOURCED_WRITES, 0x00ac);
 282CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES_IV, 0x00ad);
 283CPUMF_EVENT_ATTR(cf_z15, L1I_ONDRAWER_L4_SOURCED_WRITES, 0x00ae);
 284CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_L4_SOURCED_WRITES, 0x00af);
 285CPUMF_EVENT_ATTR(cf_z15, BCD_DFP_EXECUTION_SLOTS, 0x00e0);
 286CPUMF_EVENT_ATTR(cf_z15, VX_BCD_EXECUTION_SLOTS, 0x00e1);
 287CPUMF_EVENT_ATTR(cf_z15, DECIMAL_INSTRUCTIONS, 0x00e2);
 288CPUMF_EVENT_ATTR(cf_z15, LAST_HOST_TRANSLATIONS, 0x00e8);
 289CPUMF_EVENT_ATTR(cf_z15, TX_NC_TABORT, 0x00f3);
 290CPUMF_EVENT_ATTR(cf_z15, TX_C_TABORT_NO_SPECIAL, 0x00f4);
 291CPUMF_EVENT_ATTR(cf_z15, TX_C_TABORT_SPECIAL, 0x00f5);
 292CPUMF_EVENT_ATTR(cf_z15, DFLT_ACCESS, 0x00f7);
 293CPUMF_EVENT_ATTR(cf_z15, DFLT_CYCLES, 0x00fc);
 294CPUMF_EVENT_ATTR(cf_z15, DFLT_CC, 0x00108);
 295CPUMF_EVENT_ATTR(cf_z15, DFLT_CCFINISH, 0x00109);
 296CPUMF_EVENT_ATTR(cf_z15, MT_DIAG_CYCLES_ONE_THR_ACTIVE, 0x01c0);
 297CPUMF_EVENT_ATTR(cf_z15, MT_DIAG_CYCLES_TWO_THR_ACTIVE, 0x01c1);
 298CPUMF_EVENT_ATTR(cf_z16, L1D_RO_EXCL_WRITES, 0x0080);
 299CPUMF_EVENT_ATTR(cf_z16, DTLB2_WRITES, 0x0081);
 300CPUMF_EVENT_ATTR(cf_z16, DTLB2_MISSES, 0x0082);
 301CPUMF_EVENT_ATTR(cf_z16, CRSTE_1MB_WRITES, 0x0083);
 302CPUMF_EVENT_ATTR(cf_z16, DTLB2_GPAGE_WRITES, 0x0084);
 303CPUMF_EVENT_ATTR(cf_z16, ITLB2_WRITES, 0x0086);
 304CPUMF_EVENT_ATTR(cf_z16, ITLB2_MISSES, 0x0087);
 305CPUMF_EVENT_ATTR(cf_z16, TLB2_PTE_WRITES, 0x0089);
 306CPUMF_EVENT_ATTR(cf_z16, TLB2_CRSTE_WRITES, 0x008a);
 307CPUMF_EVENT_ATTR(cf_z16, TLB2_ENGINES_BUSY, 0x008b);
 308CPUMF_EVENT_ATTR(cf_z16, TX_C_TEND, 0x008c);
 309CPUMF_EVENT_ATTR(cf_z16, TX_NC_TEND, 0x008d);
 310CPUMF_EVENT_ATTR(cf_z16, L1C_TLB2_MISSES, 0x008f);
 311CPUMF_EVENT_ATTR(cf_z16, DCW_REQ, 0x0091);
 312CPUMF_EVENT_ATTR(cf_z16, DCW_REQ_IV, 0x0092);
 313CPUMF_EVENT_ATTR(cf_z16, DCW_REQ_CHIP_HIT, 0x0093);
 314CPUMF_EVENT_ATTR(cf_z16, DCW_REQ_DRAWER_HIT, 0x0094);
 315CPUMF_EVENT_ATTR(cf_z16, DCW_ON_CHIP, 0x0095);
 316CPUMF_EVENT_ATTR(cf_z16, DCW_ON_CHIP_IV, 0x0096);
 317CPUMF_EVENT_ATTR(cf_z16, DCW_ON_CHIP_CHIP_HIT, 0x0097);
 318CPUMF_EVENT_ATTR(cf_z16, DCW_ON_CHIP_DRAWER_HIT, 0x0098);
 319CPUMF_EVENT_ATTR(cf_z16, DCW_ON_MODULE, 0x0099);
 320CPUMF_EVENT_ATTR(cf_z16, DCW_ON_DRAWER, 0x009a);
 321CPUMF_EVENT_ATTR(cf_z16, DCW_OFF_DRAWER, 0x009b);
 322CPUMF_EVENT_ATTR(cf_z16, DCW_ON_CHIP_MEMORY, 0x009c);
 323CPUMF_EVENT_ATTR(cf_z16, DCW_ON_MODULE_MEMORY, 0x009d);
 324CPUMF_EVENT_ATTR(cf_z16, DCW_ON_DRAWER_MEMORY, 0x009e);
 325CPUMF_EVENT_ATTR(cf_z16, DCW_OFF_DRAWER_MEMORY, 0x009f);
 326CPUMF_EVENT_ATTR(cf_z16, IDCW_ON_MODULE_IV, 0x00a0);
 327CPUMF_EVENT_ATTR(cf_z16, IDCW_ON_MODULE_CHIP_HIT, 0x00a1);
 328CPUMF_EVENT_ATTR(cf_z16, IDCW_ON_MODULE_DRAWER_HIT, 0x00a2);
 329CPUMF_EVENT_ATTR(cf_z16, IDCW_ON_DRAWER_IV, 0x00a3);
 330CPUMF_EVENT_ATTR(cf_z16, IDCW_ON_DRAWER_CHIP_HIT, 0x00a4);
 331CPUMF_EVENT_ATTR(cf_z16, IDCW_ON_DRAWER_DRAWER_HIT, 0x00a5);
 332CPUMF_EVENT_ATTR(cf_z16, IDCW_OFF_DRAWER_IV, 0x00a6);
 333CPUMF_EVENT_ATTR(cf_z16, IDCW_OFF_DRAWER_CHIP_HIT, 0x00a7);
 334CPUMF_EVENT_ATTR(cf_z16, IDCW_OFF_DRAWER_DRAWER_HIT, 0x00a8);
 335CPUMF_EVENT_ATTR(cf_z16, ICW_REQ, 0x00a9);
 336CPUMF_EVENT_ATTR(cf_z16, ICW_REQ_IV, 0x00aa);
 337CPUMF_EVENT_ATTR(cf_z16, ICW_REQ_CHIP_HIT, 0x00ab);
 338CPUMF_EVENT_ATTR(cf_z16, ICW_REQ_DRAWER_HIT, 0x00ac);
 339CPUMF_EVENT_ATTR(cf_z16, ICW_ON_CHIP, 0x00ad);
 340CPUMF_EVENT_ATTR(cf_z16, ICW_ON_CHIP_IV, 0x00ae);
 341CPUMF_EVENT_ATTR(cf_z16, ICW_ON_CHIP_CHIP_HIT, 0x00af);
 342CPUMF_EVENT_ATTR(cf_z16, ICW_ON_CHIP_DRAWER_HIT, 0x00b0);
 343CPUMF_EVENT_ATTR(cf_z16, ICW_ON_MODULE, 0x00b1);
 344CPUMF_EVENT_ATTR(cf_z16, ICW_ON_DRAWER, 0x00b2);
 345CPUMF_EVENT_ATTR(cf_z16, ICW_OFF_DRAWER, 0x00b3);
 346CPUMF_EVENT_ATTR(cf_z16, ICW_ON_CHIP_MEMORY, 0x00b4);
 347CPUMF_EVENT_ATTR(cf_z16, ICW_ON_MODULE_MEMORY, 0x00b5);
 348CPUMF_EVENT_ATTR(cf_z16, ICW_ON_DRAWER_MEMORY, 0x00b6);
 349CPUMF_EVENT_ATTR(cf_z16, ICW_OFF_DRAWER_MEMORY, 0x00b7);
 350CPUMF_EVENT_ATTR(cf_z16, BCD_DFP_EXECUTION_SLOTS, 0x00e0);
 351CPUMF_EVENT_ATTR(cf_z16, VX_BCD_EXECUTION_SLOTS, 0x00e1);
 352CPUMF_EVENT_ATTR(cf_z16, DECIMAL_INSTRUCTIONS, 0x00e2);
 353CPUMF_EVENT_ATTR(cf_z16, LAST_HOST_TRANSLATIONS, 0x00e8);
 354CPUMF_EVENT_ATTR(cf_z16, TX_NC_TABORT, 0x00f4);
 355CPUMF_EVENT_ATTR(cf_z16, TX_C_TABORT_NO_SPECIAL, 0x00f5);
 356CPUMF_EVENT_ATTR(cf_z16, TX_C_TABORT_SPECIAL, 0x00f6);
 357CPUMF_EVENT_ATTR(cf_z16, DFLT_ACCESS, 0x00f8);
 358CPUMF_EVENT_ATTR(cf_z16, DFLT_CYCLES, 0x00fd);
 359CPUMF_EVENT_ATTR(cf_z16, SORTL, 0x0100);
 360CPUMF_EVENT_ATTR(cf_z16, DFLT_CC, 0x0109);
 361CPUMF_EVENT_ATTR(cf_z16, DFLT_CCFINISH, 0x010a);
 362CPUMF_EVENT_ATTR(cf_z16, NNPA_INVOCATIONS, 0x010b);
 363CPUMF_EVENT_ATTR(cf_z16, NNPA_COMPLETIONS, 0x010c);
 364CPUMF_EVENT_ATTR(cf_z16, NNPA_WAIT_LOCK, 0x010d);
 365CPUMF_EVENT_ATTR(cf_z16, NNPA_HOLD_LOCK, 0x010e);
 366CPUMF_EVENT_ATTR(cf_z16, MT_DIAG_CYCLES_ONE_THR_ACTIVE, 0x01c0);
 367CPUMF_EVENT_ATTR(cf_z16, MT_DIAG_CYCLES_TWO_THR_ACTIVE, 0x01c1);
 368
 369static struct attribute *cpumcf_fvn1_pmu_event_attr[] __initdata = {
 370        CPUMF_EVENT_PTR(cf_fvn1, CPU_CYCLES),
 371        CPUMF_EVENT_PTR(cf_fvn1, INSTRUCTIONS),
 372        CPUMF_EVENT_PTR(cf_fvn1, L1I_DIR_WRITES),
 373        CPUMF_EVENT_PTR(cf_fvn1, L1I_PENALTY_CYCLES),
 374        CPUMF_EVENT_PTR(cf_fvn1, PROBLEM_STATE_CPU_CYCLES),
 375        CPUMF_EVENT_PTR(cf_fvn1, PROBLEM_STATE_INSTRUCTIONS),
 376        CPUMF_EVENT_PTR(cf_fvn1, PROBLEM_STATE_L1I_DIR_WRITES),
 377        CPUMF_EVENT_PTR(cf_fvn1, PROBLEM_STATE_L1I_PENALTY_CYCLES),
 378        CPUMF_EVENT_PTR(cf_fvn1, PROBLEM_STATE_L1D_DIR_WRITES),
 379        CPUMF_EVENT_PTR(cf_fvn1, PROBLEM_STATE_L1D_PENALTY_CYCLES),
 380        CPUMF_EVENT_PTR(cf_fvn1, L1D_DIR_WRITES),
 381        CPUMF_EVENT_PTR(cf_fvn1, L1D_PENALTY_CYCLES),
 382        NULL,
 383};
 384
 385static struct attribute *cpumcf_fvn3_pmu_event_attr[] __initdata = {
 386        CPUMF_EVENT_PTR(cf_fvn3, CPU_CYCLES),
 387        CPUMF_EVENT_PTR(cf_fvn3, INSTRUCTIONS),
 388        CPUMF_EVENT_PTR(cf_fvn3, L1I_DIR_WRITES),
 389        CPUMF_EVENT_PTR(cf_fvn3, L1I_PENALTY_CYCLES),
 390        CPUMF_EVENT_PTR(cf_fvn3, PROBLEM_STATE_CPU_CYCLES),
 391        CPUMF_EVENT_PTR(cf_fvn3, PROBLEM_STATE_INSTRUCTIONS),
 392        CPUMF_EVENT_PTR(cf_fvn3, L1D_DIR_WRITES),
 393        CPUMF_EVENT_PTR(cf_fvn3, L1D_PENALTY_CYCLES),
 394        NULL,
 395};
 396
 397static struct attribute *cpumcf_svn_12345_pmu_event_attr[] __initdata = {
 398        CPUMF_EVENT_PTR(cf_svn_12345, PRNG_FUNCTIONS),
 399        CPUMF_EVENT_PTR(cf_svn_12345, PRNG_CYCLES),
 400        CPUMF_EVENT_PTR(cf_svn_12345, PRNG_BLOCKED_FUNCTIONS),
 401        CPUMF_EVENT_PTR(cf_svn_12345, PRNG_BLOCKED_CYCLES),
 402        CPUMF_EVENT_PTR(cf_svn_12345, SHA_FUNCTIONS),
 403        CPUMF_EVENT_PTR(cf_svn_12345, SHA_CYCLES),
 404        CPUMF_EVENT_PTR(cf_svn_12345, SHA_BLOCKED_FUNCTIONS),
 405        CPUMF_EVENT_PTR(cf_svn_12345, SHA_BLOCKED_CYCLES),
 406        CPUMF_EVENT_PTR(cf_svn_12345, DEA_FUNCTIONS),
 407        CPUMF_EVENT_PTR(cf_svn_12345, DEA_CYCLES),
 408        CPUMF_EVENT_PTR(cf_svn_12345, DEA_BLOCKED_FUNCTIONS),
 409        CPUMF_EVENT_PTR(cf_svn_12345, DEA_BLOCKED_CYCLES),
 410        CPUMF_EVENT_PTR(cf_svn_12345, AES_FUNCTIONS),
 411        CPUMF_EVENT_PTR(cf_svn_12345, AES_CYCLES),
 412        CPUMF_EVENT_PTR(cf_svn_12345, AES_BLOCKED_FUNCTIONS),
 413        CPUMF_EVENT_PTR(cf_svn_12345, AES_BLOCKED_CYCLES),
 414        NULL,
 415};
 416
 417static struct attribute *cpumcf_svn_67_pmu_event_attr[] __initdata = {
 418        CPUMF_EVENT_PTR(cf_svn_12345, PRNG_FUNCTIONS),
 419        CPUMF_EVENT_PTR(cf_svn_12345, PRNG_CYCLES),
 420        CPUMF_EVENT_PTR(cf_svn_12345, PRNG_BLOCKED_FUNCTIONS),
 421        CPUMF_EVENT_PTR(cf_svn_12345, PRNG_BLOCKED_CYCLES),
 422        CPUMF_EVENT_PTR(cf_svn_12345, SHA_FUNCTIONS),
 423        CPUMF_EVENT_PTR(cf_svn_12345, SHA_CYCLES),
 424        CPUMF_EVENT_PTR(cf_svn_12345, SHA_BLOCKED_FUNCTIONS),
 425        CPUMF_EVENT_PTR(cf_svn_12345, SHA_BLOCKED_CYCLES),
 426        CPUMF_EVENT_PTR(cf_svn_12345, DEA_FUNCTIONS),
 427        CPUMF_EVENT_PTR(cf_svn_12345, DEA_CYCLES),
 428        CPUMF_EVENT_PTR(cf_svn_12345, DEA_BLOCKED_FUNCTIONS),
 429        CPUMF_EVENT_PTR(cf_svn_12345, DEA_BLOCKED_CYCLES),
 430        CPUMF_EVENT_PTR(cf_svn_12345, AES_FUNCTIONS),
 431        CPUMF_EVENT_PTR(cf_svn_12345, AES_CYCLES),
 432        CPUMF_EVENT_PTR(cf_svn_12345, AES_BLOCKED_FUNCTIONS),
 433        CPUMF_EVENT_PTR(cf_svn_12345, AES_BLOCKED_CYCLES),
 434        CPUMF_EVENT_PTR(cf_svn_6, ECC_FUNCTION_COUNT),
 435        CPUMF_EVENT_PTR(cf_svn_6, ECC_CYCLES_COUNT),
 436        CPUMF_EVENT_PTR(cf_svn_6, ECC_BLOCKED_FUNCTION_COUNT),
 437        CPUMF_EVENT_PTR(cf_svn_6, ECC_BLOCKED_CYCLES_COUNT),
 438        NULL,
 439};
 440
 441static struct attribute *cpumcf_z10_pmu_event_attr[] __initdata = {
 442        CPUMF_EVENT_PTR(cf_z10, L1I_L2_SOURCED_WRITES),
 443        CPUMF_EVENT_PTR(cf_z10, L1D_L2_SOURCED_WRITES),
 444        CPUMF_EVENT_PTR(cf_z10, L1I_L3_LOCAL_WRITES),
 445        CPUMF_EVENT_PTR(cf_z10, L1D_L3_LOCAL_WRITES),
 446        CPUMF_EVENT_PTR(cf_z10, L1I_L3_REMOTE_WRITES),
 447        CPUMF_EVENT_PTR(cf_z10, L1D_L3_REMOTE_WRITES),
 448        CPUMF_EVENT_PTR(cf_z10, L1D_LMEM_SOURCED_WRITES),
 449        CPUMF_EVENT_PTR(cf_z10, L1I_LMEM_SOURCED_WRITES),
 450        CPUMF_EVENT_PTR(cf_z10, L1D_RO_EXCL_WRITES),
 451        CPUMF_EVENT_PTR(cf_z10, L1I_CACHELINE_INVALIDATES),
 452        CPUMF_EVENT_PTR(cf_z10, ITLB1_WRITES),
 453        CPUMF_EVENT_PTR(cf_z10, DTLB1_WRITES),
 454        CPUMF_EVENT_PTR(cf_z10, TLB2_PTE_WRITES),
 455        CPUMF_EVENT_PTR(cf_z10, TLB2_CRSTE_WRITES),
 456        CPUMF_EVENT_PTR(cf_z10, TLB2_CRSTE_HPAGE_WRITES),
 457        CPUMF_EVENT_PTR(cf_z10, ITLB1_MISSES),
 458        CPUMF_EVENT_PTR(cf_z10, DTLB1_MISSES),
 459        CPUMF_EVENT_PTR(cf_z10, L2C_STORES_SENT),
 460        NULL,
 461};
 462
 463static struct attribute *cpumcf_z196_pmu_event_attr[] __initdata = {
 464        CPUMF_EVENT_PTR(cf_z196, L1D_L2_SOURCED_WRITES),
 465        CPUMF_EVENT_PTR(cf_z196, L1I_L2_SOURCED_WRITES),
 466        CPUMF_EVENT_PTR(cf_z196, DTLB1_MISSES),
 467        CPUMF_EVENT_PTR(cf_z196, ITLB1_MISSES),
 468        CPUMF_EVENT_PTR(cf_z196, L2C_STORES_SENT),
 469        CPUMF_EVENT_PTR(cf_z196, L1D_OFFBOOK_L3_SOURCED_WRITES),
 470        CPUMF_EVENT_PTR(cf_z196, L1D_ONBOOK_L4_SOURCED_WRITES),
 471        CPUMF_EVENT_PTR(cf_z196, L1I_ONBOOK_L4_SOURCED_WRITES),
 472        CPUMF_EVENT_PTR(cf_z196, L1D_RO_EXCL_WRITES),
 473        CPUMF_EVENT_PTR(cf_z196, L1D_OFFBOOK_L4_SOURCED_WRITES),
 474        CPUMF_EVENT_PTR(cf_z196, L1I_OFFBOOK_L4_SOURCED_WRITES),
 475        CPUMF_EVENT_PTR(cf_z196, DTLB1_HPAGE_WRITES),
 476        CPUMF_EVENT_PTR(cf_z196, L1D_LMEM_SOURCED_WRITES),
 477        CPUMF_EVENT_PTR(cf_z196, L1I_LMEM_SOURCED_WRITES),
 478        CPUMF_EVENT_PTR(cf_z196, L1I_OFFBOOK_L3_SOURCED_WRITES),
 479        CPUMF_EVENT_PTR(cf_z196, DTLB1_WRITES),
 480        CPUMF_EVENT_PTR(cf_z196, ITLB1_WRITES),
 481        CPUMF_EVENT_PTR(cf_z196, TLB2_PTE_WRITES),
 482        CPUMF_EVENT_PTR(cf_z196, TLB2_CRSTE_HPAGE_WRITES),
 483        CPUMF_EVENT_PTR(cf_z196, TLB2_CRSTE_WRITES),
 484        CPUMF_EVENT_PTR(cf_z196, L1D_ONCHIP_L3_SOURCED_WRITES),
 485        CPUMF_EVENT_PTR(cf_z196, L1D_OFFCHIP_L3_SOURCED_WRITES),
 486        CPUMF_EVENT_PTR(cf_z196, L1I_ONCHIP_L3_SOURCED_WRITES),
 487        CPUMF_EVENT_PTR(cf_z196, L1I_OFFCHIP_L3_SOURCED_WRITES),
 488        NULL,
 489};
 490
 491static struct attribute *cpumcf_zec12_pmu_event_attr[] __initdata = {
 492        CPUMF_EVENT_PTR(cf_zec12, DTLB1_MISSES),
 493        CPUMF_EVENT_PTR(cf_zec12, ITLB1_MISSES),
 494        CPUMF_EVENT_PTR(cf_zec12, L1D_L2I_SOURCED_WRITES),
 495        CPUMF_EVENT_PTR(cf_zec12, L1I_L2I_SOURCED_WRITES),
 496        CPUMF_EVENT_PTR(cf_zec12, L1D_L2D_SOURCED_WRITES),
 497        CPUMF_EVENT_PTR(cf_zec12, DTLB1_WRITES),
 498        CPUMF_EVENT_PTR(cf_zec12, L1D_LMEM_SOURCED_WRITES),
 499        CPUMF_EVENT_PTR(cf_zec12, L1I_LMEM_SOURCED_WRITES),
 500        CPUMF_EVENT_PTR(cf_zec12, L1D_RO_EXCL_WRITES),
 501        CPUMF_EVENT_PTR(cf_zec12, DTLB1_HPAGE_WRITES),
 502        CPUMF_EVENT_PTR(cf_zec12, ITLB1_WRITES),
 503        CPUMF_EVENT_PTR(cf_zec12, TLB2_PTE_WRITES),
 504        CPUMF_EVENT_PTR(cf_zec12, TLB2_CRSTE_HPAGE_WRITES),
 505        CPUMF_EVENT_PTR(cf_zec12, TLB2_CRSTE_WRITES),
 506        CPUMF_EVENT_PTR(cf_zec12, L1D_ONCHIP_L3_SOURCED_WRITES),
 507        CPUMF_EVENT_PTR(cf_zec12, L1D_OFFCHIP_L3_SOURCED_WRITES),
 508        CPUMF_EVENT_PTR(cf_zec12, L1D_OFFBOOK_L3_SOURCED_WRITES),
 509        CPUMF_EVENT_PTR(cf_zec12, L1D_ONBOOK_L4_SOURCED_WRITES),
 510        CPUMF_EVENT_PTR(cf_zec12, L1D_OFFBOOK_L4_SOURCED_WRITES),
 511        CPUMF_EVENT_PTR(cf_zec12, TX_NC_TEND),
 512        CPUMF_EVENT_PTR(cf_zec12, L1D_ONCHIP_L3_SOURCED_WRITES_IV),
 513        CPUMF_EVENT_PTR(cf_zec12, L1D_OFFCHIP_L3_SOURCED_WRITES_IV),
 514        CPUMF_EVENT_PTR(cf_zec12, L1D_OFFBOOK_L3_SOURCED_WRITES_IV),
 515        CPUMF_EVENT_PTR(cf_zec12, L1I_ONCHIP_L3_SOURCED_WRITES),
 516        CPUMF_EVENT_PTR(cf_zec12, L1I_OFFCHIP_L3_SOURCED_WRITES),
 517        CPUMF_EVENT_PTR(cf_zec12, L1I_OFFBOOK_L3_SOURCED_WRITES),
 518        CPUMF_EVENT_PTR(cf_zec12, L1I_ONBOOK_L4_SOURCED_WRITES),
 519        CPUMF_EVENT_PTR(cf_zec12, L1I_OFFBOOK_L4_SOURCED_WRITES),
 520        CPUMF_EVENT_PTR(cf_zec12, TX_C_TEND),
 521        CPUMF_EVENT_PTR(cf_zec12, L1I_ONCHIP_L3_SOURCED_WRITES_IV),
 522        CPUMF_EVENT_PTR(cf_zec12, L1I_OFFCHIP_L3_SOURCED_WRITES_IV),
 523        CPUMF_EVENT_PTR(cf_zec12, L1I_OFFBOOK_L3_SOURCED_WRITES_IV),
 524        CPUMF_EVENT_PTR(cf_zec12, TX_NC_TABORT),
 525        CPUMF_EVENT_PTR(cf_zec12, TX_C_TABORT_NO_SPECIAL),
 526        CPUMF_EVENT_PTR(cf_zec12, TX_C_TABORT_SPECIAL),
 527        NULL,
 528};
 529
 530static struct attribute *cpumcf_z13_pmu_event_attr[] __initdata = {
 531        CPUMF_EVENT_PTR(cf_z13, L1D_RO_EXCL_WRITES),
 532        CPUMF_EVENT_PTR(cf_z13, DTLB1_WRITES),
 533        CPUMF_EVENT_PTR(cf_z13, DTLB1_MISSES),
 534        CPUMF_EVENT_PTR(cf_z13, DTLB1_HPAGE_WRITES),
 535        CPUMF_EVENT_PTR(cf_z13, DTLB1_GPAGE_WRITES),
 536        CPUMF_EVENT_PTR(cf_z13, L1D_L2D_SOURCED_WRITES),
 537        CPUMF_EVENT_PTR(cf_z13, ITLB1_WRITES),
 538        CPUMF_EVENT_PTR(cf_z13, ITLB1_MISSES),
 539        CPUMF_EVENT_PTR(cf_z13, L1I_L2I_SOURCED_WRITES),
 540        CPUMF_EVENT_PTR(cf_z13, TLB2_PTE_WRITES),
 541        CPUMF_EVENT_PTR(cf_z13, TLB2_CRSTE_HPAGE_WRITES),
 542        CPUMF_EVENT_PTR(cf_z13, TLB2_CRSTE_WRITES),
 543        CPUMF_EVENT_PTR(cf_z13, TX_C_TEND),
 544        CPUMF_EVENT_PTR(cf_z13, TX_NC_TEND),
 545        CPUMF_EVENT_PTR(cf_z13, L1C_TLB1_MISSES),
 546        CPUMF_EVENT_PTR(cf_z13, L1D_ONCHIP_L3_SOURCED_WRITES),
 547        CPUMF_EVENT_PTR(cf_z13, L1D_ONCHIP_L3_SOURCED_WRITES_IV),
 548        CPUMF_EVENT_PTR(cf_z13, L1D_ONNODE_L4_SOURCED_WRITES),
 549        CPUMF_EVENT_PTR(cf_z13, L1D_ONNODE_L3_SOURCED_WRITES_IV),
 550        CPUMF_EVENT_PTR(cf_z13, L1D_ONNODE_L3_SOURCED_WRITES),
 551        CPUMF_EVENT_PTR(cf_z13, L1D_ONDRAWER_L4_SOURCED_WRITES),
 552        CPUMF_EVENT_PTR(cf_z13, L1D_ONDRAWER_L3_SOURCED_WRITES_IV),
 553        CPUMF_EVENT_PTR(cf_z13, L1D_ONDRAWER_L3_SOURCED_WRITES),
 554        CPUMF_EVENT_PTR(cf_z13, L1D_OFFDRAWER_SCOL_L4_SOURCED_WRITES),
 555        CPUMF_EVENT_PTR(cf_z13, L1D_OFFDRAWER_SCOL_L3_SOURCED_WRITES_IV),
 556        CPUMF_EVENT_PTR(cf_z13, L1D_OFFDRAWER_SCOL_L3_SOURCED_WRITES),
 557        CPUMF_EVENT_PTR(cf_z13, L1D_OFFDRAWER_FCOL_L4_SOURCED_WRITES),
 558        CPUMF_EVENT_PTR(cf_z13, L1D_OFFDRAWER_FCOL_L3_SOURCED_WRITES_IV),
 559        CPUMF_EVENT_PTR(cf_z13, L1D_OFFDRAWER_FCOL_L3_SOURCED_WRITES),
 560        CPUMF_EVENT_PTR(cf_z13, L1D_ONNODE_MEM_SOURCED_WRITES),
 561        CPUMF_EVENT_PTR(cf_z13, L1D_ONDRAWER_MEM_SOURCED_WRITES),
 562        CPUMF_EVENT_PTR(cf_z13, L1D_OFFDRAWER_MEM_SOURCED_WRITES),
 563        CPUMF_EVENT_PTR(cf_z13, L1D_ONCHIP_MEM_SOURCED_WRITES),
 564        CPUMF_EVENT_PTR(cf_z13, L1I_ONCHIP_L3_SOURCED_WRITES),
 565        CPUMF_EVENT_PTR(cf_z13, L1I_ONCHIP_L3_SOURCED_WRITES_IV),
 566        CPUMF_EVENT_PTR(cf_z13, L1I_ONNODE_L4_SOURCED_WRITES),
 567        CPUMF_EVENT_PTR(cf_z13, L1I_ONNODE_L3_SOURCED_WRITES_IV),
 568        CPUMF_EVENT_PTR(cf_z13, L1I_ONNODE_L3_SOURCED_WRITES),
 569        CPUMF_EVENT_PTR(cf_z13, L1I_ONDRAWER_L4_SOURCED_WRITES),
 570        CPUMF_EVENT_PTR(cf_z13, L1I_ONDRAWER_L3_SOURCED_WRITES_IV),
 571        CPUMF_EVENT_PTR(cf_z13, L1I_ONDRAWER_L3_SOURCED_WRITES),
 572        CPUMF_EVENT_PTR(cf_z13, L1I_OFFDRAWER_SCOL_L4_SOURCED_WRITES),
 573        CPUMF_EVENT_PTR(cf_z13, L1I_OFFDRAWER_SCOL_L3_SOURCED_WRITES_IV),
 574        CPUMF_EVENT_PTR(cf_z13, L1I_OFFDRAWER_SCOL_L3_SOURCED_WRITES),
 575        CPUMF_EVENT_PTR(cf_z13, L1I_OFFDRAWER_FCOL_L4_SOURCED_WRITES),
 576        CPUMF_EVENT_PTR(cf_z13, L1I_OFFDRAWER_FCOL_L3_SOURCED_WRITES_IV),
 577        CPUMF_EVENT_PTR(cf_z13, L1I_OFFDRAWER_FCOL_L3_SOURCED_WRITES),
 578        CPUMF_EVENT_PTR(cf_z13, L1I_ONNODE_MEM_SOURCED_WRITES),
 579        CPUMF_EVENT_PTR(cf_z13, L1I_ONDRAWER_MEM_SOURCED_WRITES),
 580        CPUMF_EVENT_PTR(cf_z13, L1I_OFFDRAWER_MEM_SOURCED_WRITES),
 581        CPUMF_EVENT_PTR(cf_z13, L1I_ONCHIP_MEM_SOURCED_WRITES),
 582        CPUMF_EVENT_PTR(cf_z13, TX_NC_TABORT),
 583        CPUMF_EVENT_PTR(cf_z13, TX_C_TABORT_NO_SPECIAL),
 584        CPUMF_EVENT_PTR(cf_z13, TX_C_TABORT_SPECIAL),
 585        CPUMF_EVENT_PTR(cf_z13, MT_DIAG_CYCLES_ONE_THR_ACTIVE),
 586        CPUMF_EVENT_PTR(cf_z13, MT_DIAG_CYCLES_TWO_THR_ACTIVE),
 587        NULL,
 588};
 589
 590static struct attribute *cpumcf_z14_pmu_event_attr[] __initdata = {
 591        CPUMF_EVENT_PTR(cf_z14, L1D_RO_EXCL_WRITES),
 592        CPUMF_EVENT_PTR(cf_z14, DTLB2_WRITES),
 593        CPUMF_EVENT_PTR(cf_z14, DTLB2_MISSES),
 594        CPUMF_EVENT_PTR(cf_z14, DTLB2_HPAGE_WRITES),
 595        CPUMF_EVENT_PTR(cf_z14, DTLB2_GPAGE_WRITES),
 596        CPUMF_EVENT_PTR(cf_z14, L1D_L2D_SOURCED_WRITES),
 597        CPUMF_EVENT_PTR(cf_z14, ITLB2_WRITES),
 598        CPUMF_EVENT_PTR(cf_z14, ITLB2_MISSES),
 599        CPUMF_EVENT_PTR(cf_z14, L1I_L2I_SOURCED_WRITES),
 600        CPUMF_EVENT_PTR(cf_z14, TLB2_PTE_WRITES),
 601        CPUMF_EVENT_PTR(cf_z14, TLB2_CRSTE_WRITES),
 602        CPUMF_EVENT_PTR(cf_z14, TLB2_ENGINES_BUSY),
 603        CPUMF_EVENT_PTR(cf_z14, TX_C_TEND),
 604        CPUMF_EVENT_PTR(cf_z14, TX_NC_TEND),
 605        CPUMF_EVENT_PTR(cf_z14, L1C_TLB2_MISSES),
 606        CPUMF_EVENT_PTR(cf_z14, L1D_ONCHIP_L3_SOURCED_WRITES),
 607        CPUMF_EVENT_PTR(cf_z14, L1D_ONCHIP_MEMORY_SOURCED_WRITES),
 608        CPUMF_EVENT_PTR(cf_z14, L1D_ONCHIP_L3_SOURCED_WRITES_IV),
 609        CPUMF_EVENT_PTR(cf_z14, L1D_ONCLUSTER_L3_SOURCED_WRITES),
 610        CPUMF_EVENT_PTR(cf_z14, L1D_ONCLUSTER_MEMORY_SOURCED_WRITES),
 611        CPUMF_EVENT_PTR(cf_z14, L1D_ONCLUSTER_L3_SOURCED_WRITES_IV),
 612        CPUMF_EVENT_PTR(cf_z14, L1D_OFFCLUSTER_L3_SOURCED_WRITES),
 613        CPUMF_EVENT_PTR(cf_z14, L1D_OFFCLUSTER_MEMORY_SOURCED_WRITES),
 614        CPUMF_EVENT_PTR(cf_z14, L1D_OFFCLUSTER_L3_SOURCED_WRITES_IV),
 615        CPUMF_EVENT_PTR(cf_z14, L1D_OFFDRAWER_L3_SOURCED_WRITES),
 616        CPUMF_EVENT_PTR(cf_z14, L1D_OFFDRAWER_MEMORY_SOURCED_WRITES),
 617        CPUMF_EVENT_PTR(cf_z14, L1D_OFFDRAWER_L3_SOURCED_WRITES_IV),
 618        CPUMF_EVENT_PTR(cf_z14, L1D_ONDRAWER_L4_SOURCED_WRITES),
 619        CPUMF_EVENT_PTR(cf_z14, L1D_OFFDRAWER_L4_SOURCED_WRITES),
 620        CPUMF_EVENT_PTR(cf_z14, L1D_ONCHIP_L3_SOURCED_WRITES_RO),
 621        CPUMF_EVENT_PTR(cf_z14, L1I_ONCHIP_L3_SOURCED_WRITES),
 622        CPUMF_EVENT_PTR(cf_z14, L1I_ONCHIP_MEMORY_SOURCED_WRITES),
 623        CPUMF_EVENT_PTR(cf_z14, L1I_ONCHIP_L3_SOURCED_WRITES_IV),
 624        CPUMF_EVENT_PTR(cf_z14, L1I_ONCLUSTER_L3_SOURCED_WRITES),
 625        CPUMF_EVENT_PTR(cf_z14, L1I_ONCLUSTER_MEMORY_SOURCED_WRITES),
 626        CPUMF_EVENT_PTR(cf_z14, L1I_ONCLUSTER_L3_SOURCED_WRITES_IV),
 627        CPUMF_EVENT_PTR(cf_z14, L1I_OFFCLUSTER_L3_SOURCED_WRITES),
 628        CPUMF_EVENT_PTR(cf_z14, L1I_OFFCLUSTER_MEMORY_SOURCED_WRITES),
 629        CPUMF_EVENT_PTR(cf_z14, L1I_OFFCLUSTER_L3_SOURCED_WRITES_IV),
 630        CPUMF_EVENT_PTR(cf_z14, L1I_OFFDRAWER_L3_SOURCED_WRITES),
 631        CPUMF_EVENT_PTR(cf_z14, L1I_OFFDRAWER_MEMORY_SOURCED_WRITES),
 632        CPUMF_EVENT_PTR(cf_z14, L1I_OFFDRAWER_L3_SOURCED_WRITES_IV),
 633        CPUMF_EVENT_PTR(cf_z14, L1I_ONDRAWER_L4_SOURCED_WRITES),
 634        CPUMF_EVENT_PTR(cf_z14, L1I_OFFDRAWER_L4_SOURCED_WRITES),
 635        CPUMF_EVENT_PTR(cf_z14, BCD_DFP_EXECUTION_SLOTS),
 636        CPUMF_EVENT_PTR(cf_z14, VX_BCD_EXECUTION_SLOTS),
 637        CPUMF_EVENT_PTR(cf_z14, DECIMAL_INSTRUCTIONS),
 638        CPUMF_EVENT_PTR(cf_z14, LAST_HOST_TRANSLATIONS),
 639        CPUMF_EVENT_PTR(cf_z14, TX_NC_TABORT),
 640        CPUMF_EVENT_PTR(cf_z14, TX_C_TABORT_NO_SPECIAL),
 641        CPUMF_EVENT_PTR(cf_z14, TX_C_TABORT_SPECIAL),
 642        CPUMF_EVENT_PTR(cf_z14, MT_DIAG_CYCLES_ONE_THR_ACTIVE),
 643        CPUMF_EVENT_PTR(cf_z14, MT_DIAG_CYCLES_TWO_THR_ACTIVE),
 644        NULL,
 645};
 646
 647static struct attribute *cpumcf_z15_pmu_event_attr[] __initdata = {
 648        CPUMF_EVENT_PTR(cf_z15, L1D_RO_EXCL_WRITES),
 649        CPUMF_EVENT_PTR(cf_z15, DTLB2_WRITES),
 650        CPUMF_EVENT_PTR(cf_z15, DTLB2_MISSES),
 651        CPUMF_EVENT_PTR(cf_z15, DTLB2_HPAGE_WRITES),
 652        CPUMF_EVENT_PTR(cf_z15, DTLB2_GPAGE_WRITES),
 653        CPUMF_EVENT_PTR(cf_z15, L1D_L2D_SOURCED_WRITES),
 654        CPUMF_EVENT_PTR(cf_z15, ITLB2_WRITES),
 655        CPUMF_EVENT_PTR(cf_z15, ITLB2_MISSES),
 656        CPUMF_EVENT_PTR(cf_z15, L1I_L2I_SOURCED_WRITES),
 657        CPUMF_EVENT_PTR(cf_z15, TLB2_PTE_WRITES),
 658        CPUMF_EVENT_PTR(cf_z15, TLB2_CRSTE_WRITES),
 659        CPUMF_EVENT_PTR(cf_z15, TLB2_ENGINES_BUSY),
 660        CPUMF_EVENT_PTR(cf_z15, TX_C_TEND),
 661        CPUMF_EVENT_PTR(cf_z15, TX_NC_TEND),
 662        CPUMF_EVENT_PTR(cf_z15, L1C_TLB2_MISSES),
 663        CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES),
 664        CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_MEMORY_SOURCED_WRITES),
 665        CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_IV),
 666        CPUMF_EVENT_PTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES),
 667        CPUMF_EVENT_PTR(cf_z15, L1D_ONCLUSTER_MEMORY_SOURCED_WRITES),
 668        CPUMF_EVENT_PTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES_IV),
 669        CPUMF_EVENT_PTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES),
 670        CPUMF_EVENT_PTR(cf_z15, L1D_OFFCLUSTER_MEMORY_SOURCED_WRITES),
 671        CPUMF_EVENT_PTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES_IV),
 672        CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES),
 673        CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_MEMORY_SOURCED_WRITES),
 674        CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES_IV),
 675        CPUMF_EVENT_PTR(cf_z15, L1D_ONDRAWER_L4_SOURCED_WRITES),
 676        CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_L4_SOURCED_WRITES),
 677        CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_RO),
 678        CPUMF_EVENT_PTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES),
 679        CPUMF_EVENT_PTR(cf_z15, L1I_ONCHIP_MEMORY_SOURCED_WRITES),
 680        CPUMF_EVENT_PTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES_IV),
 681        CPUMF_EVENT_PTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES),
 682        CPUMF_EVENT_PTR(cf_z15, L1I_ONCLUSTER_MEMORY_SOURCED_WRITES),
 683        CPUMF_EVENT_PTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES_IV),
 684        CPUMF_EVENT_PTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES),
 685        CPUMF_EVENT_PTR(cf_z15, L1I_OFFCLUSTER_MEMORY_SOURCED_WRITES),
 686        CPUMF_EVENT_PTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES_IV),
 687        CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES),
 688        CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_MEMORY_SOURCED_WRITES),
 689        CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES_IV),
 690        CPUMF_EVENT_PTR(cf_z15, L1I_ONDRAWER_L4_SOURCED_WRITES),
 691        CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_L4_SOURCED_WRITES),
 692        CPUMF_EVENT_PTR(cf_z15, BCD_DFP_EXECUTION_SLOTS),
 693        CPUMF_EVENT_PTR(cf_z15, VX_BCD_EXECUTION_SLOTS),
 694        CPUMF_EVENT_PTR(cf_z15, DECIMAL_INSTRUCTIONS),
 695        CPUMF_EVENT_PTR(cf_z15, LAST_HOST_TRANSLATIONS),
 696        CPUMF_EVENT_PTR(cf_z15, TX_NC_TABORT),
 697        CPUMF_EVENT_PTR(cf_z15, TX_C_TABORT_NO_SPECIAL),
 698        CPUMF_EVENT_PTR(cf_z15, TX_C_TABORT_SPECIAL),
 699        CPUMF_EVENT_PTR(cf_z15, DFLT_ACCESS),
 700        CPUMF_EVENT_PTR(cf_z15, DFLT_CYCLES),
 701        CPUMF_EVENT_PTR(cf_z15, DFLT_CC),
 702        CPUMF_EVENT_PTR(cf_z15, DFLT_CCFINISH),
 703        CPUMF_EVENT_PTR(cf_z15, MT_DIAG_CYCLES_ONE_THR_ACTIVE),
 704        CPUMF_EVENT_PTR(cf_z15, MT_DIAG_CYCLES_TWO_THR_ACTIVE),
 705        NULL,
 706};
 707
 708static struct attribute *cpumcf_z16_pmu_event_attr[] __initdata = {
 709        CPUMF_EVENT_PTR(cf_z16, L1D_RO_EXCL_WRITES),
 710        CPUMF_EVENT_PTR(cf_z16, DTLB2_WRITES),
 711        CPUMF_EVENT_PTR(cf_z16, DTLB2_MISSES),
 712        CPUMF_EVENT_PTR(cf_z16, CRSTE_1MB_WRITES),
 713        CPUMF_EVENT_PTR(cf_z16, DTLB2_GPAGE_WRITES),
 714        CPUMF_EVENT_PTR(cf_z16, ITLB2_WRITES),
 715        CPUMF_EVENT_PTR(cf_z16, ITLB2_MISSES),
 716        CPUMF_EVENT_PTR(cf_z16, TLB2_PTE_WRITES),
 717        CPUMF_EVENT_PTR(cf_z16, TLB2_CRSTE_WRITES),
 718        CPUMF_EVENT_PTR(cf_z16, TLB2_ENGINES_BUSY),
 719        CPUMF_EVENT_PTR(cf_z16, TX_C_TEND),
 720        CPUMF_EVENT_PTR(cf_z16, TX_NC_TEND),
 721        CPUMF_EVENT_PTR(cf_z16, L1C_TLB2_MISSES),
 722        CPUMF_EVENT_PTR(cf_z16, DCW_REQ),
 723        CPUMF_EVENT_PTR(cf_z16, DCW_REQ_IV),
 724        CPUMF_EVENT_PTR(cf_z16, DCW_REQ_CHIP_HIT),
 725        CPUMF_EVENT_PTR(cf_z16, DCW_REQ_DRAWER_HIT),
 726        CPUMF_EVENT_PTR(cf_z16, DCW_ON_CHIP),
 727        CPUMF_EVENT_PTR(cf_z16, DCW_ON_CHIP_IV),
 728        CPUMF_EVENT_PTR(cf_z16, DCW_ON_CHIP_CHIP_HIT),
 729        CPUMF_EVENT_PTR(cf_z16, DCW_ON_CHIP_DRAWER_HIT),
 730        CPUMF_EVENT_PTR(cf_z16, DCW_ON_MODULE),
 731        CPUMF_EVENT_PTR(cf_z16, DCW_ON_DRAWER),
 732        CPUMF_EVENT_PTR(cf_z16, DCW_OFF_DRAWER),
 733        CPUMF_EVENT_PTR(cf_z16, DCW_ON_CHIP_MEMORY),
 734        CPUMF_EVENT_PTR(cf_z16, DCW_ON_MODULE_MEMORY),
 735        CPUMF_EVENT_PTR(cf_z16, DCW_ON_DRAWER_MEMORY),
 736        CPUMF_EVENT_PTR(cf_z16, DCW_OFF_DRAWER_MEMORY),
 737        CPUMF_EVENT_PTR(cf_z16, IDCW_ON_MODULE_IV),
 738        CPUMF_EVENT_PTR(cf_z16, IDCW_ON_MODULE_CHIP_HIT),
 739        CPUMF_EVENT_PTR(cf_z16, IDCW_ON_MODULE_DRAWER_HIT),
 740        CPUMF_EVENT_PTR(cf_z16, IDCW_ON_DRAWER_IV),
 741        CPUMF_EVENT_PTR(cf_z16, IDCW_ON_DRAWER_CHIP_HIT),
 742        CPUMF_EVENT_PTR(cf_z16, IDCW_ON_DRAWER_DRAWER_HIT),
 743        CPUMF_EVENT_PTR(cf_z16, IDCW_OFF_DRAWER_IV),
 744        CPUMF_EVENT_PTR(cf_z16, IDCW_OFF_DRAWER_CHIP_HIT),
 745        CPUMF_EVENT_PTR(cf_z16, IDCW_OFF_DRAWER_DRAWER_HIT),
 746        CPUMF_EVENT_PTR(cf_z16, ICW_REQ),
 747        CPUMF_EVENT_PTR(cf_z16, ICW_REQ_IV),
 748        CPUMF_EVENT_PTR(cf_z16, ICW_REQ_CHIP_HIT),
 749        CPUMF_EVENT_PTR(cf_z16, ICW_REQ_DRAWER_HIT),
 750        CPUMF_EVENT_PTR(cf_z16, ICW_ON_CHIP),
 751        CPUMF_EVENT_PTR(cf_z16, ICW_ON_CHIP_IV),
 752        CPUMF_EVENT_PTR(cf_z16, ICW_ON_CHIP_CHIP_HIT),
 753        CPUMF_EVENT_PTR(cf_z16, ICW_ON_CHIP_DRAWER_HIT),
 754        CPUMF_EVENT_PTR(cf_z16, ICW_ON_MODULE),
 755        CPUMF_EVENT_PTR(cf_z16, ICW_ON_DRAWER),
 756        CPUMF_EVENT_PTR(cf_z16, ICW_OFF_DRAWER),
 757        CPUMF_EVENT_PTR(cf_z16, ICW_ON_CHIP_MEMORY),
 758        CPUMF_EVENT_PTR(cf_z16, ICW_ON_MODULE_MEMORY),
 759        CPUMF_EVENT_PTR(cf_z16, ICW_ON_DRAWER_MEMORY),
 760        CPUMF_EVENT_PTR(cf_z16, ICW_OFF_DRAWER_MEMORY),
 761        CPUMF_EVENT_PTR(cf_z16, BCD_DFP_EXECUTION_SLOTS),
 762        CPUMF_EVENT_PTR(cf_z16, VX_BCD_EXECUTION_SLOTS),
 763        CPUMF_EVENT_PTR(cf_z16, DECIMAL_INSTRUCTIONS),
 764        CPUMF_EVENT_PTR(cf_z16, LAST_HOST_TRANSLATIONS),
 765        CPUMF_EVENT_PTR(cf_z16, TX_NC_TABORT),
 766        CPUMF_EVENT_PTR(cf_z16, TX_C_TABORT_NO_SPECIAL),
 767        CPUMF_EVENT_PTR(cf_z16, TX_C_TABORT_SPECIAL),
 768        CPUMF_EVENT_PTR(cf_z16, DFLT_ACCESS),
 769        CPUMF_EVENT_PTR(cf_z16, DFLT_CYCLES),
 770        CPUMF_EVENT_PTR(cf_z16, SORTL),
 771        CPUMF_EVENT_PTR(cf_z16, DFLT_CC),
 772        CPUMF_EVENT_PTR(cf_z16, DFLT_CCFINISH),
 773        CPUMF_EVENT_PTR(cf_z16, NNPA_INVOCATIONS),
 774        CPUMF_EVENT_PTR(cf_z16, NNPA_COMPLETIONS),
 775        CPUMF_EVENT_PTR(cf_z16, NNPA_WAIT_LOCK),
 776        CPUMF_EVENT_PTR(cf_z16, NNPA_HOLD_LOCK),
 777        CPUMF_EVENT_PTR(cf_z16, MT_DIAG_CYCLES_ONE_THR_ACTIVE),
 778        CPUMF_EVENT_PTR(cf_z16, MT_DIAG_CYCLES_TWO_THR_ACTIVE),
 779        NULL,
 780};
 781
 782/* END: CPUM_CF COUNTER DEFINITIONS ===================================== */
 783
 784static struct attribute_group cpumcf_pmu_events_group = {
 785        .name = "events",
 786};
 787
 788PMU_FORMAT_ATTR(event, "config:0-63");
 789
 790static struct attribute *cpumcf_pmu_format_attr[] = {
 791        &format_attr_event.attr,
 792        NULL,
 793};
 794
 795static struct attribute_group cpumcf_pmu_format_group = {
 796        .name = "format",
 797        .attrs = cpumcf_pmu_format_attr,
 798};
 799
 800static const struct attribute_group *cpumcf_pmu_attr_groups[] = {
 801        &cpumcf_pmu_events_group,
 802        &cpumcf_pmu_format_group,
 803        NULL,
 804};
 805
 806
 807static __init struct attribute **merge_attr(struct attribute **a,
 808                                            struct attribute **b,
 809                                            struct attribute **c)
 810{
 811        struct attribute **new;
 812        int j, i;
 813
 814        for (j = 0; a[j]; j++)
 815                ;
 816        for (i = 0; b[i]; i++)
 817                j++;
 818        for (i = 0; c[i]; i++)
 819                j++;
 820        j++;
 821
 822        new = kmalloc_array(j, sizeof(struct attribute *), GFP_KERNEL);
 823        if (!new)
 824                return NULL;
 825        j = 0;
 826        for (i = 0; a[i]; i++)
 827                new[j++] = a[i];
 828        for (i = 0; b[i]; i++)
 829                new[j++] = b[i];
 830        for (i = 0; c[i]; i++)
 831                new[j++] = c[i];
 832        new[j] = NULL;
 833
 834        return new;
 835}
 836
 837__init const struct attribute_group **cpumf_cf_event_group(void)
 838{
 839        struct attribute **combined, **model, **cfvn, **csvn;
 840        struct attribute *none[] = { NULL };
 841        struct cpumf_ctr_info ci;
 842        struct cpuid cpu_id;
 843
 844        /* Determine generic counters set(s) */
 845        qctri(&ci);
 846        switch (ci.cfvn) {
 847        case 1:
 848                cfvn = cpumcf_fvn1_pmu_event_attr;
 849                break;
 850        case 3:
 851                cfvn = cpumcf_fvn3_pmu_event_attr;
 852                break;
 853        default:
 854                cfvn = none;
 855        }
 856
 857        /* Determine version specific crypto set */
 858        switch (ci.csvn) {
 859        case 1 ... 5:
 860                csvn = cpumcf_svn_12345_pmu_event_attr;
 861                break;
 862        case 6 ... 7:
 863                csvn = cpumcf_svn_67_pmu_event_attr;
 864                break;
 865        default:
 866                csvn = none;
 867        }
 868
 869        /* Determine model-specific counter set(s) */
 870        get_cpu_id(&cpu_id);
 871        switch (cpu_id.machine) {
 872        case 0x2097:
 873        case 0x2098:
 874                model = cpumcf_z10_pmu_event_attr;
 875                break;
 876        case 0x2817:
 877        case 0x2818:
 878                model = cpumcf_z196_pmu_event_attr;
 879                break;
 880        case 0x2827:
 881        case 0x2828:
 882                model = cpumcf_zec12_pmu_event_attr;
 883                break;
 884        case 0x2964:
 885        case 0x2965:
 886                model = cpumcf_z13_pmu_event_attr;
 887                break;
 888        case 0x3906:
 889        case 0x3907:
 890                model = cpumcf_z14_pmu_event_attr;
 891                break;
 892        case 0x8561:
 893        case 0x8562:
 894                model = cpumcf_z15_pmu_event_attr;
 895                break;
 896        case 0x3931:
 897        case 0x3932:
 898                model = cpumcf_z16_pmu_event_attr;
 899                break;
 900        default:
 901                model = none;
 902                break;
 903        }
 904
 905        combined = merge_attr(cfvn, csvn, model);
 906        if (combined)
 907                cpumcf_pmu_events_group.attrs = combined;
 908        return cpumcf_pmu_attr_groups;
 909}
 910