.. | .. |
---|
6 | 6 | |
---|
7 | 7 | #include <linux/slab.h> |
---|
8 | 8 | #include <linux/perf_event.h> |
---|
| 9 | +#include <asm/cpu_mf.h> |
---|
9 | 10 | |
---|
10 | 11 | |
---|
11 | 12 | /* BEGIN: CPUM_CF COUNTER DEFINITIONS =================================== */ |
---|
.. | .. |
---|
30 | 31 | CPUMF_EVENT_ATTR(cf_fvn3, PROBLEM_STATE_INSTRUCTIONS, 0x0021); |
---|
31 | 32 | CPUMF_EVENT_ATTR(cf_fvn3, L1D_DIR_WRITES, 0x0004); |
---|
32 | 33 | CPUMF_EVENT_ATTR(cf_fvn3, L1D_PENALTY_CYCLES, 0x0005); |
---|
33 | | -CPUMF_EVENT_ATTR(cf_svn_generic, PRNG_FUNCTIONS, 0x0040); |
---|
34 | | -CPUMF_EVENT_ATTR(cf_svn_generic, PRNG_CYCLES, 0x0041); |
---|
35 | | -CPUMF_EVENT_ATTR(cf_svn_generic, PRNG_BLOCKED_FUNCTIONS, 0x0042); |
---|
36 | | -CPUMF_EVENT_ATTR(cf_svn_generic, PRNG_BLOCKED_CYCLES, 0x0043); |
---|
37 | | -CPUMF_EVENT_ATTR(cf_svn_generic, SHA_FUNCTIONS, 0x0044); |
---|
38 | | -CPUMF_EVENT_ATTR(cf_svn_generic, SHA_CYCLES, 0x0045); |
---|
39 | | -CPUMF_EVENT_ATTR(cf_svn_generic, SHA_BLOCKED_FUNCTIONS, 0x0046); |
---|
40 | | -CPUMF_EVENT_ATTR(cf_svn_generic, SHA_BLOCKED_CYCLES, 0x0047); |
---|
41 | | -CPUMF_EVENT_ATTR(cf_svn_generic, DEA_FUNCTIONS, 0x0048); |
---|
42 | | -CPUMF_EVENT_ATTR(cf_svn_generic, DEA_CYCLES, 0x0049); |
---|
43 | | -CPUMF_EVENT_ATTR(cf_svn_generic, DEA_BLOCKED_FUNCTIONS, 0x004a); |
---|
44 | | -CPUMF_EVENT_ATTR(cf_svn_generic, DEA_BLOCKED_CYCLES, 0x004b); |
---|
45 | | -CPUMF_EVENT_ATTR(cf_svn_generic, AES_FUNCTIONS, 0x004c); |
---|
46 | | -CPUMF_EVENT_ATTR(cf_svn_generic, AES_CYCLES, 0x004d); |
---|
47 | | -CPUMF_EVENT_ATTR(cf_svn_generic, AES_BLOCKED_FUNCTIONS, 0x004e); |
---|
48 | | -CPUMF_EVENT_ATTR(cf_svn_generic, AES_BLOCKED_CYCLES, 0x004f); |
---|
| 34 | +CPUMF_EVENT_ATTR(cf_svn_12345, PRNG_FUNCTIONS, 0x0040); |
---|
| 35 | +CPUMF_EVENT_ATTR(cf_svn_12345, PRNG_CYCLES, 0x0041); |
---|
| 36 | +CPUMF_EVENT_ATTR(cf_svn_12345, PRNG_BLOCKED_FUNCTIONS, 0x0042); |
---|
| 37 | +CPUMF_EVENT_ATTR(cf_svn_12345, PRNG_BLOCKED_CYCLES, 0x0043); |
---|
| 38 | +CPUMF_EVENT_ATTR(cf_svn_12345, SHA_FUNCTIONS, 0x0044); |
---|
| 39 | +CPUMF_EVENT_ATTR(cf_svn_12345, SHA_CYCLES, 0x0045); |
---|
| 40 | +CPUMF_EVENT_ATTR(cf_svn_12345, SHA_BLOCKED_FUNCTIONS, 0x0046); |
---|
| 41 | +CPUMF_EVENT_ATTR(cf_svn_12345, SHA_BLOCKED_CYCLES, 0x0047); |
---|
| 42 | +CPUMF_EVENT_ATTR(cf_svn_12345, DEA_FUNCTIONS, 0x0048); |
---|
| 43 | +CPUMF_EVENT_ATTR(cf_svn_12345, DEA_CYCLES, 0x0049); |
---|
| 44 | +CPUMF_EVENT_ATTR(cf_svn_12345, DEA_BLOCKED_FUNCTIONS, 0x004a); |
---|
| 45 | +CPUMF_EVENT_ATTR(cf_svn_12345, DEA_BLOCKED_CYCLES, 0x004b); |
---|
| 46 | +CPUMF_EVENT_ATTR(cf_svn_12345, AES_FUNCTIONS, 0x004c); |
---|
| 47 | +CPUMF_EVENT_ATTR(cf_svn_12345, AES_CYCLES, 0x004d); |
---|
| 48 | +CPUMF_EVENT_ATTR(cf_svn_12345, AES_BLOCKED_FUNCTIONS, 0x004e); |
---|
| 49 | +CPUMF_EVENT_ATTR(cf_svn_12345, AES_BLOCKED_CYCLES, 0x004f); |
---|
| 50 | +CPUMF_EVENT_ATTR(cf_svn_6, ECC_FUNCTION_COUNT, 0x0050); |
---|
| 51 | +CPUMF_EVENT_ATTR(cf_svn_6, ECC_CYCLES_COUNT, 0x0051); |
---|
| 52 | +CPUMF_EVENT_ATTR(cf_svn_6, ECC_BLOCKED_FUNCTION_COUNT, 0x0052); |
---|
| 53 | +CPUMF_EVENT_ATTR(cf_svn_6, ECC_BLOCKED_CYCLES_COUNT, 0x0053); |
---|
49 | 54 | CPUMF_EVENT_ATTR(cf_z10, L1I_L2_SOURCED_WRITES, 0x0080); |
---|
50 | 55 | CPUMF_EVENT_ATTR(cf_z10, L1D_L2_SOURCED_WRITES, 0x0081); |
---|
51 | 56 | CPUMF_EVENT_ATTR(cf_z10, L1I_L3_LOCAL_WRITES, 0x0082); |
---|
.. | .. |
---|
233 | 238 | CPUMF_EVENT_ATTR(cf_z14, MT_DIAG_CYCLES_ONE_THR_ACTIVE, 0x01c0); |
---|
234 | 239 | CPUMF_EVENT_ATTR(cf_z14, MT_DIAG_CYCLES_TWO_THR_ACTIVE, 0x01c1); |
---|
235 | 240 | |
---|
| 241 | +CPUMF_EVENT_ATTR(cf_z15, L1D_RO_EXCL_WRITES, 0x0080); |
---|
| 242 | +CPUMF_EVENT_ATTR(cf_z15, DTLB2_WRITES, 0x0081); |
---|
| 243 | +CPUMF_EVENT_ATTR(cf_z15, DTLB2_MISSES, 0x0082); |
---|
| 244 | +CPUMF_EVENT_ATTR(cf_z15, DTLB2_HPAGE_WRITES, 0x0083); |
---|
| 245 | +CPUMF_EVENT_ATTR(cf_z15, DTLB2_GPAGE_WRITES, 0x0084); |
---|
| 246 | +CPUMF_EVENT_ATTR(cf_z15, L1D_L2D_SOURCED_WRITES, 0x0085); |
---|
| 247 | +CPUMF_EVENT_ATTR(cf_z15, ITLB2_WRITES, 0x0086); |
---|
| 248 | +CPUMF_EVENT_ATTR(cf_z15, ITLB2_MISSES, 0x0087); |
---|
| 249 | +CPUMF_EVENT_ATTR(cf_z15, L1I_L2I_SOURCED_WRITES, 0x0088); |
---|
| 250 | +CPUMF_EVENT_ATTR(cf_z15, TLB2_PTE_WRITES, 0x0089); |
---|
| 251 | +CPUMF_EVENT_ATTR(cf_z15, TLB2_CRSTE_WRITES, 0x008a); |
---|
| 252 | +CPUMF_EVENT_ATTR(cf_z15, TLB2_ENGINES_BUSY, 0x008b); |
---|
| 253 | +CPUMF_EVENT_ATTR(cf_z15, TX_C_TEND, 0x008c); |
---|
| 254 | +CPUMF_EVENT_ATTR(cf_z15, TX_NC_TEND, 0x008d); |
---|
| 255 | +CPUMF_EVENT_ATTR(cf_z15, L1C_TLB2_MISSES, 0x008f); |
---|
| 256 | +CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES, 0x0090); |
---|
| 257 | +CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_MEMORY_SOURCED_WRITES, 0x0091); |
---|
| 258 | +CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_IV, 0x0092); |
---|
| 259 | +CPUMF_EVENT_ATTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES, 0x0093); |
---|
| 260 | +CPUMF_EVENT_ATTR(cf_z15, L1D_ONCLUSTER_MEMORY_SOURCED_WRITES, 0x0094); |
---|
| 261 | +CPUMF_EVENT_ATTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES_IV, 0x0095); |
---|
| 262 | +CPUMF_EVENT_ATTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES, 0x0096); |
---|
| 263 | +CPUMF_EVENT_ATTR(cf_z15, L1D_OFFCLUSTER_MEMORY_SOURCED_WRITES, 0x0097); |
---|
| 264 | +CPUMF_EVENT_ATTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES_IV, 0x0098); |
---|
| 265 | +CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES, 0x0099); |
---|
| 266 | +CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_MEMORY_SOURCED_WRITES, 0x009a); |
---|
| 267 | +CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES_IV, 0x009b); |
---|
| 268 | +CPUMF_EVENT_ATTR(cf_z15, L1D_ONDRAWER_L4_SOURCED_WRITES, 0x009c); |
---|
| 269 | +CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_L4_SOURCED_WRITES, 0x009d); |
---|
| 270 | +CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_RO, 0x009e); |
---|
| 271 | +CPUMF_EVENT_ATTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES, 0x00a2); |
---|
| 272 | +CPUMF_EVENT_ATTR(cf_z15, L1I_ONCHIP_MEMORY_SOURCED_WRITES, 0x00a3); |
---|
| 273 | +CPUMF_EVENT_ATTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES_IV, 0x00a4); |
---|
| 274 | +CPUMF_EVENT_ATTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES, 0x00a5); |
---|
| 275 | +CPUMF_EVENT_ATTR(cf_z15, L1I_ONCLUSTER_MEMORY_SOURCED_WRITES, 0x00a6); |
---|
| 276 | +CPUMF_EVENT_ATTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES_IV, 0x00a7); |
---|
| 277 | +CPUMF_EVENT_ATTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES, 0x00a8); |
---|
| 278 | +CPUMF_EVENT_ATTR(cf_z15, L1I_OFFCLUSTER_MEMORY_SOURCED_WRITES, 0x00a9); |
---|
| 279 | +CPUMF_EVENT_ATTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES_IV, 0x00aa); |
---|
| 280 | +CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES, 0x00ab); |
---|
| 281 | +CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_MEMORY_SOURCED_WRITES, 0x00ac); |
---|
| 282 | +CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES_IV, 0x00ad); |
---|
| 283 | +CPUMF_EVENT_ATTR(cf_z15, L1I_ONDRAWER_L4_SOURCED_WRITES, 0x00ae); |
---|
| 284 | +CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_L4_SOURCED_WRITES, 0x00af); |
---|
| 285 | +CPUMF_EVENT_ATTR(cf_z15, BCD_DFP_EXECUTION_SLOTS, 0x00e0); |
---|
| 286 | +CPUMF_EVENT_ATTR(cf_z15, VX_BCD_EXECUTION_SLOTS, 0x00e1); |
---|
| 287 | +CPUMF_EVENT_ATTR(cf_z15, DECIMAL_INSTRUCTIONS, 0x00e2); |
---|
| 288 | +CPUMF_EVENT_ATTR(cf_z15, LAST_HOST_TRANSLATIONS, 0x00e8); |
---|
| 289 | +CPUMF_EVENT_ATTR(cf_z15, TX_NC_TABORT, 0x00f3); |
---|
| 290 | +CPUMF_EVENT_ATTR(cf_z15, TX_C_TABORT_NO_SPECIAL, 0x00f4); |
---|
| 291 | +CPUMF_EVENT_ATTR(cf_z15, TX_C_TABORT_SPECIAL, 0x00f5); |
---|
| 292 | +CPUMF_EVENT_ATTR(cf_z15, DFLT_ACCESS, 0x00f7); |
---|
| 293 | +CPUMF_EVENT_ATTR(cf_z15, DFLT_CYCLES, 0x00fc); |
---|
| 294 | +CPUMF_EVENT_ATTR(cf_z15, DFLT_CC, 0x00108); |
---|
| 295 | +CPUMF_EVENT_ATTR(cf_z15, DFLT_CCFINISH, 0x00109); |
---|
| 296 | +CPUMF_EVENT_ATTR(cf_z15, MT_DIAG_CYCLES_ONE_THR_ACTIVE, 0x01c0); |
---|
| 297 | +CPUMF_EVENT_ATTR(cf_z15, MT_DIAG_CYCLES_TWO_THR_ACTIVE, 0x01c1); |
---|
| 298 | + |
---|
236 | 299 | static struct attribute *cpumcf_fvn1_pmu_event_attr[] __initdata = { |
---|
237 | 300 | CPUMF_EVENT_PTR(cf_fvn1, CPU_CYCLES), |
---|
238 | 301 | CPUMF_EVENT_PTR(cf_fvn1, INSTRUCTIONS), |
---|
.. | .. |
---|
261 | 324 | NULL, |
---|
262 | 325 | }; |
---|
263 | 326 | |
---|
264 | | -static struct attribute *cpumcf_svn_generic_pmu_event_attr[] __initdata = { |
---|
265 | | - CPUMF_EVENT_PTR(cf_svn_generic, PRNG_FUNCTIONS), |
---|
266 | | - CPUMF_EVENT_PTR(cf_svn_generic, PRNG_CYCLES), |
---|
267 | | - CPUMF_EVENT_PTR(cf_svn_generic, PRNG_BLOCKED_FUNCTIONS), |
---|
268 | | - CPUMF_EVENT_PTR(cf_svn_generic, PRNG_BLOCKED_CYCLES), |
---|
269 | | - CPUMF_EVENT_PTR(cf_svn_generic, SHA_FUNCTIONS), |
---|
270 | | - CPUMF_EVENT_PTR(cf_svn_generic, SHA_CYCLES), |
---|
271 | | - CPUMF_EVENT_PTR(cf_svn_generic, SHA_BLOCKED_FUNCTIONS), |
---|
272 | | - CPUMF_EVENT_PTR(cf_svn_generic, SHA_BLOCKED_CYCLES), |
---|
273 | | - CPUMF_EVENT_PTR(cf_svn_generic, DEA_FUNCTIONS), |
---|
274 | | - CPUMF_EVENT_PTR(cf_svn_generic, DEA_CYCLES), |
---|
275 | | - CPUMF_EVENT_PTR(cf_svn_generic, DEA_BLOCKED_FUNCTIONS), |
---|
276 | | - CPUMF_EVENT_PTR(cf_svn_generic, DEA_BLOCKED_CYCLES), |
---|
277 | | - CPUMF_EVENT_PTR(cf_svn_generic, AES_FUNCTIONS), |
---|
278 | | - CPUMF_EVENT_PTR(cf_svn_generic, AES_CYCLES), |
---|
279 | | - CPUMF_EVENT_PTR(cf_svn_generic, AES_BLOCKED_FUNCTIONS), |
---|
280 | | - CPUMF_EVENT_PTR(cf_svn_generic, AES_BLOCKED_CYCLES), |
---|
| 327 | +static struct attribute *cpumcf_svn_12345_pmu_event_attr[] __initdata = { |
---|
| 328 | + CPUMF_EVENT_PTR(cf_svn_12345, PRNG_FUNCTIONS), |
---|
| 329 | + CPUMF_EVENT_PTR(cf_svn_12345, PRNG_CYCLES), |
---|
| 330 | + CPUMF_EVENT_PTR(cf_svn_12345, PRNG_BLOCKED_FUNCTIONS), |
---|
| 331 | + CPUMF_EVENT_PTR(cf_svn_12345, PRNG_BLOCKED_CYCLES), |
---|
| 332 | + CPUMF_EVENT_PTR(cf_svn_12345, SHA_FUNCTIONS), |
---|
| 333 | + CPUMF_EVENT_PTR(cf_svn_12345, SHA_CYCLES), |
---|
| 334 | + CPUMF_EVENT_PTR(cf_svn_12345, SHA_BLOCKED_FUNCTIONS), |
---|
| 335 | + CPUMF_EVENT_PTR(cf_svn_12345, SHA_BLOCKED_CYCLES), |
---|
| 336 | + CPUMF_EVENT_PTR(cf_svn_12345, DEA_FUNCTIONS), |
---|
| 337 | + CPUMF_EVENT_PTR(cf_svn_12345, DEA_CYCLES), |
---|
| 338 | + CPUMF_EVENT_PTR(cf_svn_12345, DEA_BLOCKED_FUNCTIONS), |
---|
| 339 | + CPUMF_EVENT_PTR(cf_svn_12345, DEA_BLOCKED_CYCLES), |
---|
| 340 | + CPUMF_EVENT_PTR(cf_svn_12345, AES_FUNCTIONS), |
---|
| 341 | + CPUMF_EVENT_PTR(cf_svn_12345, AES_CYCLES), |
---|
| 342 | + CPUMF_EVENT_PTR(cf_svn_12345, AES_BLOCKED_FUNCTIONS), |
---|
| 343 | + CPUMF_EVENT_PTR(cf_svn_12345, AES_BLOCKED_CYCLES), |
---|
| 344 | + NULL, |
---|
| 345 | +}; |
---|
| 346 | + |
---|
| 347 | +static struct attribute *cpumcf_svn_6_pmu_event_attr[] __initdata = { |
---|
| 348 | + CPUMF_EVENT_PTR(cf_svn_12345, PRNG_FUNCTIONS), |
---|
| 349 | + CPUMF_EVENT_PTR(cf_svn_12345, PRNG_CYCLES), |
---|
| 350 | + CPUMF_EVENT_PTR(cf_svn_12345, PRNG_BLOCKED_FUNCTIONS), |
---|
| 351 | + CPUMF_EVENT_PTR(cf_svn_12345, PRNG_BLOCKED_CYCLES), |
---|
| 352 | + CPUMF_EVENT_PTR(cf_svn_12345, SHA_FUNCTIONS), |
---|
| 353 | + CPUMF_EVENT_PTR(cf_svn_12345, SHA_CYCLES), |
---|
| 354 | + CPUMF_EVENT_PTR(cf_svn_12345, SHA_BLOCKED_FUNCTIONS), |
---|
| 355 | + CPUMF_EVENT_PTR(cf_svn_12345, SHA_BLOCKED_CYCLES), |
---|
| 356 | + CPUMF_EVENT_PTR(cf_svn_12345, DEA_FUNCTIONS), |
---|
| 357 | + CPUMF_EVENT_PTR(cf_svn_12345, DEA_CYCLES), |
---|
| 358 | + CPUMF_EVENT_PTR(cf_svn_12345, DEA_BLOCKED_FUNCTIONS), |
---|
| 359 | + CPUMF_EVENT_PTR(cf_svn_12345, DEA_BLOCKED_CYCLES), |
---|
| 360 | + CPUMF_EVENT_PTR(cf_svn_12345, AES_FUNCTIONS), |
---|
| 361 | + CPUMF_EVENT_PTR(cf_svn_12345, AES_CYCLES), |
---|
| 362 | + CPUMF_EVENT_PTR(cf_svn_12345, AES_BLOCKED_FUNCTIONS), |
---|
| 363 | + CPUMF_EVENT_PTR(cf_svn_12345, AES_BLOCKED_CYCLES), |
---|
| 364 | + CPUMF_EVENT_PTR(cf_svn_6, ECC_FUNCTION_COUNT), |
---|
| 365 | + CPUMF_EVENT_PTR(cf_svn_6, ECC_CYCLES_COUNT), |
---|
| 366 | + CPUMF_EVENT_PTR(cf_svn_6, ECC_BLOCKED_FUNCTION_COUNT), |
---|
| 367 | + CPUMF_EVENT_PTR(cf_svn_6, ECC_BLOCKED_CYCLES_COUNT), |
---|
281 | 368 | NULL, |
---|
282 | 369 | }; |
---|
283 | 370 | |
---|
.. | .. |
---|
487 | 574 | NULL, |
---|
488 | 575 | }; |
---|
489 | 576 | |
---|
| 577 | +static struct attribute *cpumcf_z15_pmu_event_attr[] __initdata = { |
---|
| 578 | + CPUMF_EVENT_PTR(cf_z15, L1D_RO_EXCL_WRITES), |
---|
| 579 | + CPUMF_EVENT_PTR(cf_z15, DTLB2_WRITES), |
---|
| 580 | + CPUMF_EVENT_PTR(cf_z15, DTLB2_MISSES), |
---|
| 581 | + CPUMF_EVENT_PTR(cf_z15, DTLB2_HPAGE_WRITES), |
---|
| 582 | + CPUMF_EVENT_PTR(cf_z15, DTLB2_GPAGE_WRITES), |
---|
| 583 | + CPUMF_EVENT_PTR(cf_z15, L1D_L2D_SOURCED_WRITES), |
---|
| 584 | + CPUMF_EVENT_PTR(cf_z15, ITLB2_WRITES), |
---|
| 585 | + CPUMF_EVENT_PTR(cf_z15, ITLB2_MISSES), |
---|
| 586 | + CPUMF_EVENT_PTR(cf_z15, L1I_L2I_SOURCED_WRITES), |
---|
| 587 | + CPUMF_EVENT_PTR(cf_z15, TLB2_PTE_WRITES), |
---|
| 588 | + CPUMF_EVENT_PTR(cf_z15, TLB2_CRSTE_WRITES), |
---|
| 589 | + CPUMF_EVENT_PTR(cf_z15, TLB2_ENGINES_BUSY), |
---|
| 590 | + CPUMF_EVENT_PTR(cf_z15, TX_C_TEND), |
---|
| 591 | + CPUMF_EVENT_PTR(cf_z15, TX_NC_TEND), |
---|
| 592 | + CPUMF_EVENT_PTR(cf_z15, L1C_TLB2_MISSES), |
---|
| 593 | + CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES), |
---|
| 594 | + CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_MEMORY_SOURCED_WRITES), |
---|
| 595 | + CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_IV), |
---|
| 596 | + CPUMF_EVENT_PTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES), |
---|
| 597 | + CPUMF_EVENT_PTR(cf_z15, L1D_ONCLUSTER_MEMORY_SOURCED_WRITES), |
---|
| 598 | + CPUMF_EVENT_PTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES_IV), |
---|
| 599 | + CPUMF_EVENT_PTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES), |
---|
| 600 | + CPUMF_EVENT_PTR(cf_z15, L1D_OFFCLUSTER_MEMORY_SOURCED_WRITES), |
---|
| 601 | + CPUMF_EVENT_PTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES_IV), |
---|
| 602 | + CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES), |
---|
| 603 | + CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_MEMORY_SOURCED_WRITES), |
---|
| 604 | + CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES_IV), |
---|
| 605 | + CPUMF_EVENT_PTR(cf_z15, L1D_ONDRAWER_L4_SOURCED_WRITES), |
---|
| 606 | + CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_L4_SOURCED_WRITES), |
---|
| 607 | + CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_RO), |
---|
| 608 | + CPUMF_EVENT_PTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES), |
---|
| 609 | + CPUMF_EVENT_PTR(cf_z15, L1I_ONCHIP_MEMORY_SOURCED_WRITES), |
---|
| 610 | + CPUMF_EVENT_PTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES_IV), |
---|
| 611 | + CPUMF_EVENT_PTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES), |
---|
| 612 | + CPUMF_EVENT_PTR(cf_z15, L1I_ONCLUSTER_MEMORY_SOURCED_WRITES), |
---|
| 613 | + CPUMF_EVENT_PTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES_IV), |
---|
| 614 | + CPUMF_EVENT_PTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES), |
---|
| 615 | + CPUMF_EVENT_PTR(cf_z15, L1I_OFFCLUSTER_MEMORY_SOURCED_WRITES), |
---|
| 616 | + CPUMF_EVENT_PTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES_IV), |
---|
| 617 | + CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES), |
---|
| 618 | + CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_MEMORY_SOURCED_WRITES), |
---|
| 619 | + CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES_IV), |
---|
| 620 | + CPUMF_EVENT_PTR(cf_z15, L1I_ONDRAWER_L4_SOURCED_WRITES), |
---|
| 621 | + CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_L4_SOURCED_WRITES), |
---|
| 622 | + CPUMF_EVENT_PTR(cf_z15, BCD_DFP_EXECUTION_SLOTS), |
---|
| 623 | + CPUMF_EVENT_PTR(cf_z15, VX_BCD_EXECUTION_SLOTS), |
---|
| 624 | + CPUMF_EVENT_PTR(cf_z15, DECIMAL_INSTRUCTIONS), |
---|
| 625 | + CPUMF_EVENT_PTR(cf_z15, LAST_HOST_TRANSLATIONS), |
---|
| 626 | + CPUMF_EVENT_PTR(cf_z15, TX_NC_TABORT), |
---|
| 627 | + CPUMF_EVENT_PTR(cf_z15, TX_C_TABORT_NO_SPECIAL), |
---|
| 628 | + CPUMF_EVENT_PTR(cf_z15, TX_C_TABORT_SPECIAL), |
---|
| 629 | + CPUMF_EVENT_PTR(cf_z15, DFLT_ACCESS), |
---|
| 630 | + CPUMF_EVENT_PTR(cf_z15, DFLT_CYCLES), |
---|
| 631 | + CPUMF_EVENT_PTR(cf_z15, DFLT_CC), |
---|
| 632 | + CPUMF_EVENT_PTR(cf_z15, DFLT_CCFINISH), |
---|
| 633 | + CPUMF_EVENT_PTR(cf_z15, MT_DIAG_CYCLES_ONE_THR_ACTIVE), |
---|
| 634 | + CPUMF_EVENT_PTR(cf_z15, MT_DIAG_CYCLES_TWO_THR_ACTIVE), |
---|
| 635 | + NULL, |
---|
| 636 | +}; |
---|
| 637 | + |
---|
490 | 638 | /* END: CPUM_CF COUNTER DEFINITIONS ===================================== */ |
---|
491 | 639 | |
---|
492 | 640 | static struct attribute_group cpumcf_pmu_events_group = { |
---|
.. | .. |
---|
561 | 709 | default: |
---|
562 | 710 | cfvn = none; |
---|
563 | 711 | } |
---|
564 | | - csvn = cpumcf_svn_generic_pmu_event_attr; |
---|
| 712 | + |
---|
| 713 | + /* Determine version specific crypto set */ |
---|
| 714 | + switch (ci.csvn) { |
---|
| 715 | + case 1 ... 5: |
---|
| 716 | + csvn = cpumcf_svn_12345_pmu_event_attr; |
---|
| 717 | + break; |
---|
| 718 | + case 6: |
---|
| 719 | + csvn = cpumcf_svn_6_pmu_event_attr; |
---|
| 720 | + break; |
---|
| 721 | + default: |
---|
| 722 | + csvn = none; |
---|
| 723 | + } |
---|
565 | 724 | |
---|
566 | 725 | /* Determine model-specific counter set(s) */ |
---|
567 | 726 | get_cpu_id(&cpu_id); |
---|
.. | .. |
---|
586 | 745 | case 0x3907: |
---|
587 | 746 | model = cpumcf_z14_pmu_event_attr; |
---|
588 | 747 | break; |
---|
| 748 | + case 0x8561: |
---|
| 749 | + case 0x8562: |
---|
| 750 | + model = cpumcf_z15_pmu_event_attr; |
---|
| 751 | + break; |
---|
589 | 752 | default: |
---|
590 | 753 | model = none; |
---|
591 | 754 | break; |
---|