Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf vendor events powerpc: Update POWER9 events

The POWER9 hardware has dropped support for several events, added
a few new events and changed the category for a couple of events.

Update the POWER9 events in Linux to reflect these changes.

Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/r/20171108201938.GA10985@us.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Sukadev Bhattiprolu and committed by
Arnaldo Carvalho de Melo
e795dd42 fa48c892

+83 -243
-5
tools/perf/pmu-events/arch/powerpc/power9/cache.json
··· 125 125 "BriefDescription": "Finish stall because the NTF instruction was a larx waiting to be satisfied" 126 126 }, 127 127 {, 128 - "EventCode": "0x3006C", 129 - "EventName": "PM_RUN_CYC_SMT2_MODE", 130 - "BriefDescription": "Cycles in which this thread's run latch is set and the core is in SMT2 mode" 131 - }, 132 - {, 133 128 "EventCode": "0x1C058", 134 129 "EventName": "PM_DTLB_MISS_16G", 135 130 "BriefDescription": "Data TLB Miss page size 16G"
-5
tools/perf/pmu-events/arch/powerpc/power9/frontend.json
··· 1 1 [ 2 2 {, 3 - "EventCode": "0x3E15C", 4 - "EventName": "PM_MRK_L2_TM_ST_ABORT_SISTER", 5 - "BriefDescription": "TM marked store abort for this thread" 6 - }, 7 - {, 8 3 "EventCode": "0x25044", 9 4 "EventName": "PM_IPTEG_FROM_L31_MOD", 10 5 "BriefDescription": "A Page Table Entry was loaded into the TLB with Modified (M) data from another core's L3 on the same chip due to a instruction side request"
+5 -20
tools/perf/pmu-events/arch/powerpc/power9/marked.json
··· 1 1 [ 2 2 {, 3 - "EventCode": "0x3C052", 4 - "EventName": "PM_DATA_SYS_PUMP_MPRED", 5 - "BriefDescription": "Final Pump Scope (system) mispredicted. Either the original scope was too small (Chip/Group) or the original scope was System and it should have been smaller. Counts for a demand load" 6 - }, 7 - {, 8 3 "EventCode": "0x3013E", 9 4 "EventName": "PM_MRK_STALL_CMPLU_CYC", 10 5 "BriefDescription": "Number of cycles the marked instruction is experiencing a stall while it is next to complete (NTC)" ··· 250 255 "BriefDescription": "A Page Directory Entry was reloaded to a level 1 page walk cache from the core's L3 data cache" 251 256 }, 252 257 {, 258 + "EventCode": "0x3C052", 259 + "EventName": "PM_DATA_SYS_PUMP_MPRED", 260 + "BriefDescription": "Final Pump Scope (system) mispredicted. Either the original scope was too small (Chip/Group) or the original scope was System and it should have been smaller. Counts for a demand load" 261 + }, 262 + {, 253 263 "EventCode": "0x4D142", 254 264 "EventName": "PM_MRK_DATA_FROM_L3", 255 265 "BriefDescription": "The processor's data cache was reloaded from local core's L3 due to a marked load" ··· 433 433 "EventCode": "0x400FC", 434 434 "EventName": "PM_ITLB_MISS", 435 435 "BriefDescription": "ITLB Reloaded. Counts 1 per ITLB miss for HPT but multiple for radix depending on number of levels traveresed" 436 - }, 437 - {, 438 - "EventCode": "0x2D024", 439 - "EventName": "PM_RADIX_PWC_L2_HIT", 440 - "BriefDescription": "A radix translation attempt missed in the TLB but hit on both the first and second levels of page walk cache." 441 - }, 442 - {, 443 - "EventCode": "0x3F056", 444 - "EventName": "PM_RADIX_PWC_L3_HIT", 445 - "BriefDescription": "A radix translation attempt missed in the TLB but hit on the first, second, and third levels of page walk cache." 446 - }, 447 - {, 448 - "EventCode": "0x4E014", 449 - "EventName": "PM_TM_TX_PASS_RUN_INST", 450 - "BriefDescription": "Run instructions spent in successful transactions" 451 436 }, 452 437 {, 453 438 "EventCode": "0x1E044",
+72 -202
tools/perf/pmu-events/arch/powerpc/power9/other.json
··· 80 80 "BriefDescription": "A radix translation attempt missed in the TLB and all levels of page walk cache." 81 81 }, 82 82 {, 83 + "EventCode": "0x26882", 84 + "EventName": "PM_L2_DC_INV", 85 + "BriefDescription": "D-cache invalidates sent over the reload bus to the core" 86 + }, 87 + {, 83 88 "EventCode": "0x24048", 84 89 "EventName": "PM_INST_FROM_LMEM", 85 90 "BriefDescription": "The processor's Instruction cache was reloaded from the local chip's Memory due to an instruction fetch (not prefetch)" ··· 98 93 "EventCode": "0x2E052", 99 94 "EventName": "PM_TM_PASSED", 100 95 "BriefDescription": "Number of TM transactions that passed" 101 - }, 102 - {, 103 - "EventCode": "0xD1A0", 104 - "EventName": "PM_MRK_LSU_FLUSH_LHS", 105 - "BriefDescription": "Effective Address alias flush : no EA match but Real Address match. If the data has not yet been returned for this load, the instruction will just be rejected, but if it has returned data, it will be flushed" 106 96 }, 107 97 {, 108 98 "EventCode": "0xF088", ··· 127 127 {, 128 128 "EventCode": "0xD08C", 129 129 "EventName": "PM_LSU2_LDMX_FIN", 130 - "BriefDescription": "New P9 instruction LDMX. The definition of this new PMU event is (from the ldmx RFC02491): The thread has executed an ldmx instruction that accessed a doubleword that contains an effective address within an enabled section of the Load Monitored region. This event, therefore, should not occur if the FSCR has disabled the load monitored facility (FSCR[52]) or disabled the EBB facility (FSCR[56])" 130 + "BriefDescription": "New P9 instruction LDMX. The definition of this new PMU event is (from the ldmx RFC02491): The thread has executed an ldmx instruction that accessed a doubleword that contains an effective address within an enabled section of the Load Monitored region. This event, therefore, should not occur if the FSCR has disabled the load monitored facility (FSCR[52]) or disabled the EBB facility (FSCR[56])." 131 131 }, 132 132 {, 133 133 "EventCode": "0x300F8", ··· 205 205 "BriefDescription": "Duration in cycles to reload with Modified (M) data from another core's ECO L3 on the same chip due to a marked load" 206 206 }, 207 207 {, 208 - "EventCode": "0xF0B4", 209 - "EventName": "PM_DC_PREF_CONS_ALLOC", 210 - "BriefDescription": "Prefetch stream allocated in the conservative phase by either the hardware prefetch mechanism or software prefetch" 211 - }, 212 - {, 213 208 "EventCode": "0xF894", 214 209 "EventName": "PM_LSU3_L1_CAM_CANCEL", 215 210 "BriefDescription": "ls3 l1 tm cam cancel" ··· 215 220 "BriefDescription": "Dispatch Flush: TLBIE" 216 221 }, 217 222 {, 218 - "EventCode": "0xD1A4", 219 - "EventName": "PM_MRK_LSU_FLUSH_SAO", 220 - "BriefDescription": "A load-hit-load condition with Strong Address Ordering will have address compare disabled and flush" 221 - }, 222 - {, 223 223 "EventCode": "0x4E11E", 224 224 "EventName": "PM_MRK_DATA_FROM_DMEM_CYC", 225 225 "BriefDescription": "Duration in cycles to reload from another chip's memory on the same Node or Group (Distant) due to a marked load" 226 - }, 227 - {, 228 - "EventCode": "0x5894", 229 - "EventName": "PM_LWSYNC", 230 - "BriefDescription": "Lwsync instruction decoded and transferred" 231 226 }, 232 227 {, 233 228 "EventCode": "0x14156", ··· 228 243 "EventCode": "0x468A6", 229 244 "EventName": "PM_RD_CLEARING_SC", 230 245 "BriefDescription": "Read clearing SC" 231 - }, 232 - {, 233 - "EventCode": "0x50A0", 234 - "EventName": "PM_HWSYNC", 235 - "BriefDescription": "Hwsync instruction decoded and transferred" 236 246 }, 237 247 {, 238 248 "EventCode": "0x168B0", ··· 245 265 "BriefDescription": "The processor's data cache was reloaded from local core's L2 with load hit store conflict due to a marked load" 246 266 }, 247 267 {, 268 + "EventCode": "0x468AE", 269 + "EventName": "PM_L3_P3_CO_RTY", 270 + "BriefDescription": "L3 CO received retry port 3 (memory only), every retry counted" 271 + }, 272 + {, 248 273 "EventCode": "0x460A8", 249 274 "EventName": "PM_SN_HIT", 250 275 "BriefDescription": "Any port snooper hit L3. Up to 4 can happen in a cycle but we only count 1" ··· 263 278 "EventCode": "0xF0A4", 264 279 "EventName": "PM_DC_PREF_HW_ALLOC", 265 280 "BriefDescription": "Prefetch stream allocated by the hardware prefetch mechanism" 266 - }, 267 - {, 268 - "EventCode": "0xF0BC", 269 - "EventName": "PM_LS2_UNALIGNED_ST", 270 - "BriefDescription": "Store instructions whose data crosses a double-word boundary, which causes it to require an additional slice than than what normally would be required of the Store of that size. If the Store wraps from slice 3 to slice 0, thee is an additional 3-cycle penalty" 271 281 }, 272 282 {, 273 283 "EventCode": "0xD0AC", ··· 360 380 "BriefDescription": "Cycles in which this thread's run latch is set and the core is in SMT4 mode" 361 381 }, 362 382 {, 363 - "EventCode": "0x5088", 364 - "EventName": "PM_DECODE_FUSION_OP_PRESERV", 365 - "BriefDescription": "Destructive op operand preservation" 366 - }, 367 - {, 368 383 "EventCode": "0x1D14E", 369 384 "EventName": "PM_MRK_DATA_FROM_OFF_CHIP_CACHE_CYC", 370 385 "BriefDescription": "Duration in cycles to reload either shared or modified data from another core's L2/L3 on a different chip (remote or distant) due to a marked load" 371 - }, 372 - {, 373 - "EventCode": "0x509C", 374 - "EventName": "PM_FORCED_NOP", 375 - "BriefDescription": "Instruction was forced to execute as a nop because it was found to behave like a nop (have no effect) at decode time" 376 - }, 377 - {, 378 - "EventCode": "0xC098", 379 - "EventName": "PM_LS2_UNALIGNED_LD", 380 - "BriefDescription": "Load instructions whose data crosses a double-word boundary, which causes it to require an additional slice than than what normally would be required of the load of that size. If the load wraps from slice 3 to slice 0, thee is an additional 3-cycle penalty" 381 386 }, 382 387 {, 383 388 "EventCode": "0x20058", ··· 398 433 "EventCode": "0xF888", 399 434 "EventName": "PM_LSU1_STORE_REJECT", 400 435 "BriefDescription": "All internal store rejects cause the instruction to go back to the SRQ and go to sleep until woken up to try again after the condition has been met" 401 - }, 402 - {, 403 - "EventCode": "0x4505E", 404 - "EventName": "PM_FLOP_CMPL", 405 - "BriefDescription": "Floating Point Operation Finished" 406 436 }, 407 437 {, 408 438 "EventCode": "0x1D144", ··· 440 480 "BriefDescription": "XL-form branch was mispredicted due to the predicted target address missing from EAT. The EAT forces a mispredict in this case since there is no predicated target to validate. This is a rare case that may occur when the EAT is full and a branch is issued" 441 481 }, 442 482 {, 443 - "EventCode": "0xC094", 444 - "EventName": "PM_LS0_UNALIGNED_LD", 445 - "BriefDescription": "Load instructions whose data crosses a double-word boundary, which causes it to require an additional slice than than what normally would be required of the load of that size. If the load wraps from slice 3 to slice 0, thee is an additional 3-cycle penalty" 446 - }, 447 - {, 448 - "EventCode": "0xF8BC", 449 - "EventName": "PM_LS3_UNALIGNED_ST", 450 - "BriefDescription": "Store instructions whose data crosses a double-word boundary, which causes it to require an additional slice than than what normally would be required of the Store of that size. If the Store wraps from slice 3 to slice 0, thee is an additional 3-cycle penalty" 483 + "EventCode": "0x460AE", 484 + "EventName": "PM_L3_P2_CO_RTY", 485 + "BriefDescription": "L3 CO received retry port 2 (memory only), every retry counted" 451 486 }, 452 487 {, 453 488 "EventCode": "0x58B0", ··· 460 505 "BriefDescription": "TM Store (fav or non-fav) ran into conflict (failed)" 461 506 }, 462 507 {, 463 - "EventCode": "0xD998", 464 - "EventName": "PM_MRK_LSU_FLUSH_EMSH", 465 - "BriefDescription": "An ERAT miss was detected after a set-p hit. Erat tracker indicates fail due to tlbmiss and the instruction gets flushed because the instruction was working on the wrong address" 466 - }, 467 - {, 468 508 "EventCode": "0xF8A0", 469 509 "EventName": "PM_NON_DATA_STORE", 470 510 "BriefDescription": "All ops that drain from s2q to L2 and contain no data" ··· 475 525 "BriefDescription": "Unconditional Branch Completed. HW branch prediction was not used for this branch. This can be an I-form branch, a B-form branch with BO-field set to branch always, or a B-form branch which was covenrted to a Resolve." 476 526 }, 477 527 {, 478 - "EventCode": "0x1F056", 479 - "EventName": "PM_RADIX_PWC_L1_HIT", 480 - "BriefDescription": "A radix translation attempt missed in the TLB and only the first level page walk cache was a hit." 481 - }, 482 - {, 483 528 "EventCode": "0xF8A8", 484 529 "EventName": "PM_DC_PREF_FUZZY_CONF", 485 530 "BriefDescription": "A demand load referenced a line in an active fuzzy prefetch stream. The stream could have been allocated through the hardware prefetch mechanism or through software.Fuzzy stream confirm (out of order effects, or pf cant keep up)" ··· 488 543 "EventCode": "0xE0A0", 489 544 "EventName": "PM_LSU2_TM_L1_MISS", 490 545 "BriefDescription": "Load tm L1 miss" 546 + }, 547 + {, 548 + "EventCode": "0xC880", 549 + "EventName": "PM_LS1_LD_VECTOR_FIN", 550 + "BriefDescription": "" 491 551 }, 492 552 {, 493 553 "EventCode": "0x2894", ··· 515 565 "BriefDescription": "Marked derat reload (miss) for any page size" 516 566 }, 517 567 {, 518 - "EventCode": "0x160A0", 519 - "EventName": "PM_L3_PF_MISS_L3", 520 - "BriefDescription": "L3 PF missed in L3" 521 - }, 522 - {, 523 568 "EventCode": "0x1C04A", 524 569 "EventName": "PM_DATA_FROM_RL2L3_SHR", 525 570 "BriefDescription": "The processor's data cache was reloaded with Shared (S) data from another chip's L2 or L3 on the same Node or Group (Remote), as this chip due to a demand load" 526 - }, 527 - {, 528 - "EventCode": "0xD99C", 529 - "EventName": "PM_MRK_LSU_FLUSH_UE", 530 - "BriefDescription": "Correctable ECC error on reload data, reported at critical data forward time" 531 571 }, 532 572 {, 533 573 "EventCode": "0x268B0", ··· 568 628 "EventCode": "0xE0A4", 569 629 "EventName": "PM_TMA_REQ_L2", 570 630 "BriefDescription": "addrs only req to L2 only on the first one,Indication that Load footprint is not expanding" 571 - }, 572 - {, 573 - "EventCode": "0x5884", 574 - "EventName": "PM_DECODE_LANES_NOT_AVAIL", 575 - "BriefDescription": "Decode has something to transmit but dispatch lanes are not available" 576 631 }, 577 632 {, 578 633 "EventCode": "0x3C042", ··· 625 690 "BriefDescription": "False LHS match detected" 626 691 }, 627 692 {, 628 - "EventCode": "0xD9A4", 629 - "EventName": "PM_MRK_LSU_FLUSH_LARX_STCX", 630 - "BriefDescription": "A larx is flushed because an older larx has an LMQ reservation for the same thread. A stcx is flushed because an older stcx is in the LMQ. The flush happens when the older larx/stcx relaunches" 693 + "EventCode": "0xF0B0", 694 + "EventName": "PM_L3_LD_PREF", 695 + "BriefDescription": "L3 load prefetch, sourced from a hardware or software stream, was sent to the nest" 631 696 }, 632 697 {, 633 698 "EventCode": "0x4D012", ··· 650 715 "BriefDescription": "All successful Ld/St dispatches for this thread that were an L2 miss (excludes i_l2mru_tch_reqs)" 651 716 }, 652 717 {, 653 - "EventCode": "0xF8B8", 654 - "EventName": "PM_LS1_UNALIGNED_ST", 655 - "BriefDescription": "Store instructions whose data crosses a double-word boundary, which causes it to require an additional slice than than what normally would be required of the Store of that size. If the Store wraps from slice 3 to slice 0, thee is an additional 3-cycle penalty" 718 + "EventCode": "0x160A0", 719 + "EventName": "PM_L3_PF_MISS_L3", 720 + "BriefDescription": "L3 PF missed in L3" 656 721 }, 657 722 {, 658 723 "EventCode": "0x408C", ··· 698 763 "EventCode": "0x2098", 699 764 "EventName": "PM_TM_NESTED_TEND", 700 765 "BriefDescription": "Completion time nested tend" 701 - }, 702 - {, 703 - "EventCode": "0x36084", 704 - "EventName": "PM_L2_RCST_DISP", 705 - "BriefDescription": "All D-side store dispatch attempts for this thread" 706 766 }, 707 767 {, 708 768 "EventCode": "0x368A0", ··· 760 830 "BriefDescription": "Rotating sample of 16 snoop valids" 761 831 }, 762 832 {, 763 - "EventCode": "0x16084", 764 - "EventName": "PM_L2_RCLD_DISP", 765 - "BriefDescription": "All I-or-D side load dispatch attempts for this thread (excludes i_l2mru_tch_reqs)" 766 - }, 767 - {, 768 833 "EventCode": "0x1608C", 769 834 "EventName": "PM_RC0_BUSY", 770 835 "BriefDescription": "RC mach 0 Busy. Used by PMU to sample ave RC lifetime (mach0 used as sample point)" ··· 767 842 {, 768 843 "EventCode": "0x36082", 769 844 "EventName": "PM_L2_LD_DISP", 770 - "BriefDescription": "All successful I-or-D side load dispatches for this thread (excludes i_l2mru_tch_reqs)." 845 + "BriefDescription": "All successful I-or-D side load dispatches for this thread (excludes i_l2mru_tch_reqs)" 771 846 }, 772 847 {, 773 848 "EventCode": "0xF8B0", ··· 828 903 "EventCode": "0x4888", 829 904 "EventName": "PM_IC_PREF_REQ", 830 905 "BriefDescription": "Instruction prefetch requests" 831 - }, 832 - {, 833 - "EventCode": "0xC898", 834 - "EventName": "PM_LS3_UNALIGNED_LD", 835 - "BriefDescription": "Load instructions whose data crosses a double-word boundary, which causes it to require an additional slice than than what normally would be required of the load of that size. If the load wraps from slice 3 to slice 0, thee is an additional 3-cycle penalty" 836 906 }, 837 907 {, 838 908 "EventCode": "0x488C", ··· 937 1017 {, 938 1018 "EventCode": "0x3E05E", 939 1019 "EventName": "PM_L3_CO_MEPF", 940 - "BriefDescription": "L3 castouts in Mepf state for this thread" 1020 + "BriefDescription": "L3 CO of line in Mep state (includes casthrough to memory). The Mepf state indicates that a line was brought in to satisfy an L3 prefetch request" 941 1021 }, 942 1022 {, 943 1023 "EventCode": "0x460A2", ··· 1125 1205 "BriefDescription": "Non transactional conflict from LSU, gets reported to TEXASR" 1126 1206 }, 1127 1207 {, 1128 - "EventCode": "0xD198", 1129 - "EventName": "PM_MRK_LSU_FLUSH_ATOMIC", 1130 - "BriefDescription": "Quad-word loads (lq) are considered atomic because they always span at least 2 slices. If a snoop or store from another thread changes the data the load is accessing between the 2 or 3 pieces of the lq instruction, the lq will be flushed" 1131 - }, 1132 - {, 1133 1208 "EventCode": "0x201E0", 1134 1209 "EventName": "PM_MRK_DATA_FROM_MEMORY", 1135 1210 "BriefDescription": "The processor's data cache was reloaded from a memory location including L4 from local remote or distant due to a marked load" ··· 1210 1295 "BriefDescription": "Ict empty for this thread due to dispatch holds because the History Buffer was full. Could be GPR/VSR/VMR/FPR/CR/XVF; CR; XVF (XER/VSCR/FPSCR)" 1211 1296 }, 1212 1297 {, 1213 - "EventCode": "0xC894", 1214 - "EventName": "PM_LS1_UNALIGNED_LD", 1215 - "BriefDescription": "Load instructions whose data crosses a double-word boundary, which causes it to require an additional slice than than what normally would be required of the load of that size. If the load wraps from slice 3 to slice 0, thee is an additional 3-cycle penalty" 1216 - }, 1217 - {, 1218 1298 "EventCode": "0x360A2", 1219 1299 "EventName": "PM_L3_L2_CO_HIT", 1220 1300 "BriefDescription": "L2 CO hits" ··· 1233 1323 "EventCode": "0x16882", 1234 1324 "EventName": "PM_L2_CASTOUT_SHR", 1235 1325 "BriefDescription": "L2 Castouts - Shared (Tx,Sx)" 1236 - }, 1237 - {, 1238 - "EventCode": "0xD884", 1239 - "EventName": "PM_LSU3_SET_MPRED", 1240 - "BriefDescription": "Set prediction(set-p) miss. The entry was not found in the Set prediction table" 1241 1326 }, 1242 1327 {, 1243 1328 "EventCode": "0x26092", ··· 1267 1362 {, 1268 1363 "EventCode": "0xD8A8", 1269 1364 "EventName": "PM_ISLB_MISS", 1270 - "BriefDescription": "Instruction SLB miss - Total of all segment sizes" 1365 + "BriefDescription": "Instruction SLB Miss - Total of all segment sizes" 1271 1366 }, 1272 1367 {, 1273 - "EventCode": "0xD19C", 1274 - "EventName": "PM_MRK_LSU_FLUSH_RELAUNCH_MISS", 1275 - "BriefDescription": "If a load that has already returned data and has to relaunch for any reason then gets a miss (erat, setp, data cache), it will often be flushed at relaunch time because the data might be inconsistent" 1368 + "EventCode": "0x368AE", 1369 + "EventName": "PM_L3_P1_CO_RTY", 1370 + "BriefDescription": "L3 CO received retry port 1 (memory only), every retry counted" 1276 1371 }, 1277 1372 {, 1278 1373 "EventCode": "0x260A2", ··· 1288 1383 "EventCode": "0x1E05C", 1289 1384 "EventName": "PM_CMPLU_STALL_NESTED_TBEGIN", 1290 1385 "BriefDescription": "Completion stall because the ISU is updating the TEXASR to keep track of the nested tbegin. This is a short delay, and it includes ROT" 1386 + }, 1387 + {, 1388 + "EventCode": "0xC084", 1389 + "EventName": "PM_LS2_LD_VECTOR_FIN", 1390 + "BriefDescription": "" 1291 1391 }, 1292 1392 {, 1293 1393 "EventCode": "0x1608E", ··· 1318 1408 "EventCode": "0x2688C", 1319 1409 "EventName": "PM_CO_USAGE", 1320 1410 "BriefDescription": "Continuous 16 cycle (2to1) window where this signals rotates thru sampling each CO machine busy. PMU uses this wave to then do 16 cyc count to sample total number of machs running" 1321 - }, 1322 - {, 1323 - "EventCode": "0xD084", 1324 - "EventName": "PM_LSU2_SET_MPRED", 1325 - "BriefDescription": "Set prediction(set-p) miss. The entry was not found in the Set prediction table" 1326 1411 }, 1327 1412 {, 1328 1413 "EventCode": "0x48B8", ··· 1355 1450 "BriefDescription": "A demand load referenced a line in an active strided prefetch stream. The stream could have been allocated through the hardware prefetch mechanism or through software." 1356 1451 }, 1357 1452 {, 1453 + "EventCode": "0x36084", 1454 + "EventName": "PM_L2_RCST_DISP", 1455 + "BriefDescription": "All D-side store dispatch attempts for this thread" 1456 + }, 1457 + {, 1358 1458 "EventCode": "0x45054", 1359 1459 "EventName": "PM_FMA_CMPL", 1360 1460 "BriefDescription": "two flops operation completed (fmadd, fnmadd, fmsub, fnmsub) Scalar instructions only. " 1361 - }, 1362 - {, 1363 - "EventCode": "0x5090", 1364 - "EventName": "PM_SHL_ST_DISABLE", 1365 - "BriefDescription": "Store-Hit-Load Table Read Hit with entry Disabled (entry was disabled due to the entry shown to not prevent the flush)" 1366 1461 }, 1367 1462 {, 1368 1463 "EventCode": "0x201E8", ··· 1370 1465 "BriefDescription": "Threshold counter exceeded a value of 512" 1371 1466 }, 1372 1467 {, 1373 - "EventCode": "0x5084", 1374 - "EventName": "PM_DECODE_FUSION_EXT_ADD", 1375 - "BriefDescription": "32-bit extended addition" 1376 - }, 1377 - {, 1378 1468 "EventCode": "0x36080", 1379 1469 "EventName": "PM_L2_INST", 1380 - "BriefDescription": "All successful I-side dispatches for this thread (excludes i_l2mru_tch reqs)." 1470 + "BriefDescription": "All successful I-side dispatches for this thread (excludes i_l2mru_tch reqs)" 1381 1471 }, 1382 1472 {, 1383 1473 "EventCode": "0x3504C", ··· 1455 1555 "BriefDescription": "Memory Read With Intent to Modify for this thread" 1456 1556 }, 1457 1557 {, 1458 - "EventCode": "0x26882", 1459 - "EventName": "PM_L2_DC_INV", 1460 - "BriefDescription": "D-cache invalidates sent over the reload bus to the core" 1461 - }, 1462 - {, 1463 1558 "EventCode": "0xC090", 1464 1559 "EventName": "PM_LSU_STCX", 1465 1560 "BriefDescription": "STCX sent to nest, i.e. total" 1466 - }, 1467 - {, 1468 - "EventCode": "0xD080", 1469 - "EventName": "PM_LSU0_SET_MPRED", 1470 - "BriefDescription": "Set prediction(set-p) miss. The entry was not found in the Set prediction table" 1471 1561 }, 1472 1562 {, 1473 1563 "EventCode": "0x2C120", ··· 1498 1608 "EventCode": "0x15040", 1499 1609 "EventName": "PM_IPTEG_FROM_L2_NO_CONFLICT", 1500 1610 "BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L2 without conflict due to a instruction side request" 1501 - }, 1502 - {, 1503 - "EventCode": "0xD9A0", 1504 - "EventName": "PM_MRK_LSU_FLUSH_LHL_SHL", 1505 - "BriefDescription": "The instruction was flushed because of a sequential load/store consistency. If a load or store hits on an older load that has either been snooped (for loads) or has stale data (for stores)." 1506 1611 }, 1507 1612 {, 1508 1613 "EventCode": "0x35042", ··· 1577 1692 {, 1578 1693 "EventCode": "0x2001A", 1579 1694 "EventName": "PM_NTC_ALL_FIN", 1580 - "BriefDescription": "Cycles after all instructions have finished to group completed" 1695 + "BriefDescription": "Cycles after instruction finished to instruction completed." 1581 1696 }, 1582 1697 {, 1583 1698 "EventCode": "0x3005A", ··· 1593 1708 "EventCode": "0xF890", 1594 1709 "EventName": "PM_LSU1_L1_CAM_CANCEL", 1595 1710 "BriefDescription": "ls1 l1 tm cam cancel" 1711 + }, 1712 + {, 1713 + "EventCode": "0x268AE", 1714 + "EventName": "PM_L3_P3_PF_RTY", 1715 + "BriefDescription": "L3 PF received retry port 3, every retry counted" 1596 1716 }, 1597 1717 {, 1598 1718 "EventCode": "0xE884", ··· 1632 1742 {, 1633 1743 "EventCode": "0x160B6", 1634 1744 "EventName": "PM_L3_WI0_BUSY", 1635 - "BriefDescription": "Rotating sample of 8 WI valid" 1745 + "BriefDescription": "Rotating sample of 8 WI valid (duplicate)" 1636 1746 }, 1637 1747 {, 1638 1748 "EventCode": "0x368AC", ··· 1680 1790 "BriefDescription": "L2 guess system (VGS or RNS) and guess was correct (ie data beyond-group)" 1681 1791 }, 1682 1792 {, 1683 - "EventCode": "0x589C", 1684 - "EventName": "PM_PTESYNC", 1685 - "BriefDescription": "ptesync instruction counted when the instruction is decoded and transmitted" 1793 + "EventCode": "0x260AE", 1794 + "EventName": "PM_L3_P2_PF_RTY", 1795 + "BriefDescription": "L3 PF received retry port 2, every retry counted" 1686 1796 }, 1687 1797 {, 1688 1798 "EventCode": "0x26086", ··· 1715 1825 "BriefDescription": "Store-Hit-Load Table Read Hit with entry Enabled" 1716 1826 }, 1717 1827 {, 1828 + "EventCode": "0x46882", 1829 + "EventName": "PM_L2_ST_HIT", 1830 + "BriefDescription": "All successful D-side store dispatches for this thread that were L2 hits" 1831 + }, 1832 + {, 1718 1833 "EventCode": "0x360AC", 1719 1834 "EventName": "PM_L3_SN0_BUSY", 1720 1835 "BriefDescription": "Lifetime, sample of snooper machine 0 valid" ··· 1738 1843 "EventCode": "0x26880", 1739 1844 "EventName": "PM_L2_ST_MISS", 1740 1845 "BriefDescription": "All successful D-Side Store dispatches that were an L2 miss for this thread" 1741 - }, 1742 - {, 1743 - "EventCode": "0xF8B4", 1744 - "EventName": "PM_DC_PREF_XCONS_ALLOC", 1745 - "BriefDescription": "Prefetch stream allocated in the Ultra conservative phase by either the hardware prefetch mechanism or software prefetch" 1746 1846 }, 1747 1847 {, 1748 1848 "EventCode": "0x35048", ··· 1860 1970 "BriefDescription": "Cycles thread running at priority level 2 or 3" 1861 1971 }, 1862 1972 {, 1863 - "EventCode": "0x10134", 1864 - "EventName": "PM_MRK_ST_DONE_L2", 1865 - "BriefDescription": "marked store completed in L2 ( RC machine done)" 1866 - }, 1867 - {, 1868 1973 "EventCode": "0x368B2", 1869 1974 "EventName": "PM_L3_GRP_GUESS_WRONG_HIGH", 1870 1975 "BriefDescription": "Initial scope=group (GS or NNS) but data from local node. Prediction too high" ··· 1890 2005 "BriefDescription": "L2 guess grp (GS or NNS) and guess was not correct (ie data on-chip OR beyond-group)" 1891 2006 }, 1892 2007 {, 1893 - "EventCode": "0x368AE", 1894 - "EventName": "PM_L3_P1_CO_RTY", 1895 - "BriefDescription": "L3 CO received retry port 1 (memory only), every retry counted" 1896 - }, 1897 - {, 1898 2008 "EventCode": "0xC0AC", 1899 2009 "EventName": "PM_LSU_FLUSH_EMSH", 1900 2010 "BriefDescription": "An ERAT miss was detected after a set-p hit. Erat tracker indicates fail due to tlbmiss and the instruction gets flushed because the instruction was working on the wrong address" ··· 1915 2035 "BriefDescription": "RC requests that were on group (aka nodel) pump attempts" 1916 2036 }, 1917 2037 {, 1918 - "EventCode": "0xF0B0", 1919 - "EventName": "PM_L3_LD_PREF", 1920 - "BriefDescription": "L3 load prefetch, sourced from a hardware or software stream, was sent to the nest" 1921 - }, 1922 - {, 1923 2038 "EventCode": "0x16080", 1924 2039 "EventName": "PM_L2_LD", 1925 2040 "BriefDescription": "All successful D-side Load dispatches for this thread (L2 miss + L2 hits)" ··· 1923 2048 "EventCode": "0x4505C", 1924 2049 "EventName": "PM_MATH_FLOP_CMPL", 1925 2050 "BriefDescription": "Math flop instruction completed" 2051 + }, 2052 + {, 2053 + "EventCode": "0xC080", 2054 + "EventName": "PM_LS0_LD_VECTOR_FIN", 2055 + "BriefDescription": "" 1926 2056 }, 1927 2057 {, 1928 2058 "EventCode": "0x368B0", ··· 2000 2120 "BriefDescription": "Conditional Branch Completed in which the HW correctly predicted the direction as taken. Counted at completion time" 2001 2121 }, 2002 2122 {, 2003 - "EventCode": "0xF0B8", 2004 - "EventName": "PM_LS0_UNALIGNED_ST", 2005 - "BriefDescription": "Store instructions whose data crosses a double-word boundary, which causes it to require an additional slice than than what normally would be required of the Store of that size. If the Store wraps from slice 3 to slice 0, thee is an additional 3-cycle penalty" 2006 - }, 2007 - {, 2008 2123 "EventCode": "0x20132", 2009 2124 "EventName": "PM_MRK_DFU_FIN", 2010 2125 "BriefDescription": "Decimal Unit marked Instruction Finish" ··· 2013 2138 "EventCode": "0xC8B0", 2014 2139 "EventName": "PM_LSU_FLUSH_LHS", 2015 2140 "BriefDescription": "Effective Address alias flush : no EA match but Real Address match. If the data has not yet been returned for this load, the instruction will just be rejected, but if it has returned data, it will be flushed" 2141 + }, 2142 + {, 2143 + "EventCode": "0x16084", 2144 + "EventName": "PM_L2_RCLD_DISP", 2145 + "BriefDescription": "All I-or-D side load dispatch attempts for this thread (excludes i_l2mru_tch_reqs)" 2016 2146 }, 2017 2147 {, 2018 2148 "EventCode": "0x3F150", ··· 2105 2225 "BriefDescription": "Prefetch Canceled due to page boundary" 2106 2226 }, 2107 2227 {, 2108 - "EventCode": "0xF09C", 2109 - "EventName": "PM_SLB_TABLEWALK_CYC", 2110 - "BriefDescription": "Cycles when a tablewalk is pending on this thread on the SLB table" 2111 - }, 2112 - {, 2113 2228 "EventCode": "0x460AA", 2114 2229 "EventName": "PM_L3_P0_CO_L31", 2115 2230 "BriefDescription": "L3 CO to L3.1 (LCO) port 0 with or without data" ··· 2122 2247 {, 2123 2248 "EventCode": "0x46082", 2124 2249 "EventName": "PM_L2_ST_DISP", 2125 - "BriefDescription": "All successful D-side store dispatches for this thread " 2250 + "BriefDescription": "All successful D-side store dispatches for this thread (L2 miss + L2 hits)" 2126 2251 }, 2127 2252 {, 2128 - "EventCode": "0x4609E", 2253 + "EventCode": "0x36880", 2129 2254 "EventName": "PM_L2_INST_MISS", 2130 2255 "BriefDescription": "All successful I-side dispatches that were an L2 miss for this thread (excludes i_l2mru_tch reqs)" 2131 2256 }, ··· 2215 2340 "BriefDescription": "All ISU rejects" 2216 2341 }, 2217 2342 {, 2218 - "EventCode": "0x46882", 2219 - "EventName": "PM_L2_ST_HIT", 2220 - "BriefDescription": "All successful D-side store dispatches for this thread that were L2 hits" 2343 + "EventCode": "0xC884", 2344 + "EventName": "PM_LS3_LD_VECTOR_FIN", 2345 + "BriefDescription": "" 2221 2346 }, 2222 2347 {, 2223 2348 "EventCode": "0x360A8", ··· 2233 2358 "EventCode": "0xC890", 2234 2359 "EventName": "PM_LSU_NCST", 2235 2360 "BriefDescription": "Asserts when a i=1 store op is sent to the nest. No record of issue pipe (LS0/LS1) is maintained so this is for both pipes. Probably don't need separate LS0 and LS1" 2236 - }, 2237 - {, 2238 - "EventCode": "0xD880", 2239 - "EventName": "PM_LSU1_SET_MPRED", 2240 - "BriefDescription": "Set prediction(set-p) miss. The entry was not found in the Set prediction table" 2241 2361 }, 2242 2362 {, 2243 2363 "EventCode": "0xD0B8",
+6 -6
tools/perf/pmu-events/arch/powerpc/power9/pipeline.json
··· 125 125 "BriefDescription": "Overflow from counter 5" 126 126 }, 127 127 {, 128 + "EventCode": "0x4505E", 129 + "EventName": "PM_FLOP_CMPL", 130 + "BriefDescription": "Floating Point Operation Finished" 131 + }, 132 + {, 128 133 "EventCode": "0x2C018", 129 134 "EventName": "PM_CMPLU_STALL_DMISS_L21_L31", 130 135 "BriefDescription": "Completion stall by Dcache miss which resolved on chip ( excluding local L2/L3)" ··· 395 390 "BriefDescription": "Ict empty for this thread due to branch mispred" 396 391 }, 397 392 {, 398 - "EventCode": "0x3405E", 399 - "EventName": "PM_IFETCH_THROTTLE", 400 - "BriefDescription": "Cycles in which Instruction fetch throttle was active." 401 - }, 402 - {, 403 393 "EventCode": "0x1F148", 404 394 "EventName": "PM_MRK_DPTEG_FROM_ON_CHIP_CACHE", 405 395 "BriefDescription": "A Page Table Entry was loaded into the TLB either shared or modified data from another core's L2/L3 on the same chip due to a marked data side request.. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are included" ··· 422 422 {, 423 423 "EventCode": "0xD0A8", 424 424 "EventName": "PM_DSLB_MISS", 425 - "BriefDescription": "Data SLB Miss - Total of all segment sizes" 425 + "BriefDescription": "gate_and(sd_pc_c0_comp_valid AND sd_pc_c0_comp_thread(0:1)=tid,sd_pc_c0_comp_ppc_count(0:3)) + gate_and(sd_pc_c1_comp_valid AND sd_pc_c1_comp_thread(0:1)=tid,sd_pc_c1_comp_ppc_count(0:3))" 426 426 }, 427 427 {, 428 428 "EventCode": "0x4C058",
tools/perf/pmu-events/arch/powerpc/power9/pmc.json
-5
tools/perf/pmu-events/arch/powerpc/power9/translation.json
··· 90 90 "BriefDescription": "stcx failed" 91 91 }, 92 92 {, 93 - "EventCode": "0x20112", 94 - "EventName": "PM_MRK_NTF_FIN", 95 - "BriefDescription": "Marked next to finish instruction finished" 96 - }, 97 - {, 98 93 "EventCode": "0x300F0", 99 94 "EventName": "PM_ST_MISS_L1", 100 95 "BriefDescription": "Store Missed L1"