From 98b2602d83de6625bae1e6fcaab3a39b0a341255 Mon Sep 17 00:00:00 2001 From: Perry Taylor Date: Mon, 23 Feb 2026 09:39:44 -0700 Subject: [PATCH 1/2] GNR SNC metrics --- GNR/metrics/graniterapids_metrics.json | 112 +++++++++++++++++- .../perf/graniterapids_metrics_perf.json | 31 +++++ mapfile.csv | 4 +- 3 files changed, 143 insertions(+), 4 deletions(-) diff --git a/GNR/metrics/graniterapids_metrics.json b/GNR/metrics/graniterapids_metrics.json index aeff6ae4..28617ffe 100644 --- a/GNR/metrics/graniterapids_metrics.json +++ b/GNR/metrics/graniterapids_metrics.json @@ -2,8 +2,8 @@ "Header": { "Copyright": "Copyright (c) 2001 - 2025 Intel Corporation. All rights reserved.", "Info": "Performance Monitoring Metrics for Intel(R) Xeon(R) 6 Processor with P-cores0", - "DatePublished": "06/17/2025", - "Version": "1.1", + "DatePublished": "02/23/2026", + "Version": "1.2", "Legend": "", "TmaVersion": "5.1", "TmaFlavor": "Full" @@ -999,6 +999,92 @@ "ResolutionLevels": "CHA, SOCKET, SYSTEM", "MetricGroup": "" }, + { + "MetricName": "numa_percent_all_reads_to_local_cluster_memory", + "LegacyName": "metric_NUMA % all reads to local cluster memory", + "Level": 1, + "BriefDescription": "All reads to the local sub-numa cluster memory as a percentage of total memory read accesses. Includes demand and prefetch requests for data reads, code reads, read for ownerships (RFO), does not include LLC prefetches. ", + "UnitOfMeasure": "percent", + "Events": [ + { + "Name": "OCR.READS_TO_CORE.L3_MISS_LOCAL", + "Alias": "a" + }, + { + "Name": "L2_LINES_IN.ALL", + "Alias": "c" + } + ], + "Constants": [], + "Formula": "100 * (a / c)", + "Category": "NUMA", + "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", + "MetricGroup": "" + }, + { + "MetricName": "numa_percent_all_reads_to_remote_cluster_cache", + "LegacyName": "metric_NUMA % all reads to remote cluster cache", + "Level": 1, + "BriefDescription": "All reads to a remote sub-numa cluster cache as a percentage of total memory read accesses. Includes demand and prefetch requests for data reads, code reads, read for ownerships (RFO), does not include LLC prefetches. ", + "UnitOfMeasure": "percent", + "Events": [ + { + "Name": "OCR.READS_TO_CORE.SNC_CACHE.HITM", + "Alias": "a" + }, + { + "Name": "OCR.READS_TO_CORE.SNC_CACHE.HIT_WITH_FWD", + "Alias": "b" + }, + { + "Name": "L2_LINES_IN.ALL", + "Alias": "c" + } + ], + "Constants": [], + "Formula": "100 * ((b + a) / c)", + "Category": "NUMA", + "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", + "MetricGroup": "" + }, + { + "MetricName": "numa_percent_all_reads_to_local_cluster_cache", + "LegacyName": "metric_NUMA % all reads to local cluster cache", + "Level": 1, + "BriefDescription": "All reads to the local sub-numa cluster cache as a percentage of total memory read accesses. Includes demand and prefetch requests for data reads, code reads, read for ownerships (RFO), does not include LLC prefetches. ", + "UnitOfMeasure": "percent", + "Events": [ + { + "Name": "OCR.READS_TO_CORE.SNC_CACHE.HITM", + "Alias": "a" + }, + { + "Name": "OCR.READS_TO_CORE.SNC_CACHE.HIT_WITH_FWD", + "Alias": "b" + }, + { + "Name": "OCR.READS_TO_CORE.REMOTE_CACHE.SNOOP_FWD", + "Alias": "d" + }, + { + "Name": "OCR.READS_TO_CORE.REMOTE_MEMORY", + "Alias": "e" + }, + { + "Name": "OCR.READS_TO_CORE.L3_MISS_LOCAL", + "Alias": "f" + }, + { + "Name": "L2_LINES_IN.ALL", + "Alias": "g" + } + ], + "Constants": [], + "Formula": "100 * (g - (a + b + d + e + f) ) / g", + "Category": "NUMA", + "ResolutionLevels": "THREAD, CORE, SOCKET, SYSTEM", + "MetricGroup": "" + }, { "MetricName": "io_msi", "LegacyName": "metric_IO MSI per sec", @@ -1017,6 +1103,28 @@ "ResolutionLevels": "IIO, SOCKET, SYSTEM", "MetricGroup": "" }, + { + "MetricName": "io_lost_fwd", + "LegacyName": "metric_IO lost fwd per sec", + "Level": 1, + "BriefDescription": "The number of times per second that ownership of a cacheline was stolen from the integrated IO controller before it was able to write back the modified line.", + "UnitOfMeasure": "per second", + "Events": [ + { + "Name": "UNC_I_MISC1.SEC_RCVD_INVLD", + "Alias": "a" + }, + { + "Name": "UNC_I_MISC1.LOST_FWD", + "Alias": "a" + } + ], + "Constants": [], + "Formula": "(a + b) / DURATIONTIMEINSECONDS", + "Category": "IO", + "ResolutionLevels": "IRP, SOCKET, SYSTEM", + "MetricGroup": "" + }, { "MetricName": "llc_miss_local_memory_bandwidth_read", "LegacyName": "metric_llc_miss_local_memory_bandwidth_read_MB/s", diff --git a/GNR/metrics/perf/graniterapids_metrics_perf.json b/GNR/metrics/perf/graniterapids_metrics_perf.json index af9d2784..1d5ac4fc 100644 --- a/GNR/metrics/perf/graniterapids_metrics_perf.json +++ b/GNR/metrics/perf/graniterapids_metrics_perf.json @@ -282,6 +282,30 @@ "MetricName": "io_bandwidth_write_remote", "ScaleUnit": "1MB/s" }, + { + "BriefDescription": "All reads to the local sub-numa cluster memory as a percentage of total memory read accesses", + "MetricExpr": "( OCR.READS_TO_CORE.L3_MISS_LOCAL / L2_LINES_IN.ALL )", + "MetricGroup": "", + "MetricName": "numa_percent_all_reads_to_local_cluster_memory", + "ScaleUnit": "100%", + "PublicDescription": "All reads to the local sub-numa cluster memory as a percentage of total memory read accesses. Includes demand and prefetch requests for data reads, code reads, read for ownerships (RFO), does not include LLC prefetches." + }, + { + "BriefDescription": "All reads to a remote sub-numa cluster cache as a percentage of total memory read accesses", + "MetricExpr": "( ( OCR.READS_TO_CORE.SNC_CACHE.HIT_WITH_FWD + OCR.READS_TO_CORE.SNC_CACHE.HITM ) / L2_LINES_IN.ALL )", + "MetricGroup": "", + "MetricName": "numa_percent_all_reads_to_remote_cluster_cache", + "ScaleUnit": "100%", + "PublicDescription": "All reads to a remote sub-numa cluster cache as a percentage of total memory read accesses. Includes demand and prefetch requests for data reads, code reads, read for ownerships (RFO), does not include LLC prefetches." + }, + { + "BriefDescription": "All reads to the local sub-numa cluster cache as a percentage of total memory read accesses", + "MetricExpr": "( L2_LINES_IN.ALL - ( OCR.READS_TO_CORE.SNC_CACHE.HITM + OCR.READS_TO_CORE.SNC_CACHE.HIT_WITH_FWD + OCR.READS_TO_CORE.REMOTE_CACHE.SNOOP_FWD + OCR.READS_TO_CORE.REMOTE_MEMORY + OCR.READS_TO_CORE.L3_MISS_LOCAL ) ) / L2_LINES_IN.ALL", + "MetricGroup": "", + "MetricName": "numa_percent_all_reads_to_local_cluster_cache", + "ScaleUnit": "100%", + "PublicDescription": "All reads to the local sub-numa cluster cache as a percentage of total memory read accesses. Includes demand and prefetch requests for data reads, code reads, read for ownerships (RFO), does not include LLC prefetches." + }, { "BriefDescription": "Message Signaled Interrupts (MSI) per second sent by the integrated I/O traffic controller (IIO) to System Configuration Controller (Ubox)", "MetricExpr": "( UNC_IIO_NUM_REQ_OF_CPU_BY_TGT.UBOX_POSTED ) / duration_time", @@ -289,6 +313,13 @@ "MetricName": "io_msi", "ScaleUnit": "1per_sec" }, + { + "BriefDescription": "The number of times per second that ownership of a cacheline was stolen from the integrated IO controller before it was able to write back the modified line", + "MetricExpr": "( UNC_I_MISC1.SEC_RCVD_INVLD + B ) / duration_time", + "MetricGroup": "", + "MetricName": "io_lost_fwd", + "ScaleUnit": "1per_sec" + }, { "BriefDescription": "Bandwidth (MB/sec) of read requests that miss the last level cache (LLC) and go to local memory", "MetricExpr": "( UNC_CHA_REQUESTS.READS_LOCAL * 64 / 1000000 ) / duration_time", diff --git a/mapfile.csv b/mapfile.csv index 0fb6b44c..df91ea62 100644 --- a/mapfile.csv +++ b/mapfile.csv @@ -203,12 +203,12 @@ GenuineIntel-6-B5,V1.1,/MTL/metrics/meteorlake_metrics_redwoodcove_core.json,met GenuineIntel-6-AD,V1.17,/GNR/events/graniterapids_core.json,core,,, GenuineIntel-6-AD,V1.17,/GNR/events/graniterapids_uncore.json,uncore,,, GenuineIntel-6-AD,V1.17,/GNR/events/graniterapids_uncore_experimental.json,uncore experimental,,, -GenuineIntel-6-AD,V1.1,/GNR/metrics/graniterapids_metrics.json,metrics,,, +GenuineIntel-6-AD,V1.2,/GNR/metrics/graniterapids_metrics.json,metrics,,, GenuineIntel-6-AD,V1.08,/GNR/metrics/graniterapids_retire_latency.json,retire latency,,, GenuineIntel-6-AE,V1.17,/GNR/events/graniterapids_core.json,core,,, GenuineIntel-6-AE,V1.17,/GNR/events/graniterapids_uncore.json,uncore,,, GenuineIntel-6-AE,V1.17,/GNR/events/graniterapids_uncore_experimental.json,uncore experimental,,, -GenuineIntel-6-AE,V1.1,/GNR/metrics/graniterapids_metrics.json,metrics,,, +GenuineIntel-6-AE,V1.2,/GNR/metrics/graniterapids_metrics.json,metrics,,, GenuineIntel-6-AE,V1.08,/GNR/metrics/graniterapids_retire_latency.json,retire latency,,, GenuineIntel-6-AF,V1.14,/SRF/events/sierraforest_core.json,core,,, GenuineIntel-6-AF,V1.14,/SRF/events/sierraforest_uncore.json,uncore,,, From 04cf5e1e804afd775401167870d48cd25864be7b Mon Sep 17 00:00:00 2001 From: Perry Taylor Date: Mon, 23 Feb 2026 10:02:11 -0700 Subject: [PATCH 2/2] correcting lost fwd alias --- GNR/metrics/graniterapids_metrics.json | 2 +- GNR/metrics/perf/graniterapids_metrics_perf.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/GNR/metrics/graniterapids_metrics.json b/GNR/metrics/graniterapids_metrics.json index 28617ffe..87559baa 100644 --- a/GNR/metrics/graniterapids_metrics.json +++ b/GNR/metrics/graniterapids_metrics.json @@ -1112,7 +1112,7 @@ "Events": [ { "Name": "UNC_I_MISC1.SEC_RCVD_INVLD", - "Alias": "a" + "Alias": "b" }, { "Name": "UNC_I_MISC1.LOST_FWD", diff --git a/GNR/metrics/perf/graniterapids_metrics_perf.json b/GNR/metrics/perf/graniterapids_metrics_perf.json index 1d5ac4fc..fb481592 100644 --- a/GNR/metrics/perf/graniterapids_metrics_perf.json +++ b/GNR/metrics/perf/graniterapids_metrics_perf.json @@ -315,7 +315,7 @@ }, { "BriefDescription": "The number of times per second that ownership of a cacheline was stolen from the integrated IO controller before it was able to write back the modified line", - "MetricExpr": "( UNC_I_MISC1.SEC_RCVD_INVLD + B ) / duration_time", + "MetricExpr": "( UNC_I_MISC1.LOST_FWD + UNC_I_MISC1.SEC_RCVD_INVLD ) / duration_time", "MetricGroup": "", "MetricName": "io_lost_fwd", "ScaleUnit": "1per_sec"