Commit 025cce25 authored by Ian Rogers's avatar Ian Rogers Committed by Namhyung Kim

perf vendor events: Add knightslanding counter information

Add counter information necessary for optimizing event grouping the
perf tool.

The most recent RFC patch set using this information:
https://lore.kernel.org/lkml/20240412210756.309828-1-weilin.wang@intel.com/

The information was added in:
https://github.com/intel/perfmon/commit/475892a9690cb048949e593fe39cee65cd4765e1
and later patches.
Co-authored-by: default avatarWeilin Wang <weilin.wang@intel.com>
Co-authored-by: default avatarCaleb Biggers <caleb.biggers@intel.com>
Signed-off-by: default avatarIan Rogers <irogers@google.com>
Reviewed-by: default avatarKan Liang <kan.liang@linux.intel.com>
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20240620181752.3945845-22-irogers@google.com
parent 87916225
[
{
"Unit": "core",
"CountersNumFixed": "3",
"CountersNumGeneric": "2"
},
{
"Unit": "CHA",
"CountersNumFixed": "0",
"CountersNumGeneric": "4"
},
{
"Unit": "EDC_ECLK",
"CountersNumFixed": "0",
"CountersNumGeneric": "4"
},
{
"Unit": "EDC_UCLK",
"CountersNumFixed": "0",
"CountersNumGeneric": "4"
},
{
"Unit": "iMC_DCLK",
"CountersNumFixed": "0",
"CountersNumGeneric": "4"
},
{
"Unit": "iMC_UCLK",
"CountersNumFixed": "0",
"CountersNumGeneric": 4
},
{
"Unit": "M2PCIe",
"CountersNumFixed": "0",
"CountersNumGeneric": "4"
}
]
\ No newline at end of file
[
{
"BriefDescription": "Counts the number of floating operations retired that required microcode assists",
"Counter": "0,1",
"EventCode": "0xC3",
"EventName": "MACHINE_CLEARS.FP_ASSIST",
"PublicDescription": "This event counts the number of times that the pipeline stalled due to FP operations needing assists.",
......@@ -9,6 +10,7 @@
},
{
"BriefDescription": "Counts the number of packed SSE, AVX, AVX2, AVX-512 micro-ops (both floating point and integer) except for loads (memory-to-register mov-type micro-ops), packed byte and word multiplies.",
"Counter": "0,1",
"EventCode": "0xC2",
"EventName": "UOPS_RETIRED.PACKED_SIMD",
"PublicDescription": "The length of the packed operation (128bits, 256bits or 512bits) is not taken into account when updating the counter; all count the same (+1). \r\nMask (k) registers are ignored. For example: a micro-op operating with a mask that only enables one element or even zero elements will still trigger this counter (+1)\r\nThis event is defined at the micro-op level and not instruction level. Most instructions are implemented with one micro-op but not all.",
......@@ -17,6 +19,7 @@
},
{
"BriefDescription": "Counts the number of scalar SSE, AVX, AVX2, AVX-512 micro-ops except for loads (memory-to-register mov-type micro ops), division, sqrt.",
"Counter": "0,1",
"EventCode": "0xC2",
"EventName": "UOPS_RETIRED.SCALAR_SIMD",
"PublicDescription": "This event is defined at the micro-op level and not instruction level. Most instructions are implemented with one micro-op but not all.",
......
[
{
"BriefDescription": "Counts the number of times the front end resteers for any branch as a result of another branch handling mechanism in the front end.",
"Counter": "0,1",
"EventCode": "0xE6",
"EventName": "BACLEARS.ALL",
"SampleAfterValue": "200003",
......@@ -8,6 +9,7 @@
},
{
"BriefDescription": "Counts the number of times the front end resteers for conditional branches as a result of another branch handling mechanism in the front end.",
"Counter": "0,1",
"EventCode": "0xE6",
"EventName": "BACLEARS.COND",
"SampleAfterValue": "200003",
......@@ -15,6 +17,7 @@
},
{
"BriefDescription": "Counts the number of times the front end resteers for RET branches as a result of another branch handling mechanism in the front end.",
"Counter": "0,1",
"EventCode": "0xE6",
"EventName": "BACLEARS.RETURN",
"SampleAfterValue": "200003",
......@@ -22,6 +25,7 @@
},
{
"BriefDescription": "Counts all instruction fetches, including uncacheable fetches.",
"Counter": "0,1",
"EventCode": "0x80",
"EventName": "ICACHE.ACCESSES",
"SampleAfterValue": "200003",
......@@ -29,6 +33,7 @@
},
{
"BriefDescription": "Counts all instruction fetches that hit the instruction cache.",
"Counter": "0,1",
"EventCode": "0x80",
"EventName": "ICACHE.HIT",
"SampleAfterValue": "200003",
......@@ -36,6 +41,7 @@
},
{
"BriefDescription": "Counts all instruction fetches that miss the instruction cache or produce memory requests. An instruction fetch miss is counted only once and not once for every cycle it is outstanding.",
"Counter": "0,1",
"EventCode": "0x80",
"EventName": "ICACHE.MISSES",
"SampleAfterValue": "200003",
......@@ -43,6 +49,7 @@
},
{
"BriefDescription": "Counts the number of times the MSROM starts a flow of uops.",
"Counter": "0,1",
"EventCode": "0xE7",
"EventName": "MS_DECODED.MS_ENTRY",
"SampleAfterValue": "200003",
......
[
{
"BriefDescription": "Egress (to CMS) Cycles Full. Counts the number of cycles when the M2PCIe Egress is full. AD_0",
"Counter": "0,1,2,3",
"EventCode": "0x25",
"EventName": "UNC_M2P_EGRESS_CYCLES_FULL.AD_0",
"PerPkg": "1",
......@@ -9,6 +10,7 @@
},
{
"BriefDescription": "Egress (to CMS) Cycles Full. Counts the number of cycles when the M2PCIe Egress is full. AD_1",
"Counter": "0,1,2,3",
"EventCode": "0x25",
"EventName": "UNC_M2P_EGRESS_CYCLES_FULL.AD_1",
"PerPkg": "1",
......@@ -17,6 +19,7 @@
},
{
"BriefDescription": "Egress (to CMS) Cycles Full. Counts the number of cycles when the M2PCIe Egress is full. AK_0",
"Counter": "0,1,2,3",
"EventCode": "0x25",
"EventName": "UNC_M2P_EGRESS_CYCLES_FULL.AK_0",
"PerPkg": "1",
......@@ -25,6 +28,7 @@
},
{
"BriefDescription": "Egress (to CMS) Cycles Full. Counts the number of cycles when the M2PCIe Egress is full. AK_1",
"Counter": "0,1,2,3",
"EventCode": "0x25",
"EventName": "UNC_M2P_EGRESS_CYCLES_FULL.AK_1",
"PerPkg": "1",
......@@ -33,6 +37,7 @@
},
{
"BriefDescription": "Egress (to CMS) Cycles Full. Counts the number of cycles when the M2PCIe Egress is full. BL_0",
"Counter": "0,1,2,3",
"EventCode": "0x25",
"EventName": "UNC_M2P_EGRESS_CYCLES_FULL.BL_0",
"PerPkg": "1",
......@@ -41,6 +46,7 @@
},
{
"BriefDescription": "Egress (to CMS) Cycles Full. Counts the number of cycles when the M2PCIe Egress is full. BL_1",
"Counter": "0,1,2,3",
"EventCode": "0x25",
"EventName": "UNC_M2P_EGRESS_CYCLES_FULL.BL_1",
"PerPkg": "1",
......@@ -49,6 +55,7 @@
},
{
"BriefDescription": "Egress (to CMS) Cycles Not Empty. Counts the number of cycles when the M2PCIe Egress is not empty. AD_0",
"Counter": "0,1",
"EventCode": "0x23",
"EventName": "UNC_M2P_EGRESS_CYCLES_NE.AD_0",
"PerPkg": "1",
......@@ -57,6 +64,7 @@
},
{
"BriefDescription": "Egress (to CMS) Cycles Not Empty. Counts the number of cycles when the M2PCIe Egress is not empty. AD_1",
"Counter": "0,1",
"EventCode": "0x23",
"EventName": "UNC_M2P_EGRESS_CYCLES_NE.AD_1",
"PerPkg": "1",
......@@ -65,6 +73,7 @@
},
{
"BriefDescription": "Egress (to CMS) Cycles Not Empty. Counts the number of cycles when the M2PCIe Egress is not empty. AK_0",
"Counter": "0,1",
"EventCode": "0x23",
"EventName": "UNC_M2P_EGRESS_CYCLES_NE.AK_0",
"PerPkg": "1",
......@@ -73,6 +82,7 @@
},
{
"BriefDescription": "Egress (to CMS) Cycles Not Empty. Counts the number of cycles when the M2PCIe Egress is not empty. AK_1",
"Counter": "0,1",
"EventCode": "0x23",
"EventName": "UNC_M2P_EGRESS_CYCLES_NE.AK_1",
"PerPkg": "1",
......@@ -81,6 +91,7 @@
},
{
"BriefDescription": "Egress (to CMS) Cycles Not Empty. Counts the number of cycles when the M2PCIe Egress is not empty. BL_0",
"Counter": "0,1",
"EventCode": "0x23",
"EventName": "UNC_M2P_EGRESS_CYCLES_NE.BL_0",
"PerPkg": "1",
......@@ -89,6 +100,7 @@
},
{
"BriefDescription": "Egress (to CMS) Cycles Not Empty. Counts the number of cycles when the M2PCIe Egress is not empty. BL_1",
"Counter": "0,1",
"EventCode": "0x23",
"EventName": "UNC_M2P_EGRESS_CYCLES_NE.BL_1",
"PerPkg": "1",
......@@ -97,6 +109,7 @@
},
{
"BriefDescription": "Egress (to CMS) Ingress. Counts the number of number of messages inserted into the the M2PCIe Egress queue. AD_0",
"Counter": "0,1,2,3",
"EventCode": "0x24",
"EventName": "UNC_M2P_EGRESS_INSERTS.AD_0",
"PerPkg": "1",
......@@ -105,6 +118,7 @@
},
{
"BriefDescription": "Egress (to CMS) Ingress. Counts the number of number of messages inserted into the the M2PCIe Egress queue. AD_1",
"Counter": "0,1,2,3",
"EventCode": "0x24",
"EventName": "UNC_M2P_EGRESS_INSERTS.AD_1",
"PerPkg": "1",
......@@ -113,6 +127,7 @@
},
{
"BriefDescription": "Egress (to CMS) Ingress. Counts the number of number of messages inserted into the the M2PCIe Egress queue. AK_0",
"Counter": "0,1,2,3",
"EventCode": "0x24",
"EventName": "UNC_M2P_EGRESS_INSERTS.AK_0",
"PerPkg": "1",
......@@ -121,6 +136,7 @@
},
{
"BriefDescription": "Egress (to CMS) Ingress. Counts the number of number of messages inserted into the the M2PCIe Egress queue. AK_1",
"Counter": "0,1,2,3",
"EventCode": "0x24",
"EventName": "UNC_M2P_EGRESS_INSERTS.AK_1",
"PerPkg": "1",
......@@ -129,6 +145,7 @@
},
{
"BriefDescription": "Egress (to CMS) Ingress. Counts the number of number of messages inserted into the the M2PCIe Egress queue. AK_CRD_0",
"Counter": "0,1,2,3",
"EventCode": "0x24",
"EventName": "UNC_M2P_EGRESS_INSERTS.AK_CRD_0",
"PerPkg": "1",
......@@ -137,6 +154,7 @@
},
{
"BriefDescription": "Egress (to CMS) Ingress. Counts the number of number of messages inserted into the the M2PCIe Egress queue. AK_CRD_1",
"Counter": "0,1,2,3",
"EventCode": "0x24",
"EventName": "UNC_M2P_EGRESS_INSERTS.AK_CRD_1",
"PerPkg": "1",
......@@ -145,6 +163,7 @@
},
{
"BriefDescription": "Egress (to CMS) Ingress. Counts the number of number of messages inserted into the the M2PCIe Egress queue. BL_0",
"Counter": "0,1,2,3",
"EventCode": "0x24",
"EventName": "UNC_M2P_EGRESS_INSERTS.BL_0",
"PerPkg": "1",
......@@ -153,6 +172,7 @@
},
{
"BriefDescription": "Egress (to CMS) Ingress. Counts the number of number of messages inserted into the the M2PCIe Egress queue. BL_1",
"Counter": "0,1,2,3",
"EventCode": "0x24",
"EventName": "UNC_M2P_EGRESS_INSERTS.BL_1",
"PerPkg": "1",
......@@ -161,6 +181,7 @@
},
{
"BriefDescription": "Ingress Queue Cycles Not Empty. Counts the number of cycles when the M2PCIe Ingress is not empty.ALL",
"Counter": "0,1,2,3",
"EventCode": "0x10",
"EventName": "UNC_M2P_INGRESS_CYCLES_NE.ALL",
"PerPkg": "1",
......@@ -169,6 +190,7 @@
},
{
"BriefDescription": "Ingress Queue Cycles Not Empty. Counts the number of cycles when the M2PCIe Ingress is not empty.CBO_IDI",
"Counter": "0,1,2,3",
"EventCode": "0x10",
"EventName": "UNC_M2P_INGRESS_CYCLES_NE.CBO_IDI",
"PerPkg": "1",
......@@ -177,6 +199,7 @@
},
{
"BriefDescription": "Ingress Queue Cycles Not Empty. Counts the number of cycles when the M2PCIe Ingress is not empty.CBO_NCB",
"Counter": "0,1,2,3",
"EventCode": "0x10",
"EventName": "UNC_M2P_INGRESS_CYCLES_NE.CBO_NCB",
"PerPkg": "1",
......@@ -185,6 +208,7 @@
},
{
"BriefDescription": "Ingress Queue Cycles Not Empty. Counts the number of cycles when the M2PCIe Ingress is not empty.CBO_NCS",
"Counter": "0,1,2,3",
"EventCode": "0x10",
"EventName": "UNC_M2P_INGRESS_CYCLES_NE.CBO_NCS",
"PerPkg": "1",
......
[
{
"BriefDescription": "Counts the number of read requests and streaming stores that hit in MCDRAM cache and the data in MCDRAM is clean with respect to DDR. This event is only valid in cache and hybrid memory mode.",
"Counter": "0,1,2,3",
"EventCode": "0x02",
"EventName": "UNC_E_EDC_ACCESS.HIT_CLEAN",
"PerPkg": "1",
......@@ -9,6 +10,7 @@
},
{
"BriefDescription": "Counts the number of read requests and streaming stores that hit in MCDRAM cache and the data in MCDRAM is dirty with respect to DDR. This event is only valid in cache and hybrid memory mode.",
"Counter": "0,1,2,3",
"EventCode": "0x02",
"EventName": "UNC_E_EDC_ACCESS.HIT_DIRTY",
"PerPkg": "1",
......@@ -17,6 +19,7 @@
},
{
"BriefDescription": "Counts the number of read requests and streaming stores that miss in MCDRAM cache and the data evicted from the MCDRAM is clean with respect to DDR. This event is only valid in cache and hybrid memory mode.",
"Counter": "0,1,2,3",
"EventCode": "0x02",
"EventName": "UNC_E_EDC_ACCESS.MISS_CLEAN",
"PerPkg": "1",
......@@ -25,6 +28,7 @@
},
{
"BriefDescription": "Counts the number of read requests and streaming stores that miss in MCDRAM cache and the data evicted from the MCDRAM is dirty with respect to DDR. This event is only valid in cache and hybrid memory mode.",
"Counter": "0,1,2,3",
"EventCode": "0x02",
"EventName": "UNC_E_EDC_ACCESS.MISS_DIRTY",
"PerPkg": "1",
......@@ -33,6 +37,7 @@
},
{
"BriefDescription": "Number of EDC Hits or Misses. Miss I",
"Counter": "0,1,2,3",
"EventCode": "0x02",
"EventName": "UNC_E_EDC_ACCESS.MISS_INVALID",
"PerPkg": "1",
......@@ -41,12 +46,14 @@
},
{
"BriefDescription": "ECLK count",
"Counter": "0,1,2,3",
"EventName": "UNC_E_E_CLOCKTICKS",
"PerPkg": "1",
"Unit": "EDC_ECLK"
},
{
"BriefDescription": "Counts the number of read requests received by the MCDRAM controller. This event is valid in all three memory modes: flat, cache and hybrid. In cache and hybrid memory mode, this event counts all read requests as well as streaming stores that hit or miss in the MCDRAM cache.",
"Counter": "0,1,2,3",
"EventCode": "0x01",
"EventName": "UNC_E_RPQ_INSERTS",
"PerPkg": "1",
......@@ -55,12 +62,14 @@
},
{
"BriefDescription": "UCLK count",
"Counter": "0,1,2,3",
"EventName": "UNC_E_U_CLOCKTICKS",
"PerPkg": "1",
"Unit": "EDC_UCLK"
},
{
"BriefDescription": "Counts the number of write requests received by the MCDRAM controller. This event is valid in all three memory modes: flat, cache and hybrid. In cache and hybrid memory mode, this event counts all streaming stores, writebacks and, read requests that miss in MCDRAM cache.",
"Counter": "0,1,2,3",
"EventCode": "0x02",
"EventName": "UNC_E_WPQ_INSERTS",
"PerPkg": "1",
......@@ -69,6 +78,7 @@
},
{
"BriefDescription": "CAS All",
"Counter": "0,1,2,3",
"EventCode": "0x03",
"EventName": "UNC_M_CAS_COUNT.ALL",
"PerPkg": "1",
......@@ -77,6 +87,7 @@
},
{
"BriefDescription": "CAS Reads",
"Counter": "0,1,2,3",
"EventCode": "0x03",
"EventName": "UNC_M_CAS_COUNT.RD",
"PerPkg": "1",
......@@ -85,6 +96,7 @@
},
{
"BriefDescription": "CAS Writes",
"Counter": "0,1,2,3",
"EventCode": "0x03",
"EventName": "UNC_M_CAS_COUNT.WR",
"PerPkg": "1",
......@@ -93,12 +105,14 @@
},
{
"BriefDescription": "DCLK count",
"Counter": "0,1,2,3",
"EventName": "UNC_M_D_CLOCKTICKS",
"PerPkg": "1",
"Unit": "iMC_DCLK"
},
{
"BriefDescription": "UCLK count",
"Counter": "0,1,2,3",
"EventName": "UNC_M_U_CLOCKTICKS",
"PerPkg": "1",
"Unit": "iMC_UCLK"
......
[
{
"BriefDescription": "Counts the number of load micro-ops retired that cause a DTLB miss (Precise Event)",
"Counter": "0,1",
"Data_LA": "1",
"EventCode": "0x04",
"EventName": "MEM_UOPS_RETIRED.DTLB_MISS_LOADS",
......@@ -10,6 +11,7 @@
},
{
"BriefDescription": "Counts the total number of core cycles for all the page walks. The cycles for page walks started in speculative path will also be included.",
"Counter": "0,1",
"EventCode": "0x05",
"EventName": "PAGE_WALKS.CYCLES",
"PublicDescription": "This event counts every cycle when a data (D) page walk or instruction (I) page walk is in progress.",
......@@ -18,6 +20,7 @@
},
{
"BriefDescription": "Counts the total number of core cycles for all the D-side page walks. The cycles for page walks started in speculative path will also be included.",
"Counter": "0,1",
"EventCode": "0x05",
"EventName": "PAGE_WALKS.D_SIDE_CYCLES",
"SampleAfterValue": "200003",
......@@ -25,6 +28,7 @@
},
{
"BriefDescription": "Counts the total D-side page walks that are completed or started. The page walks started in the speculative path will also be counted",
"Counter": "0,1",
"EdgeDetect": "1",
"EventCode": "0x05",
"EventName": "PAGE_WALKS.D_SIDE_WALKS",
......@@ -33,6 +37,7 @@
},
{
"BriefDescription": "Counts the total number of core cycles for all the I-side page walks. The cycles for page walks started in speculative path will also be included.",
"Counter": "0,1",
"EventCode": "0x05",
"EventName": "PAGE_WALKS.I_SIDE_CYCLES",
"PublicDescription": "This event counts every cycle when an I-side (walks due to an instruction fetch) page walk is in progress.",
......@@ -41,6 +46,7 @@
},
{
"BriefDescription": "Counts the total I-side page walks that are completed.",
"Counter": "0,1",
"EdgeDetect": "1",
"EventCode": "0x05",
"EventName": "PAGE_WALKS.I_SIDE_WALKS",
......@@ -49,6 +55,7 @@
},
{
"BriefDescription": "Counts the total page walks that are completed (I-side and D-side)",
"Counter": "0,1",
"EdgeDetect": "1",
"EventCode": "0x05",
"EventName": "PAGE_WALKS.WALKS",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment