1b2441318SGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0 2c7168325SHendrik Brueckner /* 3c7168325SHendrik Brueckner * Perf PMU sysfs events attributes for available CPU-measurement counters 4c7168325SHendrik Brueckner * 5c7168325SHendrik Brueckner */ 6c7168325SHendrik Brueckner 7c7168325SHendrik Brueckner #include <linux/slab.h> 8c7168325SHendrik Brueckner #include <linux/perf_event.h> 9c7168325SHendrik Brueckner 10c7168325SHendrik Brueckner 11c7168325SHendrik Brueckner /* BEGIN: CPUM_CF COUNTER DEFINITIONS =================================== */ 12c7168325SHendrik Brueckner 133593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn1, CPU_CYCLES, 0x0000); 143593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn1, INSTRUCTIONS, 0x0001); 153593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn1, L1I_DIR_WRITES, 0x0002); 163593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn1, L1I_PENALTY_CYCLES, 0x0003); 173593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn1, PROBLEM_STATE_CPU_CYCLES, 0x0020); 183593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn1, PROBLEM_STATE_INSTRUCTIONS, 0x0021); 193593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn1, PROBLEM_STATE_L1I_DIR_WRITES, 0x0022); 203593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn1, PROBLEM_STATE_L1I_PENALTY_CYCLES, 0x0023); 213593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn1, PROBLEM_STATE_L1D_DIR_WRITES, 0x0024); 223593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn1, PROBLEM_STATE_L1D_PENALTY_CYCLES, 0x0025); 233593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn1, L1D_DIR_WRITES, 0x0004); 243593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn1, L1D_PENALTY_CYCLES, 0x0005); 253593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn3, CPU_CYCLES, 0x0000); 263593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn3, INSTRUCTIONS, 0x0001); 273593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn3, L1I_DIR_WRITES, 0x0002); 283593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn3, L1I_PENALTY_CYCLES, 0x0003); 293593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn3, PROBLEM_STATE_CPU_CYCLES, 0x0020); 303593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn3, PROBLEM_STATE_INSTRUCTIONS, 0x0021); 313593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn3, L1D_DIR_WRITES, 0x0004); 323593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_fvn3, L1D_PENALTY_CYCLES, 0x0005); 333593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, PRNG_FUNCTIONS, 0x0040); 343593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, PRNG_CYCLES, 0x0041); 353593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, PRNG_BLOCKED_FUNCTIONS, 0x0042); 363593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, PRNG_BLOCKED_CYCLES, 0x0043); 373593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, SHA_FUNCTIONS, 0x0044); 383593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, SHA_CYCLES, 0x0045); 393593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, SHA_BLOCKED_FUNCTIONS, 0x0046); 403593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, SHA_BLOCKED_CYCLES, 0x0047); 413593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, DEA_FUNCTIONS, 0x0048); 423593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, DEA_CYCLES, 0x0049); 433593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, DEA_BLOCKED_FUNCTIONS, 0x004a); 443593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, DEA_BLOCKED_CYCLES, 0x004b); 453593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, AES_FUNCTIONS, 0x004c); 463593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, AES_CYCLES, 0x004d); 473593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, AES_BLOCKED_FUNCTIONS, 0x004e); 483593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_svn_generic, AES_BLOCKED_CYCLES, 0x004f); 49c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, L1I_L2_SOURCED_WRITES, 0x0080); 50c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, L1D_L2_SOURCED_WRITES, 0x0081); 51c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, L1I_L3_LOCAL_WRITES, 0x0082); 52c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, L1D_L3_LOCAL_WRITES, 0x0083); 53c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, L1I_L3_REMOTE_WRITES, 0x0084); 54c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, L1D_L3_REMOTE_WRITES, 0x0085); 55c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, L1D_LMEM_SOURCED_WRITES, 0x0086); 56c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, L1I_LMEM_SOURCED_WRITES, 0x0087); 57c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, L1D_RO_EXCL_WRITES, 0x0088); 58c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, L1I_CACHELINE_INVALIDATES, 0x0089); 59c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, ITLB1_WRITES, 0x008a); 60c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, DTLB1_WRITES, 0x008b); 61c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, TLB2_PTE_WRITES, 0x008c); 62c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, TLB2_CRSTE_WRITES, 0x008d); 63c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, TLB2_CRSTE_HPAGE_WRITES, 0x008e); 64c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, ITLB1_MISSES, 0x0091); 65c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, DTLB1_MISSES, 0x0092); 66c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z10, L2C_STORES_SENT, 0x0093); 67c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1D_L2_SOURCED_WRITES, 0x0080); 68c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1I_L2_SOURCED_WRITES, 0x0081); 69c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, DTLB1_MISSES, 0x0082); 70c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, ITLB1_MISSES, 0x0083); 71c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L2C_STORES_SENT, 0x0085); 72c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1D_OFFBOOK_L3_SOURCED_WRITES, 0x0086); 73c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1D_ONBOOK_L4_SOURCED_WRITES, 0x0087); 74c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1I_ONBOOK_L4_SOURCED_WRITES, 0x0088); 75c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1D_RO_EXCL_WRITES, 0x0089); 76c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1D_OFFBOOK_L4_SOURCED_WRITES, 0x008a); 77c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1I_OFFBOOK_L4_SOURCED_WRITES, 0x008b); 78c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, DTLB1_HPAGE_WRITES, 0x008c); 79c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1D_LMEM_SOURCED_WRITES, 0x008d); 80c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1I_LMEM_SOURCED_WRITES, 0x008e); 81c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1I_OFFBOOK_L3_SOURCED_WRITES, 0x008f); 82c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, DTLB1_WRITES, 0x0090); 83c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, ITLB1_WRITES, 0x0091); 84c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, TLB2_PTE_WRITES, 0x0092); 85c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, TLB2_CRSTE_HPAGE_WRITES, 0x0093); 86c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, TLB2_CRSTE_WRITES, 0x0094); 87c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1D_ONCHIP_L3_SOURCED_WRITES, 0x0096); 88c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1D_OFFCHIP_L3_SOURCED_WRITES, 0x0098); 89c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1I_ONCHIP_L3_SOURCED_WRITES, 0x0099); 90c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z196, L1I_OFFCHIP_L3_SOURCED_WRITES, 0x009b); 91c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, DTLB1_MISSES, 0x0080); 92c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, ITLB1_MISSES, 0x0081); 93c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1D_L2I_SOURCED_WRITES, 0x0082); 94c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1I_L2I_SOURCED_WRITES, 0x0083); 95c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1D_L2D_SOURCED_WRITES, 0x0084); 96c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, DTLB1_WRITES, 0x0085); 97c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1D_LMEM_SOURCED_WRITES, 0x0087); 98c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1I_LMEM_SOURCED_WRITES, 0x0089); 99c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1D_RO_EXCL_WRITES, 0x008a); 100c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, DTLB1_HPAGE_WRITES, 0x008b); 101c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, ITLB1_WRITES, 0x008c); 102c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, TLB2_PTE_WRITES, 0x008d); 103c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, TLB2_CRSTE_HPAGE_WRITES, 0x008e); 104c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, TLB2_CRSTE_WRITES, 0x008f); 105c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1D_ONCHIP_L3_SOURCED_WRITES, 0x0090); 106c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1D_OFFCHIP_L3_SOURCED_WRITES, 0x0091); 107c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1D_OFFBOOK_L3_SOURCED_WRITES, 0x0092); 108c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1D_ONBOOK_L4_SOURCED_WRITES, 0x0093); 109c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1D_OFFBOOK_L4_SOURCED_WRITES, 0x0094); 110c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, TX_NC_TEND, 0x0095); 111c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1D_ONCHIP_L3_SOURCED_WRITES_IV, 0x0096); 112c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1D_OFFCHIP_L3_SOURCED_WRITES_IV, 0x0097); 113c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1D_OFFBOOK_L3_SOURCED_WRITES_IV, 0x0098); 114c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1I_ONCHIP_L3_SOURCED_WRITES, 0x0099); 115c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1I_OFFCHIP_L3_SOURCED_WRITES, 0x009a); 116c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1I_OFFBOOK_L3_SOURCED_WRITES, 0x009b); 117c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1I_ONBOOK_L4_SOURCED_WRITES, 0x009c); 118c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1I_OFFBOOK_L4_SOURCED_WRITES, 0x009d); 119c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, TX_C_TEND, 0x009e); 120c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1I_ONCHIP_L3_SOURCED_WRITES_IV, 0x009f); 121c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1I_OFFCHIP_L3_SOURCED_WRITES_IV, 0x00a0); 122c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, L1I_OFFBOOK_L3_SOURCED_WRITES_IV, 0x00a1); 123c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, TX_NC_TABORT, 0x00b1); 124c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, TX_C_TABORT_NO_SPECIAL, 0x00b2); 125c7168325SHendrik Brueckner CPUMF_EVENT_ATTR(cf_zec12, TX_C_TABORT_SPECIAL, 0x00b3); 126*5f3ba878SAndré Wild CPUMF_EVENT_ATTR(cf_z13, L1D_RO_EXCL_WRITES, 0x0080); 1273fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, DTLB1_WRITES, 0x0081); 1283fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, DTLB1_MISSES, 0x0082); 1293fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, DTLB1_HPAGE_WRITES, 0x0083); 1303fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, DTLB1_GPAGE_WRITES, 0x0084); 1313fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_L2D_SOURCED_WRITES, 0x0085); 1323fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, ITLB1_WRITES, 0x0086); 1333fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, ITLB1_MISSES, 0x0087); 1343fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_L2I_SOURCED_WRITES, 0x0088); 1353fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, TLB2_PTE_WRITES, 0x0089); 1363fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, TLB2_CRSTE_HPAGE_WRITES, 0x008a); 1373fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, TLB2_CRSTE_WRITES, 0x008b); 1383fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, TX_C_TEND, 0x008c); 1393fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, TX_NC_TEND, 0x008d); 1403fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1C_TLB1_MISSES, 0x008f); 1413fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_ONCHIP_L3_SOURCED_WRITES, 0x0090); 1423fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_ONCHIP_L3_SOURCED_WRITES_IV, 0x0091); 1433fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_ONNODE_L4_SOURCED_WRITES, 0x0092); 1443fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_ONNODE_L3_SOURCED_WRITES_IV, 0x0093); 1453fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_ONNODE_L3_SOURCED_WRITES, 0x0094); 1463fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_ONDRAWER_L4_SOURCED_WRITES, 0x0095); 1473fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_ONDRAWER_L3_SOURCED_WRITES_IV, 0x0096); 1483fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_ONDRAWER_L3_SOURCED_WRITES, 0x0097); 1493fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_OFFDRAWER_SCOL_L4_SOURCED_WRITES, 0x0098); 1503fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_OFFDRAWER_SCOL_L3_SOURCED_WRITES_IV, 0x0099); 1513fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_OFFDRAWER_SCOL_L3_SOURCED_WRITES, 0x009a); 1523fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_OFFDRAWER_FCOL_L4_SOURCED_WRITES, 0x009b); 1533fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_OFFDRAWER_FCOL_L3_SOURCED_WRITES_IV, 0x009c); 1543fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_OFFDRAWER_FCOL_L3_SOURCED_WRITES, 0x009d); 1553fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_ONNODE_MEM_SOURCED_WRITES, 0x009e); 1563fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_ONDRAWER_MEM_SOURCED_WRITES, 0x009f); 1573fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_OFFDRAWER_MEM_SOURCED_WRITES, 0x00a0); 1583fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1D_ONCHIP_MEM_SOURCED_WRITES, 0x00a1); 1593fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_ONCHIP_L3_SOURCED_WRITES, 0x00a2); 1603fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_ONCHIP_L3_SOURCED_WRITES_IV, 0x00a3); 1613fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_ONNODE_L4_SOURCED_WRITES, 0x00a4); 1623fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_ONNODE_L3_SOURCED_WRITES_IV, 0x00a5); 1633fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_ONNODE_L3_SOURCED_WRITES, 0x00a6); 1643fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_ONDRAWER_L4_SOURCED_WRITES, 0x00a7); 1653fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_ONDRAWER_L3_SOURCED_WRITES_IV, 0x00a8); 1663fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_ONDRAWER_L3_SOURCED_WRITES, 0x00a9); 1673fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_OFFDRAWER_SCOL_L4_SOURCED_WRITES, 0x00aa); 1683fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_OFFDRAWER_SCOL_L3_SOURCED_WRITES_IV, 0x00ab); 1693fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_OFFDRAWER_SCOL_L3_SOURCED_WRITES, 0x00ac); 1703fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_OFFDRAWER_FCOL_L4_SOURCED_WRITES, 0x00ad); 1713fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_OFFDRAWER_FCOL_L3_SOURCED_WRITES_IV, 0x00ae); 1723fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_OFFDRAWER_FCOL_L3_SOURCED_WRITES, 0x00af); 1733fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_ONNODE_MEM_SOURCED_WRITES, 0x00b0); 1743fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_ONDRAWER_MEM_SOURCED_WRITES, 0x00b1); 1753fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_OFFDRAWER_MEM_SOURCED_WRITES, 0x00b2); 1763fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, L1I_ONCHIP_MEM_SOURCED_WRITES, 0x00b3); 1773fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, TX_NC_TABORT, 0x00da); 1783fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, TX_C_TABORT_NO_SPECIAL, 0x00db); 1793fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, TX_C_TABORT_SPECIAL, 0x00dc); 1803fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, MT_DIAG_CYCLES_ONE_THR_ACTIVE, 0x01c0); 1813fc7acebSHendrik Brueckner CPUMF_EVENT_ATTR(cf_z13, MT_DIAG_CYCLES_TWO_THR_ACTIVE, 0x01c1); 182*5f3ba878SAndré Wild CPUMF_EVENT_ATTR(cf_z14, L1D_RO_EXCL_WRITES, 0x0080); 1833593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, DTLB2_WRITES, 0x0081); 1843593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, DTLB2_MISSES, 0x0082); 1853593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, DTLB2_HPAGE_WRITES, 0x0083); 1863593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, DTLB2_GPAGE_WRITES, 0x0084); 1873593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_L2D_SOURCED_WRITES, 0x0085); 1883593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, ITLB2_WRITES, 0x0086); 1893593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, ITLB2_MISSES, 0x0087); 1903593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_L2I_SOURCED_WRITES, 0x0088); 1913593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, TLB2_PTE_WRITES, 0x0089); 1923593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, TLB2_CRSTE_WRITES, 0x008a); 1933593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, TLB2_ENGINES_BUSY, 0x008b); 1943593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, TX_C_TEND, 0x008c); 1953593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, TX_NC_TEND, 0x008d); 1963593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1C_TLB2_MISSES, 0x008f); 1973593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_ONCHIP_L3_SOURCED_WRITES, 0x0090); 1983593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_ONCHIP_MEMORY_SOURCED_WRITES, 0x0091); 1993593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_ONCHIP_L3_SOURCED_WRITES_IV, 0x0092); 2003593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_ONCLUSTER_L3_SOURCED_WRITES, 0x0093); 2013593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_ONCLUSTER_MEMORY_SOURCED_WRITES, 0x0094); 2023593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_ONCLUSTER_L3_SOURCED_WRITES_IV, 0x0095); 2033593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_OFFCLUSTER_L3_SOURCED_WRITES, 0x0096); 2043593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_OFFCLUSTER_MEMORY_SOURCED_WRITES, 0x0097); 2053593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_OFFCLUSTER_L3_SOURCED_WRITES_IV, 0x0098); 2063593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_OFFDRAWER_L3_SOURCED_WRITES, 0x0099); 2073593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_OFFDRAWER_MEMORY_SOURCED_WRITES, 0x009a); 2083593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_OFFDRAWER_L3_SOURCED_WRITES_IV, 0x009b); 2093593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_ONDRAWER_L4_SOURCED_WRITES, 0x009c); 2103593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_OFFDRAWER_L4_SOURCED_WRITES, 0x009d); 2113593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1D_ONCHIP_L3_SOURCED_WRITES_RO, 0x009e); 2123593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_ONCHIP_L3_SOURCED_WRITES, 0x00a2); 2133593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_ONCHIP_MEMORY_SOURCED_WRITES, 0x00a3); 2143593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_ONCHIP_L3_SOURCED_WRITES_IV, 0x00a4); 2153593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_ONCLUSTER_L3_SOURCED_WRITES, 0x00a5); 2163593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_ONCLUSTER_MEMORY_SOURCED_WRITES, 0x00a6); 2173593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_ONCLUSTER_L3_SOURCED_WRITES_IV, 0x00a7); 2183593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_OFFCLUSTER_L3_SOURCED_WRITES, 0x00a8); 2193593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_OFFCLUSTER_MEMORY_SOURCED_WRITES, 0x00a9); 2203593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_OFFCLUSTER_L3_SOURCED_WRITES_IV, 0x00aa); 2213593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_OFFDRAWER_L3_SOURCED_WRITES, 0x00ab); 2223593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_OFFDRAWER_MEMORY_SOURCED_WRITES, 0x00ac); 2233593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_OFFDRAWER_L3_SOURCED_WRITES_IV, 0x00ad); 2243593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_ONDRAWER_L4_SOURCED_WRITES, 0x00ae); 2253593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, L1I_OFFDRAWER_L4_SOURCED_WRITES, 0x00af); 2263593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, BCD_DFP_EXECUTION_SLOTS, 0x00e0); 2273593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, VX_BCD_EXECUTION_SLOTS, 0x00e1); 2283593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, DECIMAL_INSTRUCTIONS, 0x00e2); 22981507f38SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, LAST_HOST_TRANSLATIONS, 0x00e8); 2303593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, TX_NC_TABORT, 0x00f3); 2313593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, TX_C_TABORT_NO_SPECIAL, 0x00f4); 2323593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, TX_C_TABORT_SPECIAL, 0x00f5); 2333593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, MT_DIAG_CYCLES_ONE_THR_ACTIVE, 0x01c0); 2343593eb94SHendrik Brueckner CPUMF_EVENT_ATTR(cf_z14, MT_DIAG_CYCLES_TWO_THR_ACTIVE, 0x01c1); 235c7168325SHendrik Brueckner 2363593eb94SHendrik Brueckner static struct attribute *cpumcf_fvn1_pmu_event_attr[] __initdata = { 2373593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn1, CPU_CYCLES), 2383593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn1, INSTRUCTIONS), 2393593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn1, L1I_DIR_WRITES), 2403593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn1, L1I_PENALTY_CYCLES), 2413593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn1, PROBLEM_STATE_CPU_CYCLES), 2423593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn1, PROBLEM_STATE_INSTRUCTIONS), 2433593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn1, PROBLEM_STATE_L1I_DIR_WRITES), 2443593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn1, PROBLEM_STATE_L1I_PENALTY_CYCLES), 2453593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn1, PROBLEM_STATE_L1D_DIR_WRITES), 2463593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn1, PROBLEM_STATE_L1D_PENALTY_CYCLES), 2473593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn1, L1D_DIR_WRITES), 2483593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn1, L1D_PENALTY_CYCLES), 2493593eb94SHendrik Brueckner NULL, 2503593eb94SHendrik Brueckner }; 2513593eb94SHendrik Brueckner 2523593eb94SHendrik Brueckner static struct attribute *cpumcf_fvn3_pmu_event_attr[] __initdata = { 2533593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn3, CPU_CYCLES), 2543593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn3, INSTRUCTIONS), 2553593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn3, L1I_DIR_WRITES), 2563593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn3, L1I_PENALTY_CYCLES), 2573593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn3, PROBLEM_STATE_CPU_CYCLES), 2583593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn3, PROBLEM_STATE_INSTRUCTIONS), 2593593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn3, L1D_DIR_WRITES), 2603593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_fvn3, L1D_PENALTY_CYCLES), 2613593eb94SHendrik Brueckner NULL, 2623593eb94SHendrik Brueckner }; 2633593eb94SHendrik Brueckner 2643593eb94SHendrik Brueckner static struct attribute *cpumcf_svn_generic_pmu_event_attr[] __initdata = { 2653593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, PRNG_FUNCTIONS), 2663593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, PRNG_CYCLES), 2673593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, PRNG_BLOCKED_FUNCTIONS), 2683593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, PRNG_BLOCKED_CYCLES), 2693593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, SHA_FUNCTIONS), 2703593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, SHA_CYCLES), 2713593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, SHA_BLOCKED_FUNCTIONS), 2723593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, SHA_BLOCKED_CYCLES), 2733593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, DEA_FUNCTIONS), 2743593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, DEA_CYCLES), 2753593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, DEA_BLOCKED_FUNCTIONS), 2763593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, DEA_BLOCKED_CYCLES), 2773593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, AES_FUNCTIONS), 2783593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, AES_CYCLES), 2793593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, AES_BLOCKED_FUNCTIONS), 2803593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_svn_generic, AES_BLOCKED_CYCLES), 281c7168325SHendrik Brueckner NULL, 282c7168325SHendrik Brueckner }; 283c7168325SHendrik Brueckner 284c7168325SHendrik Brueckner static struct attribute *cpumcf_z10_pmu_event_attr[] __initdata = { 285c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, L1I_L2_SOURCED_WRITES), 286c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, L1D_L2_SOURCED_WRITES), 287c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, L1I_L3_LOCAL_WRITES), 288c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, L1D_L3_LOCAL_WRITES), 289c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, L1I_L3_REMOTE_WRITES), 290c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, L1D_L3_REMOTE_WRITES), 291c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, L1D_LMEM_SOURCED_WRITES), 292c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, L1I_LMEM_SOURCED_WRITES), 293c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, L1D_RO_EXCL_WRITES), 294c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, L1I_CACHELINE_INVALIDATES), 295c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, ITLB1_WRITES), 296c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, DTLB1_WRITES), 297c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, TLB2_PTE_WRITES), 298c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, TLB2_CRSTE_WRITES), 299c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, TLB2_CRSTE_HPAGE_WRITES), 300c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, ITLB1_MISSES), 301c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, DTLB1_MISSES), 302c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z10, L2C_STORES_SENT), 303c7168325SHendrik Brueckner NULL, 304c7168325SHendrik Brueckner }; 305c7168325SHendrik Brueckner 306c7168325SHendrik Brueckner static struct attribute *cpumcf_z196_pmu_event_attr[] __initdata = { 307c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1D_L2_SOURCED_WRITES), 308c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1I_L2_SOURCED_WRITES), 309c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, DTLB1_MISSES), 310c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, ITLB1_MISSES), 311c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L2C_STORES_SENT), 312c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1D_OFFBOOK_L3_SOURCED_WRITES), 313c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1D_ONBOOK_L4_SOURCED_WRITES), 314c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1I_ONBOOK_L4_SOURCED_WRITES), 315c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1D_RO_EXCL_WRITES), 316c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1D_OFFBOOK_L4_SOURCED_WRITES), 317c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1I_OFFBOOK_L4_SOURCED_WRITES), 318c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, DTLB1_HPAGE_WRITES), 319c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1D_LMEM_SOURCED_WRITES), 320c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1I_LMEM_SOURCED_WRITES), 321c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1I_OFFBOOK_L3_SOURCED_WRITES), 322c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, DTLB1_WRITES), 323c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, ITLB1_WRITES), 324c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, TLB2_PTE_WRITES), 325c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, TLB2_CRSTE_HPAGE_WRITES), 326c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, TLB2_CRSTE_WRITES), 327c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1D_ONCHIP_L3_SOURCED_WRITES), 328c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1D_OFFCHIP_L3_SOURCED_WRITES), 329c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1I_ONCHIP_L3_SOURCED_WRITES), 330c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_z196, L1I_OFFCHIP_L3_SOURCED_WRITES), 331c7168325SHendrik Brueckner NULL, 332c7168325SHendrik Brueckner }; 333c7168325SHendrik Brueckner 334c7168325SHendrik Brueckner static struct attribute *cpumcf_zec12_pmu_event_attr[] __initdata = { 335c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, DTLB1_MISSES), 336c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, ITLB1_MISSES), 337c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1D_L2I_SOURCED_WRITES), 338c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1I_L2I_SOURCED_WRITES), 339c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1D_L2D_SOURCED_WRITES), 340c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, DTLB1_WRITES), 341c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1D_LMEM_SOURCED_WRITES), 342c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1I_LMEM_SOURCED_WRITES), 343c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1D_RO_EXCL_WRITES), 344c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, DTLB1_HPAGE_WRITES), 345c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, ITLB1_WRITES), 346c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, TLB2_PTE_WRITES), 347c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, TLB2_CRSTE_HPAGE_WRITES), 348c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, TLB2_CRSTE_WRITES), 349c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1D_ONCHIP_L3_SOURCED_WRITES), 350c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1D_OFFCHIP_L3_SOURCED_WRITES), 351c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1D_OFFBOOK_L3_SOURCED_WRITES), 352c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1D_ONBOOK_L4_SOURCED_WRITES), 353c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1D_OFFBOOK_L4_SOURCED_WRITES), 354c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, TX_NC_TEND), 355c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1D_ONCHIP_L3_SOURCED_WRITES_IV), 356c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1D_OFFCHIP_L3_SOURCED_WRITES_IV), 357c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1D_OFFBOOK_L3_SOURCED_WRITES_IV), 358c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1I_ONCHIP_L3_SOURCED_WRITES), 359c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1I_OFFCHIP_L3_SOURCED_WRITES), 360c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1I_OFFBOOK_L3_SOURCED_WRITES), 361c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1I_ONBOOK_L4_SOURCED_WRITES), 362c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1I_OFFBOOK_L4_SOURCED_WRITES), 363c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, TX_C_TEND), 364c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1I_ONCHIP_L3_SOURCED_WRITES_IV), 365c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1I_OFFCHIP_L3_SOURCED_WRITES_IV), 366c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, L1I_OFFBOOK_L3_SOURCED_WRITES_IV), 367c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, TX_NC_TABORT), 368c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, TX_C_TABORT_NO_SPECIAL), 369c7168325SHendrik Brueckner CPUMF_EVENT_PTR(cf_zec12, TX_C_TABORT_SPECIAL), 370c7168325SHendrik Brueckner NULL, 371c7168325SHendrik Brueckner }; 372c7168325SHendrik Brueckner 3733fc7acebSHendrik Brueckner static struct attribute *cpumcf_z13_pmu_event_attr[] __initdata = { 374*5f3ba878SAndré Wild CPUMF_EVENT_PTR(cf_z13, L1D_RO_EXCL_WRITES), 3753fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, DTLB1_WRITES), 3763fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, DTLB1_MISSES), 3773fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, DTLB1_HPAGE_WRITES), 3783fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, DTLB1_GPAGE_WRITES), 3793fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_L2D_SOURCED_WRITES), 3803fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, ITLB1_WRITES), 3813fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, ITLB1_MISSES), 3823fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_L2I_SOURCED_WRITES), 3833fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, TLB2_PTE_WRITES), 3843fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, TLB2_CRSTE_HPAGE_WRITES), 3853fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, TLB2_CRSTE_WRITES), 3863fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, TX_C_TEND), 3873fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, TX_NC_TEND), 3883fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1C_TLB1_MISSES), 3893fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_ONCHIP_L3_SOURCED_WRITES), 3903fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_ONCHIP_L3_SOURCED_WRITES_IV), 3913fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_ONNODE_L4_SOURCED_WRITES), 3923fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_ONNODE_L3_SOURCED_WRITES_IV), 3933fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_ONNODE_L3_SOURCED_WRITES), 3943fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_ONDRAWER_L4_SOURCED_WRITES), 3953fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_ONDRAWER_L3_SOURCED_WRITES_IV), 3963fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_ONDRAWER_L3_SOURCED_WRITES), 3973fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_OFFDRAWER_SCOL_L4_SOURCED_WRITES), 3983fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_OFFDRAWER_SCOL_L3_SOURCED_WRITES_IV), 3993fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_OFFDRAWER_SCOL_L3_SOURCED_WRITES), 4003fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_OFFDRAWER_FCOL_L4_SOURCED_WRITES), 4013fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_OFFDRAWER_FCOL_L3_SOURCED_WRITES_IV), 4023fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_OFFDRAWER_FCOL_L3_SOURCED_WRITES), 4033fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_ONNODE_MEM_SOURCED_WRITES), 4043fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_ONDRAWER_MEM_SOURCED_WRITES), 4053fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_OFFDRAWER_MEM_SOURCED_WRITES), 4063fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1D_ONCHIP_MEM_SOURCED_WRITES), 4073fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_ONCHIP_L3_SOURCED_WRITES), 4083fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_ONCHIP_L3_SOURCED_WRITES_IV), 4093fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_ONNODE_L4_SOURCED_WRITES), 4103fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_ONNODE_L3_SOURCED_WRITES_IV), 4113fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_ONNODE_L3_SOURCED_WRITES), 4123fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_ONDRAWER_L4_SOURCED_WRITES), 4133fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_ONDRAWER_L3_SOURCED_WRITES_IV), 4143fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_ONDRAWER_L3_SOURCED_WRITES), 4153fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_OFFDRAWER_SCOL_L4_SOURCED_WRITES), 4163fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_OFFDRAWER_SCOL_L3_SOURCED_WRITES_IV), 4173fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_OFFDRAWER_SCOL_L3_SOURCED_WRITES), 4183fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_OFFDRAWER_FCOL_L4_SOURCED_WRITES), 4193fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_OFFDRAWER_FCOL_L3_SOURCED_WRITES_IV), 4203fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_OFFDRAWER_FCOL_L3_SOURCED_WRITES), 4213fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_ONNODE_MEM_SOURCED_WRITES), 4223fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_ONDRAWER_MEM_SOURCED_WRITES), 4233fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_OFFDRAWER_MEM_SOURCED_WRITES), 4243fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, L1I_ONCHIP_MEM_SOURCED_WRITES), 4253fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, TX_NC_TABORT), 4263fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, TX_C_TABORT_NO_SPECIAL), 4273fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, TX_C_TABORT_SPECIAL), 4283fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, MT_DIAG_CYCLES_ONE_THR_ACTIVE), 4293fc7acebSHendrik Brueckner CPUMF_EVENT_PTR(cf_z13, MT_DIAG_CYCLES_TWO_THR_ACTIVE), 4303fc7acebSHendrik Brueckner NULL, 4313fc7acebSHendrik Brueckner }; 4323fc7acebSHendrik Brueckner 4333593eb94SHendrik Brueckner static struct attribute *cpumcf_z14_pmu_event_attr[] __initdata = { 434*5f3ba878SAndré Wild CPUMF_EVENT_PTR(cf_z14, L1D_RO_EXCL_WRITES), 4353593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, DTLB2_WRITES), 4363593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, DTLB2_MISSES), 4373593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, DTLB2_HPAGE_WRITES), 4383593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, DTLB2_GPAGE_WRITES), 4393593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_L2D_SOURCED_WRITES), 4403593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, ITLB2_WRITES), 4413593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, ITLB2_MISSES), 4423593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_L2I_SOURCED_WRITES), 4433593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, TLB2_PTE_WRITES), 4443593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, TLB2_CRSTE_WRITES), 4453593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, TLB2_ENGINES_BUSY), 4463593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, TX_C_TEND), 4473593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, TX_NC_TEND), 4483593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1C_TLB2_MISSES), 4493593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_ONCHIP_L3_SOURCED_WRITES), 4503593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_ONCHIP_MEMORY_SOURCED_WRITES), 4513593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_ONCHIP_L3_SOURCED_WRITES_IV), 4523593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_ONCLUSTER_L3_SOURCED_WRITES), 4533593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_ONCLUSTER_MEMORY_SOURCED_WRITES), 4543593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_ONCLUSTER_L3_SOURCED_WRITES_IV), 4553593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_OFFCLUSTER_L3_SOURCED_WRITES), 4563593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_OFFCLUSTER_MEMORY_SOURCED_WRITES), 4573593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_OFFCLUSTER_L3_SOURCED_WRITES_IV), 4583593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_OFFDRAWER_L3_SOURCED_WRITES), 4593593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_OFFDRAWER_MEMORY_SOURCED_WRITES), 4603593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_OFFDRAWER_L3_SOURCED_WRITES_IV), 4613593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_ONDRAWER_L4_SOURCED_WRITES), 4623593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_OFFDRAWER_L4_SOURCED_WRITES), 4633593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1D_ONCHIP_L3_SOURCED_WRITES_RO), 4643593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_ONCHIP_L3_SOURCED_WRITES), 4653593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_ONCHIP_MEMORY_SOURCED_WRITES), 4663593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_ONCHIP_L3_SOURCED_WRITES_IV), 4673593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_ONCLUSTER_L3_SOURCED_WRITES), 4683593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_ONCLUSTER_MEMORY_SOURCED_WRITES), 4693593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_ONCLUSTER_L3_SOURCED_WRITES_IV), 4703593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_OFFCLUSTER_L3_SOURCED_WRITES), 4713593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_OFFCLUSTER_MEMORY_SOURCED_WRITES), 4723593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_OFFCLUSTER_L3_SOURCED_WRITES_IV), 4733593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_OFFDRAWER_L3_SOURCED_WRITES), 4743593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_OFFDRAWER_MEMORY_SOURCED_WRITES), 4753593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_OFFDRAWER_L3_SOURCED_WRITES_IV), 4763593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_ONDRAWER_L4_SOURCED_WRITES), 4773593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, L1I_OFFDRAWER_L4_SOURCED_WRITES), 4783593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, BCD_DFP_EXECUTION_SLOTS), 4793593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, VX_BCD_EXECUTION_SLOTS), 4803593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, DECIMAL_INSTRUCTIONS), 4813593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, LAST_HOST_TRANSLATIONS), 4823593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, TX_NC_TABORT), 4833593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, TX_C_TABORT_NO_SPECIAL), 4843593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, TX_C_TABORT_SPECIAL), 4853593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, MT_DIAG_CYCLES_ONE_THR_ACTIVE), 4863593eb94SHendrik Brueckner CPUMF_EVENT_PTR(cf_z14, MT_DIAG_CYCLES_TWO_THR_ACTIVE), 4873593eb94SHendrik Brueckner NULL, 4883593eb94SHendrik Brueckner }; 4893593eb94SHendrik Brueckner 490c7168325SHendrik Brueckner /* END: CPUM_CF COUNTER DEFINITIONS ===================================== */ 491c7168325SHendrik Brueckner 49266a49784SHendrik Brueckner static struct attribute_group cpumcf_pmu_events_group = { 493c7168325SHendrik Brueckner .name = "events", 494c7168325SHendrik Brueckner }; 495c7168325SHendrik Brueckner 496c7168325SHendrik Brueckner PMU_FORMAT_ATTR(event, "config:0-63"); 497c7168325SHendrik Brueckner 49866a49784SHendrik Brueckner static struct attribute *cpumcf_pmu_format_attr[] = { 499c7168325SHendrik Brueckner &format_attr_event.attr, 500c7168325SHendrik Brueckner NULL, 501c7168325SHendrik Brueckner }; 502c7168325SHendrik Brueckner 50366a49784SHendrik Brueckner static struct attribute_group cpumcf_pmu_format_group = { 504c7168325SHendrik Brueckner .name = "format", 50566a49784SHendrik Brueckner .attrs = cpumcf_pmu_format_attr, 506c7168325SHendrik Brueckner }; 507c7168325SHendrik Brueckner 50866a49784SHendrik Brueckner static const struct attribute_group *cpumcf_pmu_attr_groups[] = { 50966a49784SHendrik Brueckner &cpumcf_pmu_events_group, 51066a49784SHendrik Brueckner &cpumcf_pmu_format_group, 511c7168325SHendrik Brueckner NULL, 512c7168325SHendrik Brueckner }; 513c7168325SHendrik Brueckner 514c7168325SHendrik Brueckner 515c7168325SHendrik Brueckner static __init struct attribute **merge_attr(struct attribute **a, 5163593eb94SHendrik Brueckner struct attribute **b, 5173593eb94SHendrik Brueckner struct attribute **c) 518c7168325SHendrik Brueckner { 519c7168325SHendrik Brueckner struct attribute **new; 520c7168325SHendrik Brueckner int j, i; 521c7168325SHendrik Brueckner 522c7168325SHendrik Brueckner for (j = 0; a[j]; j++) 523c7168325SHendrik Brueckner ; 524c7168325SHendrik Brueckner for (i = 0; b[i]; i++) 525c7168325SHendrik Brueckner j++; 5263593eb94SHendrik Brueckner for (i = 0; c[i]; i++) 5273593eb94SHendrik Brueckner j++; 528c7168325SHendrik Brueckner j++; 529c7168325SHendrik Brueckner 530c7168325SHendrik Brueckner new = kmalloc(sizeof(struct attribute *) * j, GFP_KERNEL); 531c7168325SHendrik Brueckner if (!new) 532c7168325SHendrik Brueckner return NULL; 533c7168325SHendrik Brueckner j = 0; 534c7168325SHendrik Brueckner for (i = 0; a[i]; i++) 535c7168325SHendrik Brueckner new[j++] = a[i]; 536c7168325SHendrik Brueckner for (i = 0; b[i]; i++) 537c7168325SHendrik Brueckner new[j++] = b[i]; 5383593eb94SHendrik Brueckner for (i = 0; c[i]; i++) 5393593eb94SHendrik Brueckner new[j++] = c[i]; 540c7168325SHendrik Brueckner new[j] = NULL; 541c7168325SHendrik Brueckner 542c7168325SHendrik Brueckner return new; 543c7168325SHendrik Brueckner } 544c7168325SHendrik Brueckner 545c7168325SHendrik Brueckner __init const struct attribute_group **cpumf_cf_event_group(void) 546c7168325SHendrik Brueckner { 5473593eb94SHendrik Brueckner struct attribute **combined, **model, **cfvn, **csvn; 5483fc7acebSHendrik Brueckner struct attribute *none[] = { NULL }; 5493593eb94SHendrik Brueckner struct cpumf_ctr_info ci; 550c7168325SHendrik Brueckner struct cpuid cpu_id; 551c7168325SHendrik Brueckner 5523593eb94SHendrik Brueckner /* Determine generic counters set(s) */ 5533593eb94SHendrik Brueckner qctri(&ci); 5543593eb94SHendrik Brueckner switch (ci.cfvn) { 5553593eb94SHendrik Brueckner case 1: 5563593eb94SHendrik Brueckner cfvn = cpumcf_fvn1_pmu_event_attr; 5573593eb94SHendrik Brueckner break; 5583593eb94SHendrik Brueckner case 3: 5593593eb94SHendrik Brueckner cfvn = cpumcf_fvn3_pmu_event_attr; 5603593eb94SHendrik Brueckner break; 5613593eb94SHendrik Brueckner default: 5623593eb94SHendrik Brueckner cfvn = none; 5633593eb94SHendrik Brueckner } 5643593eb94SHendrik Brueckner csvn = cpumcf_svn_generic_pmu_event_attr; 5653593eb94SHendrik Brueckner 5663593eb94SHendrik Brueckner /* Determine model-specific counter set(s) */ 567c7168325SHendrik Brueckner get_cpu_id(&cpu_id); 568c7168325SHendrik Brueckner switch (cpu_id.machine) { 569c7168325SHendrik Brueckner case 0x2097: 570c7168325SHendrik Brueckner case 0x2098: 571c7168325SHendrik Brueckner model = cpumcf_z10_pmu_event_attr; 572c7168325SHendrik Brueckner break; 573c7168325SHendrik Brueckner case 0x2817: 574c7168325SHendrik Brueckner case 0x2818: 575c7168325SHendrik Brueckner model = cpumcf_z196_pmu_event_attr; 576c7168325SHendrik Brueckner break; 577c7168325SHendrik Brueckner case 0x2827: 578c7168325SHendrik Brueckner case 0x2828: 579c7168325SHendrik Brueckner model = cpumcf_zec12_pmu_event_attr; 580c7168325SHendrik Brueckner break; 5813fc7acebSHendrik Brueckner case 0x2964: 5823fc7acebSHendrik Brueckner case 0x2965: 5833fc7acebSHendrik Brueckner model = cpumcf_z13_pmu_event_attr; 5843fc7acebSHendrik Brueckner break; 5853593eb94SHendrik Brueckner case 0x3906: 586451239ebSHeiko Carstens case 0x3907: 5873593eb94SHendrik Brueckner model = cpumcf_z14_pmu_event_attr; 5883593eb94SHendrik Brueckner break; 589c7168325SHendrik Brueckner default: 5903fc7acebSHendrik Brueckner model = none; 591c7168325SHendrik Brueckner break; 5920b925159SHeiko Carstens } 593c7168325SHendrik Brueckner 5943593eb94SHendrik Brueckner combined = merge_attr(cfvn, csvn, model); 595c7168325SHendrik Brueckner if (combined) 59666a49784SHendrik Brueckner cpumcf_pmu_events_group.attrs = combined; 59766a49784SHendrik Brueckner return cpumcf_pmu_attr_groups; 598c7168325SHendrik Brueckner } 599