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

perf vendor events intel: Update snowridgex events

Update snowridgex to v1.21 that marks deprecated a number of events
and adds improves descriptions. The events data was generated by:
https://github.com/intel/perfmon/blob/main/scripts/create_perf_json.py

Reviewed-by: Kan Liang <kan.liang@linux.intel.com>
Signed-off-by: Ian Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: John Garry <john.g.garry@oracle.com>
Cc: Kajol Jain <kjain@linux.ibm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Richter <tmricht@linux.ibm.com>
Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
Link: https://lore.kernel.org/r/20230517173805.602113-13-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Ian Rogers and committed by
Arnaldo Carvalho de Melo
d97b82ae b522c8af

+36 -23
+1 -1
tools/perf/pmu-events/arch/x86/mapfile.csv
··· 28 28 GenuineIntel-6-(37|4A|4C|4D|5A),v15,silvermont,core 29 29 GenuineIntel-6-(4E|5E|8E|9E|A5|A6),v56,skylake,core 30 30 GenuineIntel-6-55-[01234],v1.30,skylakex,core 31 - GenuineIntel-6-86,v1.20,snowridgex,core 31 + GenuineIntel-6-86,v1.21,snowridgex,core 32 32 GenuineIntel-6-8[CD],v1.10,tigerlake,core 33 33 GenuineIntel-6-2C,v4,westmereep-dp,core 34 34 GenuineIntel-6-25,v3,westmereep-sp,core
+7
tools/perf/pmu-events/arch/x86/snowridgex/cache.json
··· 72 72 "BriefDescription": "Counts the number of cycles the core is stalled due to an instruction cache or TLB miss which hit in the L2, LLC, DRAM or MMIO (Non-DRAM).", 73 73 "EventCode": "0x34", 74 74 "EventName": "MEM_BOUND_STALLS.IFETCH", 75 + "PublicDescription": "Counts the number of cycles the core is stalled due to an instruction cache or translation lookaside buffer (TLB) miss which hit in the L2, LLC, DRAM or MMIO (Non-DRAM).", 75 76 "SampleAfterValue": "200003", 76 77 "UMask": "0x38" 77 78 }, ··· 438 437 }, 439 438 { 440 439 "BriefDescription": "This event is deprecated. Refer to new event OCR.DEMAND_DATA_AND_L1PF_RD.L3_HIT", 440 + "Deprecated": "1", 441 441 "EventCode": "0XB7", 442 442 "EventName": "OCR.DEMAND_DATA_RD.L3_HIT", 443 443 "MSRIndex": "0x1a6,0x1a7", ··· 448 446 }, 449 447 { 450 448 "BriefDescription": "This event is deprecated. Refer to new event OCR.DEMAND_DATA_AND_L1PF_RD.L3_HIT.SNOOP_HITM", 449 + "Deprecated": "1", 451 450 "EventCode": "0XB7", 452 451 "EventName": "OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HITM", 453 452 "MSRIndex": "0x1a6,0x1a7", ··· 458 455 }, 459 456 { 460 457 "BriefDescription": "This event is deprecated. Refer to new event OCR.DEMAND_DATA_AND_L1PF_RD.L3_HIT.SNOOP_HIT_NO_FWD", 458 + "Deprecated": "1", 461 459 "EventCode": "0XB7", 462 460 "EventName": "OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HIT_NO_FWD", 463 461 "MSRIndex": "0x1a6,0x1a7", ··· 468 464 }, 469 465 { 470 466 "BriefDescription": "This event is deprecated. Refer to new event OCR.DEMAND_DATA_AND_L1PF_RD.L3_HIT.SNOOP_HIT_WITH_FWD", 467 + "Deprecated": "1", 471 468 "EventCode": "0XB7", 472 469 "EventName": "OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HIT_WITH_FWD", 473 470 "MSRIndex": "0x1a6,0x1a7", ··· 478 473 }, 479 474 { 480 475 "BriefDescription": "This event is deprecated. Refer to new event OCR.DEMAND_DATA_AND_L1PF_RD.L3_HIT.SNOOP_MISS", 476 + "Deprecated": "1", 481 477 "EventCode": "0XB7", 482 478 "EventName": "OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_MISS", 483 479 "MSRIndex": "0x1a6,0x1a7", ··· 488 482 }, 489 483 { 490 484 "BriefDescription": "This event is deprecated. Refer to new event OCR.DEMAND_DATA_AND_L1PF_RD.L3_HIT.SNOOP_NOT_NEEDED", 485 + "Deprecated": "1", 491 486 "EventCode": "0XB7", 492 487 "EventName": "OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_NOT_NEEDED", 493 488 "MSRIndex": "0x1a6,0x1a7",
+2
tools/perf/pmu-events/arch/x86/snowridgex/memory.json
··· 96 96 }, 97 97 { 98 98 "BriefDescription": "This event is deprecated. Refer to new event OCR.DEMAND_DATA_AND_L1PF_RD.L3_MISS", 99 + "Deprecated": "1", 99 100 "EventCode": "0XB7", 100 101 "EventName": "OCR.DEMAND_DATA_RD.L3_MISS", 101 102 "MSRIndex": "0x1a6,0x1a7", ··· 106 105 }, 107 106 { 108 107 "BriefDescription": "This event is deprecated. Refer to new event OCR.DEMAND_DATA_AND_L1PF_RD.L3_MISS_LOCAL", 108 + "Deprecated": "1", 109 109 "EventCode": "0XB7", 110 110 "EventName": "OCR.DEMAND_DATA_RD.L3_MISS_LOCAL", 111 111 "MSRIndex": "0x1a6,0x1a7",
+10
tools/perf/pmu-events/arch/x86/snowridgex/other.json
··· 1 1 [ 2 2 { 3 3 "BriefDescription": "This event is deprecated. Refer to new event BUS_LOCK.SELF_LOCKS", 4 + "Deprecated": "1", 4 5 "EdgeDetect": "1", 5 6 "EventCode": "0x63", 6 7 "EventName": "BUS_LOCK.ALL", ··· 17 16 }, 18 17 { 19 18 "BriefDescription": "This event is deprecated. Refer to new event BUS_LOCK.BLOCK_CYCLES", 19 + "Deprecated": "1", 20 20 "EventCode": "0x63", 21 21 "EventName": "BUS_LOCK.CYCLES_OTHER_BLOCK", 22 22 "SampleAfterValue": "200003", ··· 25 23 }, 26 24 { 27 25 "BriefDescription": "This event is deprecated. Refer to new event BUS_LOCK.LOCK_CYCLES", 26 + "Deprecated": "1", 28 27 "EventCode": "0x63", 29 28 "EventName": "BUS_LOCK.CYCLES_SELF_BLOCK", 30 29 "SampleAfterValue": "200003", ··· 49 46 }, 50 47 { 51 48 "BriefDescription": "This event is deprecated. Refer to new event MEM_BOUND_STALLS.LOAD_DRAM_HIT", 49 + "Deprecated": "1", 52 50 "EventCode": "0x34", 53 51 "EventName": "C0_STALLS.LOAD_DRAM_HIT", 54 52 "SampleAfterValue": "200003", ··· 57 53 }, 58 54 { 59 55 "BriefDescription": "This event is deprecated. Refer to new event MEM_BOUND_STALLS.LOAD_L2_HIT", 56 + "Deprecated": "1", 60 57 "EventCode": "0x34", 61 58 "EventName": "C0_STALLS.LOAD_L2_HIT", 62 59 "SampleAfterValue": "200003", ··· 65 60 }, 66 61 { 67 62 "BriefDescription": "This event is deprecated. Refer to new event MEM_BOUND_STALLS.LOAD_LLC_HIT", 63 + "Deprecated": "1", 68 64 "EventCode": "0x34", 69 65 "EventName": "C0_STALLS.LOAD_LLC_HIT", 70 66 "SampleAfterValue": "200003", ··· 213 207 }, 214 208 { 215 209 "BriefDescription": "This event is deprecated. Refer to new event OCR.DEMAND_DATA_AND_L1PF_RD.ANY_RESPONSE", 210 + "Deprecated": "1", 216 211 "EventCode": "0XB7", 217 212 "EventName": "OCR.DEMAND_DATA_RD.ANY_RESPONSE", 218 213 "MSRIndex": "0x1a6,0x1a7", ··· 223 216 }, 224 217 { 225 218 "BriefDescription": "This event is deprecated. Refer to new event OCR.DEMAND_DATA_AND_L1PF_RD.DRAM", 219 + "Deprecated": "1", 226 220 "EventCode": "0XB7", 227 221 "EventName": "OCR.DEMAND_DATA_RD.DRAM", 228 222 "MSRIndex": "0x1a6,0x1a7", ··· 233 225 }, 234 226 { 235 227 "BriefDescription": "This event is deprecated. Refer to new event OCR.DEMAND_DATA_AND_L1PF_RD.LOCAL_DRAM", 228 + "Deprecated": "1", 236 229 "EventCode": "0XB7", 237 230 "EventName": "OCR.DEMAND_DATA_RD.LOCAL_DRAM", 238 231 "MSRIndex": "0x1a6,0x1a7", ··· 243 234 }, 244 235 { 245 236 "BriefDescription": "This event is deprecated. Refer to new event OCR.DEMAND_DATA_AND_L1PF_RD.OUTSTANDING", 237 + "Deprecated": "1", 246 238 "EventCode": "0XB7", 247 239 "EventName": "OCR.DEMAND_DATA_RD.OUTSTANDING", 248 240 "MSRIndex": "0x1a6",
+3
tools/perf/pmu-events/arch/x86/snowridgex/pipeline.json
··· 165 165 }, 166 166 { 167 167 "BriefDescription": "This event is deprecated.", 168 + "Deprecated": "1", 168 169 "EventCode": "0xcd", 169 170 "EventName": "CYCLES_DIV_BUSY.ANY", 170 171 "SampleAfterValue": "2000003" ··· 284 283 }, 285 284 { 286 285 "BriefDescription": "This event is deprecated. Refer to new event TOPDOWN_BAD_SPECULATION.FASTNUKE", 286 + "Deprecated": "1", 287 287 "EventCode": "0x73", 288 288 "EventName": "TOPDOWN_BAD_SPECULATION.MONUKE", 289 289 "SampleAfterValue": "1000003", ··· 340 338 }, 341 339 { 342 340 "BriefDescription": "This event is deprecated.", 341 + "Deprecated": "1", 343 342 "EventCode": "0x74", 344 343 "EventName": "TOPDOWN_BE_BOUND.STORE_BUFFER", 345 344 "SampleAfterValue": "1000003",
+7 -7
tools/perf/pmu-events/arch/x86/snowridgex/uncore-interconnect.json
··· 590 590 "EventCode": "0x0C", 591 591 "EventName": "UNC_I_TxS_REQUEST_OCCUPANCY", 592 592 "PerPkg": "1", 593 - "PublicDescription": "Outbound Request Queue Occupancy : Accumultes the number of outstanding outbound requests from the IRP to the switch (towards the devices). This can be used in conjuection with the allocations event in order to calculate average latency of outbound requests.", 593 + "PublicDescription": "Outbound Request Queue Occupancy : Accumulates the number of outstanding outbound requests from the IRP to the switch (towards the devices). This can be used in conjunction with the allocations event in order to calculate average latency of outbound requests.", 594 594 "Unit": "IRP" 595 595 }, 596 596 { ··· 5570 5570 "Unit": "M2M" 5571 5571 }, 5572 5572 { 5573 - "BriefDescription": "M2M-&gt;iMC WPQ Cycles w/Credits - Regular : Channel 0", 5573 + "BriefDescription": "M2M->iMC WPQ Cycles w/Credits - Regular : Channel 0", 5574 5574 "EventCode": "0x4D", 5575 5575 "EventName": "UNC_M2M_WPQ_NO_REG_CRD.CHN0", 5576 5576 "PerPkg": "1", ··· 5578 5578 "Unit": "M2M" 5579 5579 }, 5580 5580 { 5581 - "BriefDescription": "M2M-&gt;iMC WPQ Cycles w/Credits - Regular : Channel 1", 5581 + "BriefDescription": "M2M->iMC WPQ Cycles w/Credits - Regular : Channel 1", 5582 5582 "EventCode": "0x4D", 5583 5583 "EventName": "UNC_M2M_WPQ_NO_REG_CRD.CHN1", 5584 5584 "PerPkg": "1", ··· 5586 5586 "Unit": "M2M" 5587 5587 }, 5588 5588 { 5589 - "BriefDescription": "M2M-&gt;iMC WPQ Cycles w/Credits - Regular : Channel 2", 5589 + "BriefDescription": "M2M->iMC WPQ Cycles w/Credits - Regular : Channel 2", 5590 5590 "EventCode": "0x4D", 5591 5591 "EventName": "UNC_M2M_WPQ_NO_REG_CRD.CHN2", 5592 5592 "PerPkg": "1", ··· 5594 5594 "Unit": "M2M" 5595 5595 }, 5596 5596 { 5597 - "BriefDescription": "M2M-&gt;iMC WPQ Cycles w/Credits - Special : Channel 0", 5597 + "BriefDescription": "M2M->iMC WPQ Cycles w/Credits - Special : Channel 0", 5598 5598 "EventCode": "0x4E", 5599 5599 "EventName": "UNC_M2M_WPQ_NO_SPEC_CRD.CHN0", 5600 5600 "PerPkg": "1", ··· 5602 5602 "Unit": "M2M" 5603 5603 }, 5604 5604 { 5605 - "BriefDescription": "M2M-&gt;iMC WPQ Cycles w/Credits - Special : Channel 1", 5605 + "BriefDescription": "M2M->iMC WPQ Cycles w/Credits - Special : Channel 1", 5606 5606 "EventCode": "0x4E", 5607 5607 "EventName": "UNC_M2M_WPQ_NO_SPEC_CRD.CHN1", 5608 5608 "PerPkg": "1", ··· 5610 5610 "Unit": "M2M" 5611 5611 }, 5612 5612 { 5613 - "BriefDescription": "M2M-&gt;iMC WPQ Cycles w/Credits - Special : Channel 2", 5613 + "BriefDescription": "M2M->iMC WPQ Cycles w/Credits - Special : Channel 2", 5614 5614 "EventCode": "0x4E", 5615 5615 "EventName": "UNC_M2M_WPQ_NO_SPEC_CRD.CHN2", 5616 5616 "PerPkg": "1",
-8
tools/perf/pmu-events/arch/x86/snowridgex/uncore-io.json
··· 34 34 "EventCode": "0xff", 35 35 "EventName": "UNC_IIO_BANDWIDTH_IN.PART0_FREERUN", 36 36 "PerPkg": "1", 37 - "PublicDescription": "UNC_IIO_BANDWIDTH_IN.PART0_FREERUN", 38 37 "UMask": "0x20", 39 38 "Unit": "iio_free_running" 40 39 }, ··· 42 43 "EventCode": "0xff", 43 44 "EventName": "UNC_IIO_BANDWIDTH_IN.PART1_FREERUN", 44 45 "PerPkg": "1", 45 - "PublicDescription": "UNC_IIO_BANDWIDTH_IN.PART1_FREERUN", 46 46 "UMask": "0x21", 47 47 "Unit": "iio_free_running" 48 48 }, ··· 50 52 "EventCode": "0xff", 51 53 "EventName": "UNC_IIO_BANDWIDTH_IN.PART2_FREERUN", 52 54 "PerPkg": "1", 53 - "PublicDescription": "UNC_IIO_BANDWIDTH_IN.PART2_FREERUN", 54 55 "UMask": "0x22", 55 56 "Unit": "iio_free_running" 56 57 }, ··· 58 61 "EventCode": "0xff", 59 62 "EventName": "UNC_IIO_BANDWIDTH_IN.PART3_FREERUN", 60 63 "PerPkg": "1", 61 - "PublicDescription": "UNC_IIO_BANDWIDTH_IN.PART3_FREERUN", 62 64 "UMask": "0x23", 63 65 "Unit": "iio_free_running" 64 66 }, ··· 66 70 "EventCode": "0xff", 67 71 "EventName": "UNC_IIO_BANDWIDTH_IN.PART4_FREERUN", 68 72 "PerPkg": "1", 69 - "PublicDescription": "UNC_IIO_BANDWIDTH_IN.PART4_FREERUN", 70 73 "UMask": "0x24", 71 74 "Unit": "iio_free_running" 72 75 }, ··· 74 79 "EventCode": "0xff", 75 80 "EventName": "UNC_IIO_BANDWIDTH_IN.PART5_FREERUN", 76 81 "PerPkg": "1", 77 - "PublicDescription": "UNC_IIO_BANDWIDTH_IN.PART5_FREERUN", 78 82 "UMask": "0x25", 79 83 "Unit": "iio_free_running" 80 84 }, ··· 82 88 "EventCode": "0xff", 83 89 "EventName": "UNC_IIO_BANDWIDTH_IN.PART6_FREERUN", 84 90 "PerPkg": "1", 85 - "PublicDescription": "UNC_IIO_BANDWIDTH_IN.PART6_FREERUN", 86 91 "UMask": "0x26", 87 92 "Unit": "iio_free_running" 88 93 }, ··· 90 97 "EventCode": "0xff", 91 98 "EventName": "UNC_IIO_BANDWIDTH_IN.PART7_FREERUN", 92 99 "PerPkg": "1", 93 - "PublicDescription": "UNC_IIO_BANDWIDTH_IN.PART7_FREERUN", 94 100 "UMask": "0x27", 95 101 "Unit": "iio_free_running" 96 102 },
+3 -4
tools/perf/pmu-events/arch/x86/snowridgex/uncore-memory.json
··· 130 130 "EventCode": "0xff", 131 131 "EventName": "UNC_M_CLOCKTICKS_FREERUN", 132 132 "PerPkg": "1", 133 - "PublicDescription": "UNC_M_CLOCKTICKS_FREERUN", 134 133 "UMask": "0x10", 135 134 "Unit": "imc_free_running" 136 135 }, ··· 321 322 "EventCode": "0x02", 322 323 "EventName": "UNC_M_PRE_COUNT.PGT", 323 324 "PerPkg": "1", 324 - "PublicDescription": "DRAM Precharge commands. : Precharge due to page table : Counts the number of DRAM Precharge commands sent on this channel. : Prechages from Page Table", 325 + "PublicDescription": "DRAM Precharge commands. : Precharge due to page table : Counts the number of DRAM Precharge commands sent on this channel. : Precharges from Page Table", 325 326 "UMask": "0x10", 326 327 "Unit": "iMC" 327 328 }, ··· 496 497 "EventCode": "0x82", 497 498 "EventName": "UNC_M_WPQ_OCCUPANCY_PCH0", 498 499 "PerPkg": "1", 499 - "PublicDescription": "Write Pending Queue Occupancy : Accumulates the occupancies of the Write Pending Queue each cycle. This can then be used to calculate both the average queue occupancy (in conjunction with the number of cycles not empty) and the average latency (in conjunction with the number of allocations). The WPQ is used to schedule write out to the memory controller and to track the writes. Requests allocate into the WPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC. They deallocate after being issued to DRAM. Write requests themselves are able to complete (from the perspective of the rest of the system) as soon they have posted to the iMC. This is not to be confused with actually performing the write to DRAM. Therefore, the average latency for this queue is actually not useful for deconstruction intermediate write latencies. So, we provide filtering based on if the request has posted or not. By using the not posted filter, we can track how long writes spent in the iMC before completions were sent to the HA. The posted filter, on the other hand, provides information about how much queueing is actually happenning in the iMC for writes before they are actually issued to memory. High average occupancies will generally coincide with high write major mode counts.", 500 + "PublicDescription": "Write Pending Queue Occupancy : Accumulates the occupancies of the Write Pending Queue each cycle. This can then be used to calculate both the average queue occupancy (in conjunction with the number of cycles not empty) and the average latency (in conjunction with the number of allocations). The WPQ is used to schedule write out to the memory controller and to track the writes. Requests allocate into the WPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC. They deallocate after being issued to DRAM. Write requests themselves are able to complete (from the perspective of the rest of the system) as soon they have posted to the iMC. This is not to be confused with actually performing the write to DRAM. Therefore, the average latency for this queue is actually not useful for deconstruction intermediate write latencies. So, we provide filtering based on if the request has posted or not. By using the not posted filter, we can track how long writes spent in the iMC before completions were sent to the HA. The posted filter, on the other hand, provides information about how much queueing is actually happening in the iMC for writes before they are actually issued to memory. High average occupancies will generally coincide with high write major mode counts.", 500 501 "Unit": "iMC" 501 502 }, 502 503 { ··· 504 505 "EventCode": "0x83", 505 506 "EventName": "UNC_M_WPQ_OCCUPANCY_PCH1", 506 507 "PerPkg": "1", 507 - "PublicDescription": "Write Pending Queue Occupancy : Accumulates the occupancies of the Write Pending Queue each cycle. This can then be used to calculate both the average queue occupancy (in conjunction with the number of cycles not empty) and the average latency (in conjunction with the number of allocations). The WPQ is used to schedule write out to the memory controller and to track the writes. Requests allocate into the WPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC. They deallocate after being issued to DRAM. Write requests themselves are able to complete (from the perspective of the rest of the system) as soon they have posted to the iMC. This is not to be confused with actually performing the write to DRAM. Therefore, the average latency for this queue is actually not useful for deconstruction intermediate write latencies. So, we provide filtering based on if the request has posted or not. By using the not posted filter, we can track how long writes spent in the iMC before completions were sent to the HA. The posted filter, on the other hand, provides information about how much queueing is actually happenning in the iMC for writes before they are actually issued to memory. High average occupancies will generally coincide with high write major mode counts.", 508 + "PublicDescription": "Write Pending Queue Occupancy : Accumulates the occupancies of the Write Pending Queue each cycle. This can then be used to calculate both the average queue occupancy (in conjunction with the number of cycles not empty) and the average latency (in conjunction with the number of allocations). The WPQ is used to schedule write out to the memory controller and to track the writes. Requests allocate into the WPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the HA to the iMC. They deallocate after being issued to DRAM. Write requests themselves are able to complete (from the perspective of the rest of the system) as soon they have posted to the iMC. This is not to be confused with actually performing the write to DRAM. Therefore, the average latency for this queue is actually not useful for deconstruction intermediate write latencies. So, we provide filtering based on if the request has posted or not. By using the not posted filter, we can track how long writes spent in the iMC before completions were sent to the HA. The posted filter, on the other hand, provides information about how much queueing is actually happening in the iMC for writes before they are actually issued to memory. High average occupancies will generally coincide with high write major mode counts.", 508 509 "Unit": "iMC" 509 510 }, 510 511 {
+3 -3
tools/perf/pmu-events/arch/x86/snowridgex/uncore-power.json
··· 149 149 "EventCode": "0x80", 150 150 "EventName": "UNC_P_POWER_STATE_OCCUPANCY.CORES_C0", 151 151 "PerPkg": "1", 152 - "PublicDescription": "Number of cores in C-State : C0 and C1 : This is an occupancy event that tracks the number of cores that are in the chosen C-State. It can be used by itself to get the average number of cores in that C-state with threshholding to generate histograms, or with other PCU events and occupancy triggering to capture other details.", 152 + "PublicDescription": "Number of cores in C-State : C0 and C1 : This is an occupancy event that tracks the number of cores that are in the chosen C-State. It can be used by itself to get the average number of cores in that C-state with thresholding to generate histograms, or with other PCU events and occupancy triggering to capture other details.", 153 153 "Unit": "PCU" 154 154 }, 155 155 { ··· 157 157 "EventCode": "0x80", 158 158 "EventName": "UNC_P_POWER_STATE_OCCUPANCY.CORES_C3", 159 159 "PerPkg": "1", 160 - "PublicDescription": "Number of cores in C-State : C3 : This is an occupancy event that tracks the number of cores that are in the chosen C-State. It can be used by itself to get the average number of cores in that C-state with threshholding to generate histograms, or with other PCU events and occupancy triggering to capture other details.", 160 + "PublicDescription": "Number of cores in C-State : C3 : This is an occupancy event that tracks the number of cores that are in the chosen C-State. It can be used by itself to get the average number of cores in that C-state with thresholding to generate histograms, or with other PCU events and occupancy triggering to capture other details.", 161 161 "Unit": "PCU" 162 162 }, 163 163 { ··· 165 165 "EventCode": "0x80", 166 166 "EventName": "UNC_P_POWER_STATE_OCCUPANCY.CORES_C6", 167 167 "PerPkg": "1", 168 - "PublicDescription": "Number of cores in C-State : C6 and C7 : This is an occupancy event that tracks the number of cores that are in the chosen C-State. It can be used by itself to get the average number of cores in that C-state with threshholding to generate histograms, or with other PCU events and occupancy triggering to capture other details.", 168 + "PublicDescription": "Number of cores in C-State : C6 and C7 : This is an occupancy event that tracks the number of cores that are in the chosen C-State. It can be used by itself to get the average number of cores in that C-state with thresholding to generate histograms, or with other PCU events and occupancy triggering to capture other details.", 169 169 "Unit": "PCU" 170 170 }, 171 171 {