Commit b5ff7f27 authored by Jin Yao's avatar Jin Yao Committed by Arnaldo Carvalho de Melo

perf vendor events: Update SkylakeX events to v1.21

- Update SkylakeX events to v1.21.
- Update SkylakeX JSON metrics from TMAM 4.0.

Other fixes:

- Add NO_NMI_WATCHDOG metric constraint to Backend_Bound
- Fix misspelled error
Signed-off-by: default avatarJin Yao <yao.jin@linux.intel.com>
Reviewed-by: default avatarAndi Kleen <ak@linux.intel.com>
Acked-by: default avatarIan Rogers <irogers@google.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/lkml/20200922031918.3723-1-yao.jin@linux.intel.com/Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 038d3b53
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -94,17 +94,7 @@ ...@@ -94,17 +94,7 @@
"Unit": "iMC" "Unit": "iMC"
}, },
{ {
"BriefDescription": "read requests to memory controller. Derived from unc_m_cas_count.rd", "BriefDescription": "All DRAM Read CAS Commands issued (does not include underfills)",
"Counter": "0,1,2,3",
"EventCode": "0x4",
"EventName": "LLC_MISSES.MEM_READ",
"PerPkg": "1",
"ScaleUnit": "64Bytes",
"UMask": "0x3",
"Unit": "iMC"
},
{
"BriefDescription": "All DRAM Read CAS Commands issued (does not include underfills) ",
"Counter": "0,1,2,3", "Counter": "0,1,2,3",
"EventCode": "0x4", "EventCode": "0x4",
"EventName": "UNC_M_CAS_COUNT.RD_REG", "EventName": "UNC_M_CAS_COUNT.RD_REG",
...@@ -119,18 +109,18 @@ ...@@ -119,18 +109,18 @@
"EventCode": "0x4", "EventCode": "0x4",
"EventName": "UNC_M_CAS_COUNT.RD_UNDERFILL", "EventName": "UNC_M_CAS_COUNT.RD_UNDERFILL",
"PerPkg": "1", "PerPkg": "1",
"PublicDescription": "Counts CAS (Column Access Select) underfill read commands issued to DRAM due to a partial write, on a per channel basis. CAS commands are issued to specify the address to read or write on DRAM, and this command counts underfill reads. Partial writes must be completed by first reading in the underfill from DRAM and then merging in the partial write data before writing the full line back to DRAM. This event will generally count about the same as the number of partial writes, but may be slightly less because of partials hitting in the WPQ (due to a previous write request). ", "PublicDescription": "Counts CAS (Column Access Select) underfill read commands issued to DRAM due to a partial write, on a per channel basis. CAS commands are issued to specify the address to read or write on DRAM, and this command counts underfill reads. Partial writes must be completed by first reading in the underfill from DRAM and then merging in the partial write data before writing the full line back to DRAM. This event will generally count about the same as the number of partial writes, but may be slightly less because of partials hitting in the WPQ (due to a previous write request).",
"UMask": "0x2", "UMask": "0x2",
"Unit": "iMC" "Unit": "iMC"
}, },
{ {
"BriefDescription": "write requests to memory controller. Derived from unc_m_cas_count.wr", "BriefDescription": "DRAM CAS (Column Address Strobe) Commands.; DRAM WR_CAS (w/ and w/out auto-pre) in Write Major Mode",
"Counter": "0,1,2,3", "Counter": "0,1,2,3",
"EventCode": "0x4", "EventCode": "0x4",
"EventName": "LLC_MISSES.MEM_WRITE", "EventName": "UNC_M_CAS_COUNT.WR_WMM",
"PerPkg": "1", "PerPkg": "1",
"ScaleUnit": "64Bytes", "PublicDescription": "Counts the total number or DRAM Write CAS commands issued on this channel while in Write-Major-Mode.",
"UMask": "0xC", "UMask": "0x4",
"Unit": "iMC" "Unit": "iMC"
}, },
{ {
...@@ -139,7 +129,7 @@ ...@@ -139,7 +129,7 @@
"EventCode": "0x10", "EventCode": "0x10",
"EventName": "UNC_M_RPQ_INSERTS", "EventName": "UNC_M_RPQ_INSERTS",
"PerPkg": "1", "PerPkg": "1",
"PublicDescription": "Counts the number of read requests allocated into the Read Pending Queue (RPQ). This queue is used to schedule reads out to the memory controller and to track the requests. Requests allocate into the RPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the CHA to the iMC. The requests deallocate after the read CAS command has been issued to DRAM. This event counts both Isochronous and non-Isochronous requests which were issued to the RPQ. ", "PublicDescription": "Counts the number of read requests allocated into the Read Pending Queue (RPQ). This queue is used to schedule reads out to the memory controller and to track the requests. Requests allocate into the RPQ soon after they enter the memory controller, and need credits for an entry in this buffer before being sent from the CHA to the iMC. The requests deallocate after the read CAS command has been issued to DRAM. This event counts both Isochronous and non-Isochronous requests which were issued to the RPQ.",
"Unit": "iMC" "Unit": "iMC"
}, },
{ {
...@@ -166,7 +156,7 @@ ...@@ -166,7 +156,7 @@
"EventCode": "0x81", "EventCode": "0x81",
"EventName": "UNC_M_WPQ_OCCUPANCY", "EventName": "UNC_M_WPQ_OCCUPANCY",
"PerPkg": "1", "PerPkg": "1",
"PublicDescription": "Counts the number of entries in the Write Pending Queue (WPQ) at 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 writes out to the memory controller and to track the requests.", "PublicDescription": "Counts the number of entries in the Write Pending Queue (WPQ) at 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 writes out to the memory controller and to track the requests. 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 CHA to the iMC (memory controller). 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. Is there a filter of sorts???",
"Unit": "iMC" "Unit": "iMC"
} }
] ]
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