[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20250829041104.4186320-23-irogers@google.com>
Date: Thu, 28 Aug 2025 21:11:03 -0700
From: Ian Rogers <irogers@...gle.com>
To: Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>, Namhyung Kim <namhyung@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>, Jiri Olsa <jolsa@...nel.org>,
Ian Rogers <irogers@...gle.com>, Adrian Hunter <adrian.hunter@...el.com>,
Kan Liang <kan.liang@...ux.intel.com>, James Clark <james.clark@...aro.org>,
Xu Yang <xu.yang_2@....com>, linux-kernel@...r.kernel.org,
linux-perf-users@...r.kernel.org, John Garry <john.g.garry@...cle.com>,
Jing Zhang <renyu.zj@...ux.alibaba.com>, Sandipan Das <sandipan.das@....com>,
Benjamin Gray <bgray@...ux.ibm.com>, Perry Taylor <perry.taylor@...el.com>,
Samantha Alt <samantha.alt@...el.com>, Caleb Biggers <caleb.biggers@...el.com>,
Weilin Wang <weilin.wang@...el.com>, Edward Baker <edward.baker@...el.com>,
Thomas Falcon <thomas.falcon@...el.com>
Subject: [PATCH v5 22/22] perf jevents: Add mesh bandwidth saturation metric
for Intel
Memory bandwidth saturation from CBOX/CHA events present in
broadwellde, broadwellx, cascadelakex, haswellx, icelakex, skylakex
and snowridgex.
Signed-off-by: Ian Rogers <irogers@...gle.com>
---
tools/perf/pmu-events/intel_metrics.py | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/tools/perf/pmu-events/intel_metrics.py b/tools/perf/pmu-events/intel_metrics.py
index 19c7357c496a..7250e8c8eeba 100755
--- a/tools/perf/pmu-events/intel_metrics.py
+++ b/tools/perf/pmu-events/intel_metrics.py
@@ -1009,6 +1009,22 @@ def UncoreMemBw() -> Optional[MetricGroup]:
], description = "Memory Bandwidth")
+def UncoreMemSat() -> Optional[Metric]:
+ try:
+ clocks = Event("UNC_CHA_CLOCKTICKS", "UNC_C_CLOCKTICKS")
+ sat = Event("UNC_CHA_DISTRESS_ASSERTED.VERT", "UNC_CHA_FAST_ASSERTED.VERT",
+ "UNC_C_FAST_ASSERTED")
+ except:
+ return None
+
+ desc = ("Mesh Bandwidth saturation (% CBOX cycles with FAST signal asserted, "
+ "include QPI bandwidth saturation), lower is better")
+ if "UNC_CHA_" in sat.name:
+ desc = ("Mesh Bandwidth saturation (% CHA cycles with FAST signal asserted, "
+ "include UPI bandwidth saturation), lower is better")
+ return Metric("lpm_mem_sat", desc, d_ratio(sat, clocks), "100%")
+
+
def UncoreUpiBw() -> Optional[MetricGroup]:
try:
upi_rds = Event("UNC_UPI_RxL_FLITS.ALL_DATA")
@@ -1071,6 +1087,7 @@ def main() -> None:
UncoreDir(),
UncoreMem(),
UncoreMemBw(),
+ UncoreMemSat(),
UncoreUpiBw(),
])
--
2.51.0.318.gd7df087d1a-goog
Powered by blists - more mailing lists