From nobody Sun Feb 8 02:21:54 2026 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E670F12E5B for ; Thu, 29 Feb 2024 00:15:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165747; cv=none; b=nslTBYOeo+6hn4vIW2UbybRi6BJB/6gFZ6a0zsRC4GsqvrQktrx2WjdSyvLywnCVhNv0tTZBp5T1Q44qgdfkrIfQ8MVehPzudxIY0dK8P+mnCNE46jmtTqdsLzM7ivC4pmLNejIPmaRzvM1XMTrNSdOscc7HbVj3V+t1ayf6G/U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165747; c=relaxed/simple; bh=RzPNAkcYFaWtPD0d/orbD+ZkcQxuwvwqzQzOuKyN1IE=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=bb6xmdTAEDbfctDuJJOPcP/hsiKLPM6rYbBnE/d+bweVKzbL22p4ElUQAu7jEdGOXEPdpLrVS5eKwCmuQtjP9ZXNOQLGFNgTACMV62lx8O0i7C80pNa71cZ9XBw+lxqkCRnM9nMu+Zie6iM22TfRTKZbhfZqUzjz5oDPiMeAxZY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=DMwi+yyz; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="DMwi+yyz" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-607a628209eso6340677b3.3 for ; Wed, 28 Feb 2024 16:15:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709165745; x=1709770545; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=Pr4WIv++H0HDAnrGFLxDjHsCZ1ntGDE7FfUCE5Wa1h4=; b=DMwi+yyzPIDxeLUohhLyyw3Uevex68cK35ybDsd9KNGqd5SNUEO+hP4KOObu+/rKfw ENWiNj3If0uSM/Uwa8D4vEqKIG8socREWoXrjYocmcqu5lcC1Oj37X1/OaDtAY2QDU1G 4VwYHXwkdWkzcMK9CgFCiqSYSu3GGGmXC2Q7NLcd7XZ6XUG+TgZ9o8wEHWYKk0wuX5rz d+fEvZHCeVQ/rPbkm3TScoMWPqsvOP4ttNrLwj/40Tsn2eDO91cYQf+oGjqkZZ1FyyIq FxcVLi4FQqGU1f86EZ/LPi2tBMz/HXBYP71Ae2g3HP4dmJPHCdBygcllzM7cv75nFVT/ +fUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709165745; x=1709770545; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Pr4WIv++H0HDAnrGFLxDjHsCZ1ntGDE7FfUCE5Wa1h4=; b=Tkj8KZN01oxHc3OsT69GHqU/TXVDtC3XE2Cd1ECQyZ9F+GA2fWKTUaGJIRLBzWI/lj Uv7NfU4ZNJl0/uRo4eBZ6jUCEQ8bX/Hvb5YZ+9gFjm6K7ve7t+kiz6grmUaXpFOYZqoY 1gpyLlMYGvKcA7H3m/zaXII/cc6wg3JdcvA4l+5oZYbmnSq1iIumdp9ACSrCT0KbheoA HU4cIbsnLVRIZ1MIzD8jVdt6c9/boLPmIwxeJ87gY8+bDT7Qd2YdQ0MaWNBskgqGRNWZ DeToYNSVBYvq/UB+zm2BBJe5dr7jF5SLeXWoLZFmdQszPcocXl4VuOFFsqjdDRBbih/7 zsEA== X-Forwarded-Encrypted: i=1; AJvYcCXvKjxj45hC8eP5njhgKjsBH18AlMsKH4FkZt7xxE8olrAAEwipaCJWmBdhZOQRo41YhQunLGEp3tBvo52vgX3vexOqe9j64iDGq7AM X-Gm-Message-State: AOJu0YxU5NdGYkoPTBzFrNy2Lj88ElMLoeLmGati+5br+tPcc7WBR9vR qHwAD20fNNXkHQlc24MSeKZ/ousHawRML85HBl4ElMlCqZWU1Q7voFb4NaiS5Q79HUIxNwINzOz 3H8aHCw== X-Google-Smtp-Source: AGHT+IFAGDlooaxb4JUzFOd4FVURqFLJ3cLhFWTMF7Ek4ZhqqGZ3hz7Iz/E+Wym48GXf3UUgFDjuVIILXDdJ X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a81:9a86:0:b0:608:bee6:150c with SMTP id r128-20020a819a86000000b00608bee6150cmr153903ywg.8.1709165745002; Wed, 28 Feb 2024 16:15:45 -0800 (PST) Date: Wed, 28 Feb 2024 16:15:25 -0800 In-Reply-To: <20240229001537.4158049-1-irogers@google.com> Message-Id: <20240229001537.4158049-2-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240229001537.4158049-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 01/13] perf jevents: Add RAPL event metric for AMD zen models From: Ian Rogers To: Sandipan Das , Ravi Bangoria , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , John Garry , Kan Liang , Jing Zhang , Thomas Richter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephane Eranian Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add power per second metrics based on RAPL. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/amd_metrics.py | 30 ++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/a= md_metrics.py index 227f9b98c016..4016ecee6464 100755 --- a/tools/perf/pmu-events/amd_metrics.py +++ b/tools/perf/pmu-events/amd_metrics.py @@ -1,9 +1,10 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) -from metric import (JsonEncodeMetric, JsonEncodeMetricGroupDescriptions, L= oadEvents, - MetricGroup) +from metric import (d_ratio, has_event, Event, JsonEncodeMetric, JsonEncod= eMetricGroupDescriptions, + LoadEvents, Metric, MetricGroup, Select) import argparse import json +import math import os =20 parser =3D argparse.ArgumentParser(description=3D"AMD perf json generator") @@ -16,6 +17,31 @@ LoadEvents(directory) =20 all_metrics =3D MetricGroup("",[]) =20 +interval_sec =3D Event("duration_time") + +def Rapl() -> MetricGroup: + """Processor socket power consumption estimate. + + Use events from the running average power limit (RAPL) driver. + """ + # Watts =3D joules/second + # Currently only energy-pkg is supported by AMD: + # https://lore.kernel.org/lkml/20220105185659.643355-1-eranian@google.co= m/ + pkg =3D Event("power/energy\-pkg/") + cond_pkg =3D Select(pkg, has_event(pkg), math.nan) + scale =3D 2.3283064365386962890625e-10 + metrics =3D [ + Metric("cpu_power_pkg", "", + d_ratio(cond_pkg * scale, interval_sec), "Watts"), + ] + + return MetricGroup("cpu_power", metrics, + description=3D"Processor socket power consumption est= imates") + +all_metrics =3D MetricGroup("", [ + Rapl(), +]) + if args.metricgroups: print(JsonEncodeMetricGroupDescriptions(all_metrics)) else: --=20 2.44.0.278.ge034bb2e1d-goog From nobody Sun Feb 8 02:21:54 2026 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6E3BE1E507 for ; Thu, 29 Feb 2024 00:15:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165749; cv=none; b=uZSU4qhgx3v05ZGxxDRt9tWptjJa1EHp9YfHGgBdygKdeD4ZrBGcAenjEp5za8jMa/JCs7mkhjwqq3OdldvIbCWJd9FRfK/La9bTv1U9AQF1zrhj9ovRdtPDXkOh1uc5s43w948yd8Iq2ZlDVpg4pM8FL2b9Fj3Vf1xETY3FYHs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165749; c=relaxed/simple; bh=Dfpdo2YwplSQDWWpMc73Uzmy+I+y4UMFYX3EUMZzsvM=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=q63TNhUnztdNBvMkyB9cEwqdoA2PS6SLVUKS/qjXIPSWIxT2hIg9//o/fOhGw1AfAIAr1iziS+3jmYE94jpdKutBDnvGcWdd3iZelzgI3GyjUPdhfg3kyE49rvQlJd2XYxnWKE2U/J0CCQ7tpfe6sj+fzHf8WnalaAi4ur1A2GM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=1BLPzBn8; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="1BLPzBn8" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-5ee22efe5eeso6397887b3.3 for ; Wed, 28 Feb 2024 16:15:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709165747; x=1709770547; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=R1z+XJES0GLGr0Q8oaGDYo7B4O7AcfZJJPh1SyEgcrw=; b=1BLPzBn89W0Tdh3j9cdOTO/vJxleAcibZR2pwDCEc3w7FJEci1cEqUW4A4vaqVm0h6 dBNXFhyhMgcGeV20wGtNfnuNdEBLENpXkQ97/sorr8IYcvKRyXj7H2Cxr+1KjpdBUABS NVYkXl9LlD9cAqBVkdUqbyo5pnxtwTn7cXKmuqPobO4J7DaCGUBYWxafTIWXn5GW3kAs J1UYAIpKs4fB73cs3y+5wy5Jyw2Q84D8RfDxX0Z575hcvliI7t20GxQVoXUHwpTbej4D ucyNOr/rtSYZTgZhdkjPj8FoDqcHkANMrxug3uUcz2s6QXF53S2MaKnP4viceufBmv0s xDuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709165747; x=1709770547; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=R1z+XJES0GLGr0Q8oaGDYo7B4O7AcfZJJPh1SyEgcrw=; b=EXt1H9Uv10Fszt2tTM9PTnkG7q+wouUrqSMfG9b98dnp9k7TNvIk2bC0JRrbotn5V0 nA9roLCN5+uu6NEjVQTBt+phfIJVyZ3W+1IeHqRnKPabq0sY5RXk1X1u4S4IVACi8F9x K0vFQ/Fh3L3TRdiHujAQhBcvSlqWuuG977T53E4aVfdDyysjXN1sFHv7xTL9yuqIA6XE 4cEhgtaXNNiBDep4YPSIs9Nhn7XpGfyWfGyRVHQjfzK4wPao1pjgHxg5fHZuC4ywyJdX Fictux6mvWQPxqCeF+NA7lxavs684LpUq5CXHkiNLbNNUyfakZmRPPjZGNiatT3akRtI QTRQ== X-Forwarded-Encrypted: i=1; AJvYcCVJiqbR5EckqLQQzivhzJKZctf8VQs+Mu+eXeleElYLhX4OruoZXUBbRPnaqnixOjDlQfabKFNHL9NYzjgc1KSoVFZbREckXUV0bkyx X-Gm-Message-State: AOJu0Yx8sktYSzXRrqh3vt3U2lkyLjdIRlukkvdlCOSz+D9kODmCbsug ZUuFZUmJGb/X5QpQy48aCUXj0+dPujqIIeHASbBmjqOxDaZgdArJ1GnUhk867ml6s1vd18xPV+1 P84XUVg== X-Google-Smtp-Source: AGHT+IGZ2G5HVElLXvbFoGXcebpq9RsE79E/PZGstTBYxPQKg/pbonCsSFVPw3r4QeMKxfTeLw7P4boJe3U/ X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:690c:3505:b0:609:343e:db43 with SMTP id fq5-20020a05690c350500b00609343edb43mr117344ywb.5.1709165747562; Wed, 28 Feb 2024 16:15:47 -0800 (PST) Date: Wed, 28 Feb 2024 16:15:26 -0800 In-Reply-To: <20240229001537.4158049-1-irogers@google.com> Message-Id: <20240229001537.4158049-3-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240229001537.4158049-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 02/13] perf jevents: Add idle metric for AMD zen models From: Ian Rogers To: Sandipan Das , Ravi Bangoria , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , John Garry , Kan Liang , Jing Zhang , Thomas Richter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephane Eranian Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Compute using the msr PMU the percentage of wallclock cycles where the CPUs are in a low power state. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/amd_metrics.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/a= md_metrics.py index 4016ecee6464..fd3095cb5c1d 100755 --- a/tools/perf/pmu-events/amd_metrics.py +++ b/tools/perf/pmu-events/amd_metrics.py @@ -1,7 +1,8 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) -from metric import (d_ratio, has_event, Event, JsonEncodeMetric, JsonEncod= eMetricGroupDescriptions, - LoadEvents, Metric, MetricGroup, Select) +from metric import (d_ratio, has_event, max, Event, JsonEncodeMetric, + JsonEncodeMetricGroupDescriptions, LoadEvents, Metric, + MetricGroup, Select) import argparse import json import math @@ -19,6 +20,16 @@ all_metrics =3D MetricGroup("",[]) =20 interval_sec =3D Event("duration_time") =20 +def Idle() -> Metric: + cyc =3D Event("msr/mperf/") + tsc =3D Event("msr/tsc/") + low =3D max(tsc - cyc, 0) + return Metric( + "idle", + "Percentage of total wallclock cycles where CPUs are in low power st= ate (C1 or deeper sleep state)", + d_ratio(low, tsc), "100%") + + def Rapl() -> MetricGroup: """Processor socket power consumption estimate. =20 @@ -39,6 +50,7 @@ def Rapl() -> MetricGroup: description=3D"Processor socket power consumption est= imates") =20 all_metrics =3D MetricGroup("", [ + Idle(), Rapl(), ]) =20 --=20 2.44.0.278.ge034bb2e1d-goog From nobody Sun Feb 8 02:21:54 2026 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8FC1A29D03 for ; Thu, 29 Feb 2024 00:15:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165752; cv=none; b=IR5GO0XU8OcG0hPSp5Sg7Q4MR++Qi6L8xsm15OW+9HY/heB1HDstZAk8z9yQLHhXlSuesUIeOFbMpSb5apkyRKymTIAq/oM7HjWqiSwK3whpdIhDFyLEQf/GRXJ2nCyo5Z3pRfJPH50MdjsHfMv9k9ttlhSDimNeLANrAvKr/1k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165752; c=relaxed/simple; bh=yEm8gDDiOp2kaCb7bjt8yDfO5lzyLygQrwL/+bKOLd4=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=Tdj0xdsUtq0tqlrj6Yx8YPOmsy7aAjVYvJHfpfMMA/ds4SuiE4JAHT1caADXVxXbtS5GJKDLPkeoOoKqLJ9UA3cyrS8bm4vku3xnlOY4RsBzJXJC2dTe+xUaSahyX5jI6zd+4+5vJ5QXxtv4DKW+5wpuRCEXUJRewUIE+UuhZuo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=Sh7eK20/; arc=none smtp.client-ip=209.85.219.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="Sh7eK20/" Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-dc6dbdcfd39so701672276.2 for ; Wed, 28 Feb 2024 16:15:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709165750; x=1709770550; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=f7UsDzYt66DPsayZORzPPicQ8YRzeND3f/RE4XjTOWg=; b=Sh7eK20/wFBkujUG6QvGgVXr/rgoGkp1JkNvxePRmf5ZpfTVyLQ7O4g7KCYiuPpSfM x72SEs0osdODMzGjvoDa/USFldosOkBKy+tdXRQgDRcfOsxk+024K+73IepFNyU8tSkR a5DCxwhT+DJFhSkfg1FDZVHnvUI1xZGpLqT+mYgtvUaEFUEAIDSADXHj239fnlRM7nL/ n6ULHi+M+LCO+RddZTk3I6Clgy3IxlmizIOmw2/OGhQbBArW/lWOyalv+zqBu7hXMsmE FSaiagDkDbAoRBI3DYQpbjQN1RS+rCNl/XvRxTGOuf59L0qUL63n+s22rh73vqw55HaB EnVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709165750; x=1709770550; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=f7UsDzYt66DPsayZORzPPicQ8YRzeND3f/RE4XjTOWg=; b=Sz2GsB+B27rZ3GkygBReV7pWq4VzrLoqFvEMARcef/rvNqSbXF1uaDMxn7c9Trbres /GFsFPbrSmtZU7/f6IvO4Nitv0wIp37kg68ruNXdJkcOaGtHcq3I01ZPwZfVgoIiDkx6 ORppUB1iz+4ZnlyRcvl71t9kuYy+FhoWgjVXjTxMPvafPpaB6sIyzPSaoCeQ1JCzHwCB wNXoAqvCJ+pVXVwWQ7FgKddx6wc1K2yxUSoRPs7OUeWO+kCvhygNzOvFWOkuA3IG1sJu /AJPlIVH1a9015cijR6KrHlmp8a+AcWKJ41hk9QcUujbo7/6uxUGUdW3Gk6ivVikabkx VFAw== X-Forwarded-Encrypted: i=1; AJvYcCVe8NrGvj7k3Herckg49fGqXpP6cqPw0SSI7S+vx5bdhhl2dIrW407hzBsiWCEYouOWZQyDT7HwYlwuQfbSlQopSrfPo6Sri0gJy33O X-Gm-Message-State: AOJu0Yxk1wdhHrlcaheC35GIvr+unaKLTmh20CC7LJ+/QO+sEvysJSS0 48mWY4E+V7z4k3/jF+uLDvzfEQDwxMyeMi9NTNcKzx/k6h0uEdNLf0FVfCnu1K/+aNNn6Uh2LtR ABKeq2w== X-Google-Smtp-Source: AGHT+IFsQ2PuiVEIMIrM7xWD9G4EgM1d6FDQeQk3GgcRovivIO1txb0g8lABgyg3ATEKQ4f1jqgDHjLKQWsN X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:6902:723:b0:dc2:1f34:fac4 with SMTP id l3-20020a056902072300b00dc21f34fac4mr215253ybt.2.1709165749852; Wed, 28 Feb 2024 16:15:49 -0800 (PST) Date: Wed, 28 Feb 2024 16:15:27 -0800 In-Reply-To: <20240229001537.4158049-1-irogers@google.com> Message-Id: <20240229001537.4158049-4-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240229001537.4158049-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 03/13] perf jevents: Add upc metric for uops per cycle for AMD From: Ian Rogers To: Sandipan Das , Ravi Bangoria , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , John Garry , Kan Liang , Jing Zhang , Thomas Richter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephane Eranian Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The metric adjusts for whether or not SMT is on. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/amd_metrics.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/a= md_metrics.py index fd3095cb5c1d..ce3d1535483a 100755 --- a/tools/perf/pmu-events/amd_metrics.py +++ b/tools/perf/pmu-events/amd_metrics.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) from metric import (d_ratio, has_event, max, Event, JsonEncodeMetric, - JsonEncodeMetricGroupDescriptions, LoadEvents, Metric, - MetricGroup, Select) + JsonEncodeMetricGroupDescriptions, Literal, LoadEvents, + Metric, MetricGroup, Select) import argparse import json import math @@ -16,9 +16,17 @@ args =3D parser.parse_args() directory =3D f"{os.path.dirname(os.path.realpath(__file__))}/arch/x86/{ar= gs.model}/" LoadEvents(directory) =20 -all_metrics =3D MetricGroup("",[]) - +zen_model =3D int(args.model[6:]) interval_sec =3D Event("duration_time") +cycles =3D Event("cycles") +# Number of CPU cycles scaled for SMT. +smt_cycles =3D Select(cycles / 2, Literal("#smt_on"), cycles) + +def AmdUpc() -> Metric: + ops =3D Event("ex_ret_ops", "ex_ret_cops") + upc =3D d_ratio(ops, smt_cycles) + return Metric("upc", "Micro-ops retired per core cycle (higher is better= )", + upc, "uops/cycle") =20 def Idle() -> Metric: cyc =3D Event("msr/mperf/") @@ -50,6 +58,7 @@ def Rapl() -> MetricGroup: description=3D"Processor socket power consumption est= imates") =20 all_metrics =3D MetricGroup("", [ + AmdUpc(), Idle(), Rapl(), ]) --=20 2.44.0.278.ge034bb2e1d-goog From nobody Sun Feb 8 02:21:54 2026 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0D1092E413 for ; Thu, 29 Feb 2024 00:15:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165754; cv=none; b=NVhZZcLCv2fWeIjThuggb22ZvmVDMJjSZunMf/INOhUQFH81vveDb95FQVRTu1HdOvBNe67rQ1+DJtSk6qmZPvslUuomDOwP63wKcYekPCZwoVNnEzarhrMQ7D2adPXLCLuiiq3R4d7c+8yn/wKN87dmA1xrILz3Ipo2tBMO7pA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165754; c=relaxed/simple; bh=YIxmuBzBhglh4md55W8onI4xgQ9tn1Wuzd6FPGsaM/I=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=NftwCEHWfNz47cQv5q7DOadD7osuXRhLxzdatnKZMHL7pbmVdyg/Gw5q5Dn19EekohGbKQLa7Jdh1msLkWmntbxFHOWBmg5GKh+n4X0bdwI0KSNOx4EdKEo/HRzm9KRgbxOJLNsNBgqvmUWDZQqWRwsTsLbTJf2OZRfBjJETd3Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=itbrC+ka; arc=none smtp.client-ip=209.85.219.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="itbrC+ka" Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-dc746178515so523492276.2 for ; Wed, 28 Feb 2024 16:15:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709165752; x=1709770552; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=KWgiWiE03exBg0PhwlQIGByRAV21o9JQjLn06/BhBfg=; b=itbrC+kadF0E0a++Y7xmZz1cYtR15CWYJY/LNUWqrWSGp28vZHT001p0uYPR7TtDKJ yvWTjYegglb1tE5fxsquytXvCWvSscnBrbsrxOP5kIM5gH/VE9rLQ1EupJl8fjvxmEmV BkkQPw0qEWX8bqzXJjR+M4lMi5JjDE2FD2kFawXr+PofoItzFUaQc1asUs18PMFS2JFd t/abkxWwc2J09D2FPVzmu0qTGQ7lj87RRQQKMzJPChHQ73fA4iYv5JMC3O9PW56V+PEv 39Td476tW0+sJQCMCKzJ1plkEfHDPfuf+ILbrr+SHw2F34Q7GlZ5zKVRjSXk4TgqpVL8 JqUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709165752; x=1709770552; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KWgiWiE03exBg0PhwlQIGByRAV21o9JQjLn06/BhBfg=; b=l9W4kWVzSmMtlny3cVkN9bnUkEqD9aLiUgZFGxI42zm3YH0+TsABI/R9kY4av4/S9K US1O8mMICAb6Y04c5BzZmPe381xQpSKtu+GAkGmiOX3/QQA6pLS0yPjk8rulm0PgA/d6 OnJnjTz3n2OT2uzxKjMFb5/8jV6qBoqcqInAeUeMC4ox/HI+7MlwdC8oibJJpOS4Lq9d x1+aSCnA60LwZd3JPg6IfShzJxgSjGlvX5X6TQ40ExvJNHb2D8i5R3ZajYJQtirba+Rr WhGtNa7IVjDlmSBm/pW5bkATowyjEK4KzQrglNf9y7fitPVloS0NLZ77lw57eCTBioHl mveQ== X-Forwarded-Encrypted: i=1; AJvYcCUniVobn2C7TEvuzO4qfazCmfVr9tFTfrSu47r992uJ3OzqlKMC+qCmoM7+uQrCJweYdJ/Sbt1k0pZn9S5w2BRJk2XOQVvpJOpPSuly X-Gm-Message-State: AOJu0Yw4bIFMHbw0ZzvA9oVbHPpYmvbNCyWSciC8MOjgIMgfhXoHhyCc K+HotsklaCdum0KjH+rbYb2KZ4rTx0BmwId6EEwWAD1src5kjTvpWl+R20aGMteAUp1nQqHDxjq b5hFaLA== X-Google-Smtp-Source: AGHT+IHt9jWLmKQEdk4k5LlJrlMxqklKIlYDKc6C/dX9t5F+2Km1V1+uqq2XterkXbkPChEFNBWz6Cz+MqrM X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:6902:722:b0:dcd:b431:7f5b with SMTP id l2-20020a056902072200b00dcdb4317f5bmr210121ybt.0.1709165752053; Wed, 28 Feb 2024 16:15:52 -0800 (PST) Date: Wed, 28 Feb 2024 16:15:28 -0800 In-Reply-To: <20240229001537.4158049-1-irogers@google.com> Message-Id: <20240229001537.4158049-5-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240229001537.4158049-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 04/13] perf jevents: Add br metric group for branch statistics on AMD From: Ian Rogers To: Sandipan Das , Ravi Bangoria , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , John Garry , Kan Liang , Jing Zhang , Thomas Richter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephane Eranian Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The br metric group for branches itself comprises metric groups for total, taken, conditional, fused and far metric groups using json events. The lack of conditional events on anything but zen2 means this category is lacking on zen1, zen3 and zen4. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/amd_metrics.py | 104 +++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/a= md_metrics.py index ce3d1535483a..f8d5ba2861ee 100755 --- a/tools/perf/pmu-events/amd_metrics.py +++ b/tools/perf/pmu-events/amd_metrics.py @@ -7,6 +7,7 @@ import argparse import json import math import os +from typing import Optional =20 parser =3D argparse.ArgumentParser(description=3D"AMD perf json generator") parser.add_argument("-metricgroups", help=3D"Generate metricgroups data", = action=3D'store_true') @@ -18,10 +19,112 @@ LoadEvents(directory) =20 zen_model =3D int(args.model[6:]) interval_sec =3D Event("duration_time") +ins =3D Event("instructions") cycles =3D Event("cycles") # Number of CPU cycles scaled for SMT. smt_cycles =3D Select(cycles / 2, Literal("#smt_on"), cycles) =20 +def AmdBr(): + def Total() -> MetricGroup: + br =3D Event("ex_ret_brn") + br_m_all =3D Event("ex_ret_brn_misp") + br_clr =3D Event("ex_ret_msprd_brnch_instr_dir_msmtch", "ex_ret_brn_re= sync") + + br_r =3D d_ratio(br, interval_sec) + ins_r =3D d_ratio(ins, br) + misp_r =3D d_ratio(br_m_all, br) + clr_r =3D d_ratio(br_clr, interval_sec) + + return MetricGroup("br_total", [ + Metric("br_total_retired", + "The number of branch instructions retired per second.", br= _r, + "insn/s"), + Metric( + "br_total_mispred", + "The number of branch instructions retired, of any type, that = were " + "not correctly predicted as a percentage of all branch instruc= ions.", + misp_r, "100%"), + Metric("br_total_insn_between_branches", + "The number of instructions divided by the number of branch= es.", + ins_r, "insn"), + Metric("br_total_insn_fe_resteers", + "The number of resync branches per second.", clr_r, "req/s") + ]) + + def Taken() -> MetricGroup: + br =3D Event("ex_ret_brn_tkn") + br_m_tk =3D Event("ex_ret_brn_tkn_misp") + br_r =3D d_ratio(br, interval_sec) + ins_r =3D d_ratio(ins, br) + misp_r =3D d_ratio(br_m_tk, br) + return MetricGroup("br_taken", [ + Metric("br_taken_retired", + "The number of taken branches that were retired per second.= ", + br_r, "insn/s"), + Metric( + "br_taken_mispred", + "The number of retired taken branch instructions that were " + "mispredicted as a percentage of all taken branches.", misp_r, + "100%"), + Metric( + "br_taken_insn_between_branches", + "The number of instructions divided by the number of taken bra= nches.", + ins_r, "insn"), + ]) + + def Conditional() -> Optional[MetricGroup]: + br =3D Event("ex_ret_cond") + br_r =3D d_ratio(br, interval_sec) + ins_r =3D d_ratio(ins, br) + + metrics =3D [ + Metric("br_cond_retired", "Retired conditional branch instructions= .", + br_r, "insn/s"), + Metric("br_cond_insn_between_branches", + "The number of instructions divided by the number of condit= ional " + "branches.", ins_r, "insn"), + ] + if zen_model =3D=3D 2: + br_m_cond =3D Event("ex_ret_cond_misp") + misp_r =3D d_ratio(br_m_cond, br) + metrics +=3D [ + Metric("br_cond_mispred", + "Retired conditional branch instructions mispredicted as = a " + "percentage of all conditional branches.", misp_r, "100%"= ), + ] + + return MetricGroup("br_cond", metrics) + + def Fused() -> MetricGroup: + br =3D Event("ex_ret_fused_instr", "ex_ret_fus_brnch_inst") + br_r =3D d_ratio(br, interval_sec) + ins_r =3D d_ratio(ins, br) + return MetricGroup("br_cond", [ + Metric("br_fused_retired", + "Retired fused branch instructions per second.", br_r, "ins= n/s"), + Metric( + "br_fused_insn_between_branches", + "The number of instructions divided by the number of fused " + "branches.", ins_r, "insn"), + ]) + + def Far() -> MetricGroup: + br =3D Event("ex_ret_brn_far") + br_r =3D d_ratio(br, interval_sec) + ins_r =3D d_ratio(ins, br) + return MetricGroup("br_far", [ + Metric("br_far_retired", "Retired far control transfers per second= .", + br_r, "insn/s"), + Metric( + "br_far_insn_between_branches", + "The number of instructions divided by the number of far branc= hes.", + ins_r, "insn"), + ]) + + return MetricGroup("br", [Total(), Taken(), Conditional(), Fused(), Far(= )], + description=3D"breakdown of retired branch instructio= ns") + + def AmdUpc() -> Metric: ops =3D Event("ex_ret_ops", "ex_ret_cops") upc =3D d_ratio(ops, smt_cycles) @@ -58,6 +161,7 @@ def Rapl() -> MetricGroup: description=3D"Processor socket power consumption est= imates") =20 all_metrics =3D MetricGroup("", [ + AmdBr(), AmdUpc(), Idle(), Rapl(), --=20 2.44.0.278.ge034bb2e1d-goog From nobody Sun Feb 8 02:21:54 2026 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 35DE338F97 for ; Thu, 29 Feb 2024 00:15:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165756; cv=none; b=mzqu+DzwDY+mumyuJ9pUGJ+Wuq1fW7+93bVRQXQk/3pLadpwytxB13Gc9BkrEtQ4tfOt1vkSjkvd0p+Jw+BFH2zeeUL3uIZ8GU8raODY14iIiARGeEI+Vei9GPBlpLUXs97cldkhDVoJqQxoIA8QsgJk5iYHhGMvt+okEme04ms= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165756; c=relaxed/simple; bh=+avI6OXSebapAM2pF6TaSl95UtS1MYUkS9EvCqrF/LU=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=JSrUCLn/rJRCGVsWJNgWLuxB/30Ixspj3CAgnwoKHJyGO1jba1RkpZxrbT6bPfyf/ieoOFHxL0fErMhLRB7GE2HrAcYLT8sTBXhWqYy/vUkkgOWxuMRVeanrOx+5B2hX+k4ecaxcYEnxAaPzo5bRRZaavWedTQBc9+03STDjEFM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=zXCkv7Gq; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="zXCkv7Gq" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-6087ffdac8cso5032977b3.2 for ; Wed, 28 Feb 2024 16:15:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709165754; x=1709770554; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=gcc/qUxyeEjzpXo98Okf44ySOQGx/p2IAM001Az25yY=; b=zXCkv7GqQ7CeFtzE+jD4qIVcNbHuzq/Z+4gyLc1ocsHbWafSu4WXtTgXto4j1hPp3E vQ7EDv0ov2d9MWC5JNkZ6gbzlIPACBRk4715FLXGXO0ZLtmMSeQu608SpLnaQ9gU9zmd mN0s7yAvkwxoM9AHn1GOApy8mD/G15lsUurvaj7qKpCWjkwmwZgBoSg2BArArIE2+VbY 7zBFXWJ2VoobY6NcjDxEKEWbroxifxoQqedE05Q0DABzwzcm02eLsZSd8/3IaEVx1HWj f/Llslt1umtEsJAc8pyPoDPrp/PR9Mid8wMOsu0qnnUTgQUJe+9+YtC78SeOV227GVia Z/Lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709165754; x=1709770554; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=gcc/qUxyeEjzpXo98Okf44ySOQGx/p2IAM001Az25yY=; b=tkVgd986hx3t4sHc3TvWkUBhiQbG0pCMYRT6r0hyIALAFC4Akaqf+4pNRy8XlJ+aLu xO8voIx+5fQ5n126U6tjYDwkcWRypPcajhgVtUDVoi/52DoaoA4nhducr1nGqKpd2Oqp 7OGrM1A8R+HMOjpa4JENce5iShDyFfdz9Ht87GMpbAC+lSAUhz6rUmWFbqvw1Lk9ia4g j469D0Rf91KtYhaFVmvvygGg/Kb+1xPYzgfqAsEv98LdhJTthh/E8AvkDSYrdJ4aCgVh NIoDbnxiXWDSpwkWDUFbaveKIMXvqWzVeFD4Lw944QL+m3m+c+2pkgVNYWnEj7pQGLYb vjew== X-Forwarded-Encrypted: i=1; AJvYcCWXlIV12qDKmAAl+65dOdvcZ3IGdQK6ZJ/dDAHasxu5XtKGP/RxjxjsiOi5RXX/dnL8/0Z98V8cvOA/IoIml3KG8G5yIvCxTlHdkpZW X-Gm-Message-State: AOJu0YyZxYS9topEdGV4eIeJiWJfIutcfkz/IrjfoCiRWBKV/Pwr3DZ6 qSugnJBsU1OY8Iq/Lc8H3MJkdaqNVha4KEw59kJjT3okEt3YQkJ06+bhL0vTbxuCgVsdHxbKMRm Jwwg9SQ== X-Google-Smtp-Source: AGHT+IEK4PK6C7Un3eLuWMOG+gIOFWEqQPmc0uiPTLLyaklEbszRbRs9q1K2fGy5POzA60BpJ2/W5HoZiN1W X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:6902:100a:b0:dc6:e5e9:f3af with SMTP id w10-20020a056902100a00b00dc6e5e9f3afmr192114ybt.9.1709165754237; Wed, 28 Feb 2024 16:15:54 -0800 (PST) Date: Wed, 28 Feb 2024 16:15:29 -0800 In-Reply-To: <20240229001537.4158049-1-irogers@google.com> Message-Id: <20240229001537.4158049-6-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240229001537.4158049-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 05/13] perf jevents: Add software prefetch (swpf) metric group for AMD From: Ian Rogers To: Sandipan Das , Ravi Bangoria , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , John Garry , Kan Liang , Jing Zhang , Thomas Richter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephane Eranian Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add metrics that give the utility of software prefetches on zen2, zen3 and zen4. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/amd_metrics.py | 95 ++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/a= md_metrics.py index f8d5ba2861ee..52451bcb4bbf 100755 --- a/tools/perf/pmu-events/amd_metrics.py +++ b/tools/perf/pmu-events/amd_metrics.py @@ -125,6 +125,100 @@ def AmdBr(): description=3D"breakdown of retired branch instructio= ns") =20 =20 +def AmdSwpf() -> Optional[MetricGroup]: + """Returns a MetricGroup representing AMD software prefetch metrics.""" + if zen_model <=3D 1: + return None + + swp_ld =3D Event("ls_dispatch.ld_dispatch") + swp_t0 =3D Event("ls_pref_instr_disp.prefetch") + swp_w =3D Event("ls_pref_instr_disp.prefetch_w") # Missing on Zen1 + swp_nt =3D Event("ls_pref_instr_disp.prefetch_nta") + swp_mab =3D Event("ls_inef_sw_pref.mab_mch_cnt") + swp_l2 =3D Event("ls_sw_pf_dc_fills.local_l2", + "ls_sw_pf_dc_fills.lcl_l2", + "ls_sw_pf_dc_fill.ls_mabresp_lcl_l2") + swp_lc =3D Event("ls_sw_pf_dc_fills.local_ccx", + "ls_sw_pf_dc_fills.int_cache", + "ls_sw_pf_dc_fill.ls_mabresp_lcl_cache") + swp_lm =3D Event("ls_sw_pf_dc_fills.dram_io_near", + "ls_sw_pf_dc_fills.mem_io_local", + "ls_sw_pf_dc_fill.ls_mabresp_lcl_dram") + swp_rc =3D Event("ls_sw_pf_dc_fills.far_cache", + "ls_sw_pf_dc_fills.ext_cache_remote", + "ls_sw_pf_dc_fill.ls_mabresp_rmt_cache") + swp_rm =3D Event("ls_sw_pf_dc_fills.dram_io_far", + "ls_sw_pf_dc_fills.mem_io_remote", + "ls_sw_pf_dc_fill.ls_mabresp_rmt_dram") + + # All the swpf that were satisfied beyond L1D are good. + all_pf =3D swp_t0 + swp_w + swp_nt + good_pf =3D swp_l2 + swp_lc + swp_lm + swp_rc + swp_rm + bad_pf =3D max(all_pf - good_pf, 0) + + loc_pf =3D swp_l2 + swp_lc + swp_lm + rem_pf =3D swp_rc + swp_rm + + req_pend =3D max(0, bad_pf - swp_mab) + + r1 =3D d_ratio(ins, all_pf) + r2 =3D d_ratio(swp_ld, all_pf) + r3 =3D d_ratio(swp_t0, interval_sec) + r4 =3D d_ratio(swp_w, interval_sec) + r5 =3D d_ratio(swp_nt, interval_sec) + overview =3D MetricGroup("swpf_overview", [ + Metric("swpf_ov_insn_bt_swpf", "Insn between SWPF", r1, "insns"), + Metric("swpf_ov_loads_bt_swpf", "Loads between SWPF", r2, "loads"), + Metric("swpf_ov_rate_prefetch_t0_t1_t2", "Rate prefetch TO_T1_T2", r= 3, + "insns/sec"), + Metric("swpf_ov_rate_prefetch_w", "Rate prefetch W", r4, "insns/sec"= ), + Metric("swpf_ov_rate_preftech_nta", "Rate prefetch NTA", r5, "insns/= sec"), + ]) + + r1 =3D d_ratio(swp_mab, all_pf) + r2 =3D d_ratio(req_pend, all_pf) + usefulness_bad =3D MetricGroup("swpf_usefulness_bad", [ + Metric("swpf_use_bad_hit_l1", "Usefulness bad hit L1", r1, "100%"), + Metric("swpf_use_bad_req_pend", "Usefulness bad req pending", r2, "1= 00%"), + ]) + + r1 =3D d_ratio(good_pf, all_pf) + usefulness_good =3D MetricGroup("swpf_usefulness_good", [ + Metric("swpf_use_good_other_src", "Usefulness good other src", r1, + "100%"), + ]) + + usefulness =3D MetricGroup("swpf_usefulness", [ + usefulness_bad, + usefulness_good, + ]) + + r1 =3D d_ratio(swp_l2, good_pf) + r2 =3D d_ratio(swp_lc, good_pf) + r3 =3D d_ratio(swp_lm, good_pf) + data_src_local =3D MetricGroup("swpf_data_src_local", [ + Metric("swpf_data_src_local_l2", "Data source local l2", r1, "100%"), + Metric("swpf_data_src_local_ccx_l3_loc_ccx", + "Data source local ccx l3 loc ccx", r2, "100%"), + Metric("swpf_data_src_local_memory_or_io", + "Data source local memory or IO", r3, "100%"), + ]) + + r1 =3D d_ratio(swp_rc, good_pf) + r2 =3D d_ratio(swp_rm, good_pf) + data_src_remote =3D MetricGroup("swpf_data_src_remote", [ + Metric("swpf_data_src_remote_cache", "Data source remote cache", r1, + "100%"), + Metric("swpf_data_src_remote_memory_or_io", + "Data source remote memory or IO", r2, "100%"), + ]) + + data_src =3D MetricGroup("swpf_data_src", [data_src_local, data_src_remo= te]) + + return MetricGroup("swpf", [overview, usefulness, data_src], + description=3D"Sofware prefetch breakdown (CCX L3 =3D= L3 of current thread, Loc CCX =3D CCX cache on some socket)") + + def AmdUpc() -> Metric: ops =3D Event("ex_ret_ops", "ex_ret_cops") upc =3D d_ratio(ops, smt_cycles) @@ -162,6 +256,7 @@ def Rapl() -> MetricGroup: =20 all_metrics =3D MetricGroup("", [ AmdBr(), + AmdSwpf(), AmdUpc(), Idle(), Rapl(), --=20 2.44.0.278.ge034bb2e1d-goog From nobody Sun Feb 8 02:21:54 2026 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 53A5D42054 for ; Thu, 29 Feb 2024 00:15:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165758; cv=none; b=BMs9ZSBtdPx8PLw7ORgVb3yRKOOtygf3z0FcN7igA8XRACwEXZ0dyXdic59U3UONgEePlWfbs1Y/d8vu8e3edrkR9g+0q7BItosJB5PWwcCKagGjpeaRBPR6pWywWyR6I0jkM4dicAe1a16sE6XRWXNQzykioIOrxChiS8/QBSY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165758; c=relaxed/simple; bh=5rPQbQbgB4a9rwpPs3GZO8lIicUTIgfjGCJZshFzKwg=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=XzflOeSDGdk2E2qhejoYkWiEixL5h+ux1e5s4B9+flVdEfc6ex2XYnaS2/BkvgieUBfbwzrxOGffAmFXBAVPh3olNGeylae5EascRIjanHT9bdgc0sMqpXTurCTZLcI167q0EHYdo+vQg2q6ADvN7SBp9+v3UTgFVUX+wac+chs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=YDzozVH/; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="YDzozVH/" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-60957e0b914so6065867b3.0 for ; Wed, 28 Feb 2024 16:15:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709165756; x=1709770556; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=VbbMwVexzgBT1fsV6th5WqgIzFECec7b7GQZlOqA780=; b=YDzozVH/Jah8I1SlVaJCYSs6zJpYfc5oEEdA/gzpxXANV2ChywCMF7cOjKqBlzMns7 1hdk1Odpgpx0OMsz3sl6Lt2jsIbyCwAX4wKetSO0SoYa7fGwyDL9+GkPnyEylf9K5LfJ UH+yxsc6aNSV7hVLIGoXGXEYpYusVIVsMbo8Gf7y8cD4+XkgVHhn8uSoyB8VktNa7xYZ d+NmJ/yzt29JdjM2es6xqU8Bgnshijtc0Uo4SjtHYfz2NwLQKL1uB80ObYe/s745A7zd zZlcdevzDp2UzRJXZJlF/r2exmY2jJUNp7lpl2MHztoUvSWdPkTUSgxOVbDpIMkZMkxx E0kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709165756; x=1709770556; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VbbMwVexzgBT1fsV6th5WqgIzFECec7b7GQZlOqA780=; b=Nxjl+gobvAuA2gYt0/OxPVtA7DlSP8fpjzaDsjK2PaVFCln1Zsno5BheT000i9WOPd 31B1dsVTgjM+Bf2eARC2pfRJI4wobq1KOuBJ03c+dMlevVG6Z02dd5deW7l84lIXhp70 wE9Xe2R/oW5PyprxF2t975/r6gJQK0buj7x1VyL2J2UJXbk19CrHYscv16t1Aui1umv+ H/dBYgVH2hdPh9FzxWsHcCbv6qe1u8XjrwIgnqRAcceV8pa5haFWm1KhD7Zj/qCgkE0g ZYhrV9kKEl1Y7G+y1YXSigvWlXsSHBna6wtTmowzsdCzJmZS8sCsRP4A6cEWvImu9zXL OLIA== X-Forwarded-Encrypted: i=1; AJvYcCU8JjhOH/BrdXFBBEo+CTkDIc7JrLv2QII2vi4jRNwuSdoRH4zrDNQU2VxaSev1oMnyiwRcZPkMGjx7MZ6yjNxilu7hD1bFc/7lSURx X-Gm-Message-State: AOJu0YzOSIbqH48j43AEC7wYnPX6q54wouzAw6/0ztYSOU3NVJFQfaPH jteq4OwEdN7u6ZFM/ggDNjerLLtUflfurwVb8dHSPv4KM75S/qJx8d2cWzBqacF67aD7NQbdO0X 5/U9OMw== X-Google-Smtp-Source: AGHT+IFpvjWMxldxQybdcKWY/ZYyAAXRj1AiQRCleXUFxDcx5Z0ijU8jsfoj6v5FA4PraFhvXSceJt/nDerq X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:690c:3507:b0:608:e67f:4387 with SMTP id fq7-20020a05690c350700b00608e67f4387mr136175ywb.7.1709165756654; Wed, 28 Feb 2024 16:15:56 -0800 (PST) Date: Wed, 28 Feb 2024 16:15:30 -0800 In-Reply-To: <20240229001537.4158049-1-irogers@google.com> Message-Id: <20240229001537.4158049-7-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240229001537.4158049-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 06/13] perf jevents: Add hardware prefetch (hwpf) metric group for AMD From: Ian Rogers To: Sandipan Das , Ravi Bangoria , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , John Garry , Kan Liang , Jing Zhang , Thomas Richter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephane Eranian Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add metrics that give the utility of hardware prefetches on zen2, zen3 and zen4. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/amd_metrics.py | 61 ++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/a= md_metrics.py index 52451bcb4bbf..dda904998269 100755 --- a/tools/perf/pmu-events/amd_metrics.py +++ b/tools/perf/pmu-events/amd_metrics.py @@ -125,6 +125,66 @@ def AmdBr(): description=3D"breakdown of retired branch instructio= ns") =20 =20 +def AmdHwpf(): + """Returns a MetricGroup representing AMD hardware prefetch metrics.""" + if zen_model <=3D 1: + return None + + hwp_ld =3D Event("ls_dispatch.ld_dispatch") + hwp_l2 =3D Event("ls_hw_pf_dc_fills.local_l2", + "ls_hw_pf_dc_fills.lcl_l2", + "ls_hw_pf_dc_fill.ls_mabresp_lcl_l2") + hwp_lc =3D Event("ls_hw_pf_dc_fills.local_ccx", + "ls_hw_pf_dc_fills.int_cache", + "ls_hw_pf_dc_fill.ls_mabresp_lcl_cache") + hwp_lm =3D Event("ls_hw_pf_dc_fills.dram_io_near", + "ls_hw_pf_dc_fills.mem_io_local", + "ls_hw_pf_dc_fill.ls_mabresp_lcl_dram") + hwp_rc =3D Event("ls_hw_pf_dc_fills.far_cache", + "ls_hw_pf_dc_fills.ext_cache_remote", + "ls_hw_pf_dc_fill.ls_mabresp_rmt_cache") + hwp_rm =3D Event("ls_hw_pf_dc_fills.dram_io_far", + "ls_hw_pf_dc_fills.mem_io_remote", + "ls_hw_pf_dc_fill.ls_mabresp_rmt_dram") + + loc_pf =3D hwp_l2 + hwp_lc + hwp_lm + rem_pf =3D hwp_rc + hwp_rm + all_pf =3D loc_pf + rem_pf + + r1 =3D d_ratio(ins, all_pf) + r2 =3D d_ratio(hwp_ld, all_pf) + r3 =3D d_ratio(all_pf, interval_sec) + + overview =3D MetricGroup("hwpf_overview", [ + Metric("hwpf_ov_insn_bt_hwpf", "Insn between HWPF", r1, "insns"), + Metric("hwpf_ov_loads_bt_hwpf", "Loads between HWPF", r2, "loads"), + Metric("hwpf_ov_rate", "HWPF per second", r3, "hwpf/s"), + ]) + r1 =3D d_ratio(hwp_l2, all_pf) + r2 =3D d_ratio(hwp_lc, all_pf) + r3 =3D d_ratio(hwp_lm, all_pf) + data_src_local =3D MetricGroup("hwpf_data_src_local", [ + Metric("hwpf_data_src_local_l2", "Data source local l2", r1, "100%"), + Metric("hwpf_data_src_local_ccx_l3_loc_ccx", + "Data source local ccx l3 loc ccx", r2, "100%"), + Metric("hwpf_data_src_local_memory_or_io", + "Data source local memory or IO", r3, "100%"), + ]) + + r1 =3D d_ratio(hwp_rc, all_pf) + r2 =3D d_ratio(hwp_rm, all_pf) + data_src_remote =3D MetricGroup("hwpf_data_src_remote", [ + Metric("hwpf_data_src_remote_cache", "Data source remote cache", r1, + "100%"), + Metric("hwpf_data_src_remote_memory_or_io", + "Data source remote memory or IO", r2, "100%"), + ]) + + data_src =3D MetricGroup("hwpf_data_src", [data_src_local, data_src_remo= te]) + return MetricGroup("hwpf", [overview, data_src], + description=3D"Hardware prefetch breakdown (CCX L3 = =3D L3 of current thread, Loc CCX =3D CCX cache on some socket)") + + def AmdSwpf() -> Optional[MetricGroup]: """Returns a MetricGroup representing AMD software prefetch metrics.""" if zen_model <=3D 1: @@ -256,6 +316,7 @@ def Rapl() -> MetricGroup: =20 all_metrics =3D MetricGroup("", [ AmdBr(), + AmdHwpf(), AmdSwpf(), AmdUpc(), Idle(), --=20 2.44.0.278.ge034bb2e1d-goog From nobody Sun Feb 8 02:21:54 2026 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 94B8042A8C for ; Thu, 29 Feb 2024 00:15:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165761; cv=none; b=dCcrgzhMQ68dB+zoOPM+udegtlEc02GFTWz0lQ7IySbr+M/wxCRi16vsGycOU8cir18JbVDbHdoyTmh7VjAVqZjUoSqEcfPta0jz5OTEiqVL/kDnvhut/Q9RIOJHMM582RTo2Efe6L67Luf8SG1UykycRTy10hey89WvWVZWB4c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165761; c=relaxed/simple; bh=Ttu1a53AKHn6jERMdPOWyCk47DSzrYVS6BszAMd1Sa0=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=akr8b/TI8nLOoOs3YNn4e0S8zBaK4DP4YvWRPkEthA2qwzV6S2Mi5PIqhveN81sERhpbeHO2/Vt7kjVQtrJd2ogmX4SJxvu9FMvQaAGe68IvJiJ769e8E+kvC1RuuZBou5dGwLxmYbQRA9CKKFRLN3zdg+SU52soOqT1V7D/TX0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=lioECYG4; arc=none smtp.client-ip=209.85.128.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="lioECYG4" Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-608d6ffc64eso5239417b3.0 for ; Wed, 28 Feb 2024 16:15:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709165759; x=1709770559; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=3qpQTOjMlbYqRHWOkfWf3rXeImb6hJen/IuHxVmpGuM=; b=lioECYG45CGgEL39o9YCUX3yfw0g786m17svPDv+ee9ph8Uc6BIALvCO8gPAnXvxvb Y1cxl2T+y8aEG6uHjYnTwSxGIvg1BJ6XS50rTLdBgwcf9loE6HdC7CupVXxxsts/Yfli XNfnsQkR3gwtHKl4c1IzZrdSPZxugVD73Mhf3F5BVzme4Lr/BBx9A5YzRIMV9VsWT0Vv bgv/zJEq4T3SphnZOhndqhX2LJ92cHNOUiwMuB80pk4R1Ll72nZRJtGhy6SvPFPx66Oh ywd4Q1VC0X+ZvbvIb1HZN8uNYbTrxEsOfyn5zyNPBMYIpFLlvQFUuBtdPlnksp+iv1hc rCcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709165759; x=1709770559; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=3qpQTOjMlbYqRHWOkfWf3rXeImb6hJen/IuHxVmpGuM=; b=QdRISXz45qFjMw88EnISACzjdsyMlsH4P4Twdy3cckyiBr8+Y4EfbjLcZ+mMMcUSbs pQz4yPP3rx4EzyJuIRvrehmIjT+zql+UN/hccOP42Km8wY8i97KgPUS28L2x2+bU1fvp mNMOhEQmOZQA4s/iSPXHBuKCDGsenWExibAyhJDEDsUe8Rh8rDu7zUEXlesPSXg52pKM 6enVDU6NWLUy/9D1OcoNFH7FEZYnqfz4xvp/OXTvHN1Kk9BNLd/3APx+rzMNNeFCrZCE vxU/3Vt8CyV9Wd6Vy5hH5hLfpm/tacl8dgr8T+ZKQG1U9vM3PHevLn7BzaeWPX4a8ue4 0FCQ== X-Forwarded-Encrypted: i=1; AJvYcCXu3P8s3Exg+3quWFhDQ7AheRJWSTe2aDx0qCLmpRp01QbR9qHZ2ANoORjXcWeeMOAokavO4056u84mNn2SmPbXz71wEET6flplf75y X-Gm-Message-State: AOJu0YwtpmK61dQxsTGIpQLIdYYV3chtv5aZdFoj2ISmnL1hzMEKDZ3r uPrsNfOZ9Wj/RjA1ztLt9lPsOi2MRQlkfifBuiUFVFvo4mAh6r0IxxKfwDXSFzxGXFNrLnJ4tSL zp5Nkcw== X-Google-Smtp-Source: AGHT+IEQk8XrTF3o9KmATG2La436/npe6N6T11SFnq9O/054bk+ykhydARer42z3Y9hwMbnlb1yNe4pDE41X X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:690c:360a:b0:609:6150:da22 with SMTP id ft10-20020a05690c360a00b006096150da22mr77628ywb.1.1709165758889; Wed, 28 Feb 2024 16:15:58 -0800 (PST) Date: Wed, 28 Feb 2024 16:15:31 -0800 In-Reply-To: <20240229001537.4158049-1-irogers@google.com> Message-Id: <20240229001537.4158049-8-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240229001537.4158049-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 07/13] perf jevents: Add itlb metric group for AMD From: Ian Rogers To: Sandipan Das , Ravi Bangoria , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , John Garry , Kan Liang , Jing Zhang , Thomas Richter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephane Eranian Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add metrics that give an overview and details of the l1 itlb (zen1, zen2, zen3) and l2 itlb (all zens). Signed-off-by: Ian Rogers --- tools/perf/pmu-events/amd_metrics.py | 47 ++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/a= md_metrics.py index dda904998269..82aab39c2a50 100755 --- a/tools/perf/pmu-events/amd_metrics.py +++ b/tools/perf/pmu-events/amd_metrics.py @@ -125,6 +125,52 @@ def AmdBr(): description=3D"breakdown of retired branch instructio= ns") =20 =20 +def AmdItlb(): + l2h =3D Event("bp_l1_tlb_miss_l2_tlb_hit", "bp_l1_tlb_miss_l2_hit") + l2m =3D Event("l2_itlb_misses") + l2r =3D l2h + l2m + + itlb_l1_mg =3D None + l1m =3D l2r + if zen_model <=3D 3: + l1r =3D Event("ic_fw32") + l1h =3D max(l1r - l1m, 0) + itlb_l1_mg =3D MetricGroup("itlb_l1", [ + Metric("itlb_l1_hits", + "L1 ITLB hits as a perecentage of L1 ITLB accesses.", + d_ratio(l1h, l1h + l1m), "100%"), + Metric("itlb_l1_miss", + "L1 ITLB misses as a perecentage of L1 ITLB accesses.", + d_ratio(l1m, l1h + l1m), "100%"), + Metric("itlb_l1_reqs", + "The number of 32B fetch windows transferred from IC pipe t= o DE " + "instruction decoder per second.", d_ratio(l1r, interval_se= c), + "windows/sec"), + ]) + + return MetricGroup("itlb", [ + MetricGroup("itlb_ov", [ + Metric("itlb_ov_insn_bt_l1_miss", + "Number of instructions between l1 misses", d_ratio( + ins, l1m), "insns"), + Metric("itlb_ov_insn_bt_l2_miss", + "Number of instructions between l2 misses", d_ratio( + ins, l2m), "insns"), + ]), + itlb_l1_mg, + MetricGroup("itlb_l2", [ + Metric("itlb_l2_hits", + "L2 ITLB hits as a percentage of all L2 ITLB accesses.", + d_ratio(l2h, l2r), "100%"), + Metric("itlb_l2_miss", + "L2 ITLB misses as a percentage of all L2 ITLB accesses.", + d_ratio(l2m, l2r), "100%"), + Metric("itlb_l2_reqs", "ITLB accesses per second.", + d_ratio(l2r, interval_sec), "accesses/sec"), + ]), + ], description=3D"Instruction TLB breakdown") + + def AmdHwpf(): """Returns a MetricGroup representing AMD hardware prefetch metrics.""" if zen_model <=3D 1: @@ -316,6 +362,7 @@ def Rapl() -> MetricGroup: =20 all_metrics =3D MetricGroup("", [ AmdBr(), + AmdItlb(), AmdHwpf(), AmdSwpf(), AmdUpc(), --=20 2.44.0.278.ge034bb2e1d-goog From nobody Sun Feb 8 02:21:54 2026 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 083384597B for ; Thu, 29 Feb 2024 00:16:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165763; cv=none; b=ZRgbCwA1pB8cCDxi8D7zmvcURT70zR4RndZcw08HLVwKWFXWJ6Q0LhldGSVbeQZdFuUSO9XYATgs3oefqXwmANiKEcbKuB/EBnjqAb1B2zdJNz5JB0mVdNbOL/A9CE4nmzbvfwQRj5wfubQPf5Q3g+DwLmm4iIu2nqiRLgnPGNk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165763; c=relaxed/simple; bh=XBT9PFw4GJEI1QEQOFY5V3VQlW/6wsuXkDB+REWJty8=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=RDT4kgnrJqE3UQjTLQcHPgd+jtphlMPftCvY+ui3t7r1tStFZAreN8FESU8Ai5yge8LQInuHKMEP0KBOzkTmZ13ZhqOWsCzc74oIZSKMOXmuEvUy6r3fIjU4pvFiNtgcZs+t4aqtiISbSsJvbGRhfzO1e16bBoOKXN/pspQNJJ8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=SPBT0UwO; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="SPBT0UwO" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-607e613a1baso6366057b3.1 for ; Wed, 28 Feb 2024 16:16:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709165761; x=1709770561; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=QW5aXCnWYkSdBtfKb1tyFWz2NLyYuSqZgMPUtXRmNrc=; b=SPBT0UwOP189pEkqlR+5OWkMnB4O0Ss2w7sWMWEJZ6qyKbyNSUqOXsy511kMeegK9R tc5QFK2L5/8cTHbUz/pXvP614sWZUkr1U3sUqmBfLht04/HyiBSGXSteqjnyId3uCFHf udTL0DBSqmLuYyPxO8DVxYQnuTO2HcBOmAYBeaHImVJA9RMwrsYYMob+PFBLcijP4WHD gOqL++/tyht52ctGb1yauHQZ/u0KdJMisQXuMtsjhqiyG9MyDW9rLkQKTVEBfWuuKFY0 uwwo0mpCG3X29V7wStOlHzBTL7vQ5Zr7DvywYnPqbholNCqMSBmxlTPW4m7Dd6XlpgV6 paNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709165761; x=1709770561; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=QW5aXCnWYkSdBtfKb1tyFWz2NLyYuSqZgMPUtXRmNrc=; b=SJ/HI+LUdaztVU+zEJLIAB+lZC7iCqdECD9FHLfNRt1sOv8xgMxZf1m72asrM1/GKF houWQpN4PN+gPDPU+TcEyXsfEZFPV3DTrexEJz1a5XxmnrrpK77PDVt2u7+hNP7SfVqX LWxUK1nOH5qfXE6UOrOZlgYvnZUYuQgOCvnHgsSQGDIZDvcgoN8RJOWT1qSf3UnDNyOX jKMwfPwrY6sgjQMp+FI/PuOf9e8CMrjmGUmc5tNHUVhkLQfzdFjmzJCqxVt4/2C8MoIy pdh0GeLHThPuJzHdPYfWUNVxqxrlAM4BHKc62DVHgQyk10bPxG73wYytqan7w9UsZskq WwUQ== X-Forwarded-Encrypted: i=1; AJvYcCW7A+MqGG0nueg7bjbr8wdOjRWLSBApKgXKG2YY7iIj+fOs8CRvA5g5WPNu28Zu+vGnBeF2bE/DsMZLljD13a264dWr/vReNpRMvUnp X-Gm-Message-State: AOJu0Yx5XZGbZ/+bNlcrZ2d5RnRHi3LdMe7DzMFPbA6c7jI9UR3A8YaT gJvmhI5eQVe6k/6ch0K/yvpGTGMPzt8X8uRgLqQo7XIQvGvtaNlMrzj7BLOsFj5PdWzv9uPIffv KpG4vxw== X-Google-Smtp-Source: AGHT+IGXgnGFuFWHs2KzZCZhHH9ebzxG0L0VV2N+xWxLcMGOn4XnhqLvnO9XTJhmR2ueISmAiBH7HzKNSOSy X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:690c:c9b:b0:609:247a:fd3c with SMTP id cm27-20020a05690c0c9b00b00609247afd3cmr159686ywb.2.1709165761129; Wed, 28 Feb 2024 16:16:01 -0800 (PST) Date: Wed, 28 Feb 2024 16:15:32 -0800 In-Reply-To: <20240229001537.4158049-1-irogers@google.com> Message-Id: <20240229001537.4158049-9-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240229001537.4158049-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 08/13] perf jevents: Add dtlb metric group for AMD From: Ian Rogers To: Sandipan Das , Ravi Bangoria , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , John Garry , Kan Liang , Jing Zhang , Thomas Richter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephane Eranian Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add metrics that give an overview and details of the dtlb (zen1, zen2, zen3). Signed-off-by: Ian Rogers --- tools/perf/pmu-events/amd_metrics.py | 108 +++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/a= md_metrics.py index 82aab39c2a50..be10acb40762 100755 --- a/tools/perf/pmu-events/amd_metrics.py +++ b/tools/perf/pmu-events/amd_metrics.py @@ -125,6 +125,113 @@ def AmdBr(): description=3D"breakdown of retired branch instructio= ns") =20 =20 +def AmdDtlb() -> Optional[MetricGroup]: + if zen_model >=3D 4: + return None + + d_dat =3D Event("ls_dc_accesses") if zen_model <=3D 3 else None + d_h4k =3D Event("ls_l1_d_tlb_miss.tlb_reload_4k_l2_hit") + d_hcoal =3D Event("ls_l1_d_tlb_miss.tlb_reload_coalesced_page_hit") if z= en_model >=3D 2 else 0 + d_h2m =3D Event("ls_l1_d_tlb_miss.tlb_reload_2m_l2_hit") + d_h1g =3D Event("ls_l1_d_tlb_miss.tlb_reload_1g_l2_hit") + + d_m4k =3D Event("ls_l1_d_tlb_miss.tlb_reload_4k_l2_miss") + d_mcoal =3D Event("ls_l1_d_tlb_miss.tlb_reload_coalesced_page_miss") if = zen_model >=3D 2 else 0 + d_m2m =3D Event("ls_l1_d_tlb_miss.tlb_reload_2m_l2_miss") + d_m1g =3D Event("ls_l1_d_tlb_miss.tlb_reload_1g_l2_miss") + + d_w0 =3D Event("ls_tablewalker.dc_type0") if zen_model <=3D 3 else None + d_w1 =3D Event("ls_tablewalker.dc_type1") if zen_model <=3D 3 else None + walks =3D d_w0 + d_w1 + walks_r =3D d_ratio(walks, interval_sec) + ins_w =3D d_ratio(ins, walks) + l1 =3D d_dat + l1_r =3D d_ratio(l1, interval_sec) + l2_hits =3D d_h4k + d_hcoal + d_h2m + d_h1g + l2_miss =3D d_m4k + d_mcoal + d_m2m + d_m1g + l2_r =3D d_ratio(l2_hits + l2_miss, interval_sec) + l1_miss =3D l2_hits + l2_miss + walks + l1_hits =3D max(l1 - l1_miss, 0) + ins_l =3D d_ratio(ins, l1_miss) + + return MetricGroup("dtlb", [ + MetricGroup("dtlb_ov", [ + Metric("dtlb_ov_insn_bt_l1_miss", + "DTLB overview: instructions between l1 misses.", ins_l, + "insns"), + Metric("dtlb_ov_insn_bt_walks", + "DTLB overview: instructions between dtlb page table walk= s.", + ins_w, "insns"), + ]), + MetricGroup("dtlb_l1", [ + Metric("dtlb_l1_hits", + "DTLB L1 hits as percentage of all DTLB L1 accesses.", + d_ratio(l1_hits, l1), "100%"), + Metric("dtlb_l1_miss", + "DTLB L1 misses as percentage of all DTLB L1 accesses.", + d_ratio(l1_miss, l1), "100%"), + Metric("dtlb_l1_reqs", "DTLB L1 accesses per second.", l1_r, + "insns/s"), + ]), + MetricGroup("dtlb_l2", [ + Metric("dtlb_l2_hits", + "DTLB L2 hits as percentage of all DTLB L2 accesses.", + d_ratio(l2_hits, l2_hits + l2_miss), "100%"), + Metric("dtlb_l2_miss", + "DTLB L2 misses as percentage of all DTLB L2 accesses.", + d_ratio(l2_miss, l2_hits + l2_miss), "100%"), + Metric("dtlb_l2_reqs", "DTLB L2 accesses per second.", l2_r, + "insns/s"), + MetricGroup("dtlb_l2_4kb", [ + Metric( + "dtlb_l2_4kb_hits", + "DTLB L2 4kb page size hits as percentage of all DTLB L2= 4kb " + "accesses.", d_ratio(d_h4k, d_h4k + d_m4k), "100%"), + Metric( + "dtlb_l2_4kb_miss", + "DTLB L2 4kb page size misses as percentage of all DTLB = L2 4kb" + "accesses.", d_ratio(d_m4k, d_h4k + d_m4k), "100%") + ]), + MetricGroup("dtlb_l2_coalesced", [ + Metric( + "dtlb_l2_coal_hits", + "DTLB L2 coalesced page (16kb) hits as percentage of all= DTLB " + "L2 coalesced accesses.", d_ratio(d_hcoal, + d_hcoal + d_mcoal), "1= 00%"), + Metric( + "dtlb_l2_coal_miss", + "DTLB L2 coalesced page (16kb) misses as percentage of a= ll " + "DTLB L2 coalesced accesses.", + d_ratio(d_mcoal, d_hcoal + d_mcoal), "100%") + ]), + MetricGroup("dtlb_l2_2mb", [ + Metric( + "dtlb_l2_2mb_hits", + "DTLB L2 2mb page size hits as percentage of all DTLB L2= 2mb " + "accesses.", d_ratio(d_h2m, d_h2m + d_m2m), "100%"), + Metric( + "dtlb_l2_2mb_miss", + "DTLB L2 2mb page size misses as percentage of all DTLB = L2 " + "accesses.", d_ratio(d_m2m, d_h2m + d_m2m), "100%") + ]), + MetricGroup("dtlb_l2_1g", [ + Metric( + "dtlb_l2_1g_hits", + "DTLB L2 1gb page size hits as percentage of all DTLB L2= 1gb " + "accesses.", d_ratio(d_h1g, d_h1g + d_m1g), "100%"), + Metric( + "dtlb_l2_1g_miss", + "DTLB L2 1gb page size misses as percentage of all DTLB = L2 " + "1gb accesses.", d_ratio(d_m1g, d_h1g + d_m1g), "100%") + ]), + ]), + MetricGroup("dtlb_walks", [ + Metric("dtlb_walks_reqs", "DTLB page table walks per second.", + walks_r, "walks/s"), + ]), + ], description=3D"Data TLB metrics") + + def AmdItlb(): l2h =3D Event("bp_l1_tlb_miss_l2_tlb_hit", "bp_l1_tlb_miss_l2_hit") l2m =3D Event("l2_itlb_misses") @@ -362,6 +469,7 @@ def Rapl() -> MetricGroup: =20 all_metrics =3D MetricGroup("", [ AmdBr(), + AmdDtlb(), AmdItlb(), AmdHwpf(), AmdSwpf(), --=20 2.44.0.278.ge034bb2e1d-goog From nobody Sun Feb 8 02:21:54 2026 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 983977FE for ; Thu, 29 Feb 2024 00:16:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165766; cv=none; b=iidDeylaOSfyxGOPUTaRThX1Xh1CqRGmCEIw0by6/K8GAY3d8sRfIu/rLoA12ay0bKHPK9sXb3XaGBPCUQxlQXkmVZTlYFIuhluAqwP/zau7MNjCDbhYJVJBkff87KQM6Oe7zcshDb0xKlth4KbGxo+WlUIVqRSo4jUr5LgLKKM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165766; c=relaxed/simple; bh=xBfxlNT0aaXEMy2J3656vmd02rMeN9x8F3Ypxz5k1Kk=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=jiMuIAo1uTxBUFujuVC/pTLc1TcIZR2gZ6vC4aUlxytBbstF9iRxJouqzQdDr2q96Fvod4BFP2BxBmXPI1+BEPomAGxOJ2OpgX3O3xQ+0priExJYLPRoUNrrtg4EoBE/kOTWtoRgkLb6V/9Oz3oV4pNUe8nOLvEdZ+uSjITT75s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=CDZEwEQ+; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="CDZEwEQ+" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-5efe82b835fso8215177b3.0 for ; Wed, 28 Feb 2024 16:16:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709165763; x=1709770563; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=nnw8j+u3lnjVu4UTXXzRJGFzX9SHr9I3FGbOrJjWHHs=; b=CDZEwEQ+/8KUHGuAg4i2NUa4TgorEzTxb0mPPbXV+zfjmXufeEkMvzhS4mwTg8D8M2 0qsveyes9xpOdxR/q+pbMJKl7xfCNFb4YSo12OnwKLl+1/+2FuDkxvz483rAMUPbp83q j3EgSUEKL5SaItl5mJCvoaJpxiCz9Eu47N7a2S/4FrPWiTlR9MlfWSyzcqUDC8NNPWqV 5Zh3DZ/+Mc6wGSq/TrOGzm20I+NpDMjqNLigQBXKGrdIcpRM1AZ30on/VajmTOmbK2xU fVfdi1Hx3qu1N5L8m6mJ8uOya6faknyEQNsHaw9cX8AcdjLQF2ESN3q/gl0fP+3JkYer b3zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709165763; x=1709770563; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nnw8j+u3lnjVu4UTXXzRJGFzX9SHr9I3FGbOrJjWHHs=; b=OUIfotaXXwbprMk6BD4T4jo870n9NLJWbO6MhSuxzbOGW/aNAaRUlDmDYuLOBo4h8h hq5Xm8G58a+UiNtfxqUGvMRoQ4JHhvrzswRzITt+uxcS3f6eY89c/CC/AnY8T7RRL7tN 8hQWDopZIn1ZVpJxhVouy+EtBoaLkmM4W7niQB1yOeVsHCdMOdfCg4VrD53nS6DycC2L HDWE+otOvJnILYwC+MAgkcgDyBAtQwFml6kZln8AKjdtfKNI8R3dVU521moRjN+IMFcD BdH/kBFWIGSjaJwuAVX/xRcJIF5alge5sGB0saSp96de3hvFlzA7kCAZFh83azKK68Id 2brg== X-Forwarded-Encrypted: i=1; AJvYcCXPZeyhDwIpIpNhl+OdDgX4ScQX7mCKTonCbfuMcSsqkpG2R3NZTcTF49dCAd5rwL1XmDEnlyRvi1s55EtUiQL+6cU82UXbiBslsZQX X-Gm-Message-State: AOJu0YxY/eYfTrg4tG0KfCzQMm0ZuWg2a46Pbjpe+E4IHRYjRpGHzno7 a91mOmWfnRHGJOZbgJAUyjzzS8IqgObkTA3VCbB7LtuPoZpqFjB7lANyWmKZUL+H4wFhdahmVhJ LY1QSPA== X-Google-Smtp-Source: AGHT+IH75MxXvR6htgXwyzSB9PeDpIXEOy1VdLxB56cSbT41a2ERr+DRq7K59qj6V+DXn3La6IsbR+DD29dG X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:6902:18c3:b0:dcd:875:4c40 with SMTP id ck3-20020a05690218c300b00dcd08754c40mr209662ybb.10.1709165763612; Wed, 28 Feb 2024 16:16:03 -0800 (PST) Date: Wed, 28 Feb 2024 16:15:33 -0800 In-Reply-To: <20240229001537.4158049-1-irogers@google.com> Message-Id: <20240229001537.4158049-10-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240229001537.4158049-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 09/13] perf jevents: Add uncore l3 metric group for AMD From: Ian Rogers To: Sandipan Das , Ravi Bangoria , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , John Garry , Kan Liang , Jing Zhang , Thomas Richter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephane Eranian Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Metrics use the amd_l3 PMU for access/miss/hit information. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/amd_metrics.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/a= md_metrics.py index be10acb40762..f4a4ece551ef 100755 --- a/tools/perf/pmu-events/amd_metrics.py +++ b/tools/perf/pmu-events/amd_metrics.py @@ -467,6 +467,23 @@ def Rapl() -> MetricGroup: return MetricGroup("cpu_power", metrics, description=3D"Processor socket power consumption est= imates") =20 +def UncoreL3(): + acc =3D Event("l3_lookup_state.all_coherent_accesses_to_l3", + "l3_lookup_state.all_l3_req_typs") + miss =3D Event("l3_lookup_state.l3_miss", + "l3_comb_clstr_state.request_miss") + acc =3D max(acc, miss) + hits =3D acc - miss + + return MetricGroup("l3", [ + Metric("l3_accesses", "L3 victim cache accesses", + d_ratio(acc, interval_sec), "accesses/sec"), + Metric("l3_hits", "L3 victim cache hit rate", d_ratio(hits, acc), "1= 00%"), + Metric("l3_miss", "L3 victim cache miss rate", d_ratio(miss, acc), + "100%"), + ], description=3D"L3 cache breakdown per CCX") + + all_metrics =3D MetricGroup("", [ AmdBr(), AmdDtlb(), @@ -476,6 +493,7 @@ all_metrics =3D MetricGroup("", [ AmdUpc(), Idle(), Rapl(), + UncoreL3(), ]) =20 if args.metricgroups: --=20 2.44.0.278.ge034bb2e1d-goog From nobody Sun Feb 8 02:21:55 2026 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 077B254FA0 for ; Thu, 29 Feb 2024 00:16:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165768; cv=none; b=IQaCx6L7P4B7vkdpDNQJDNQTBMYjPjyF5qCJYHEJCEwz3gmxv344Q40V22GkY+pgK6IJwXelllP4oJE1DsJ0w8uBlSLC+ql12/Z9D8C5jQHuKyFAN8Acw4iNf7/0c9fSxuOMv7TDxxBgaR9IJ1kl7oKdv0KhlAM30a8rLZXiSe8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165768; c=relaxed/simple; bh=D/pwwQ6dXV1q6dCmwwHAP89kxtCQNH4Hvs09U28fH3I=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=Q1jvF69/JQ42jGiayRuGg/dK9cAfv+9ptIU7uDpZUJsaM0le1lwvIfR8cUR+kzX+0S6F/qsQJ6Xp5in5EikqlObWPrSjbNJrhN5Bi/M2LBd2tCmtOFPbOp/doyIidcvhk6YYnM2QXFWX0e8TlafAQ55Tv+2ySXgtYswULIfhbMY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=hRywBCjv; arc=none smtp.client-ip=209.85.219.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="hRywBCjv" Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-dc64b659a9cso695632276.3 for ; Wed, 28 Feb 2024 16:16:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709165766; x=1709770566; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=riQkIrg8TOM4HvcpMUBBinltQ/7KCgNPQM/xCcL0170=; b=hRywBCjvzfJZQOkn13J2PPQ2wZr8CbjfKRuR27Xw0UmfDORncBjZyHz9+f2frDNmJ6 mOFj8fmQXzCiOqAnTytXUq6ALHqALr2TaaSkmZAeGJY2MQP4KeYO7ie/b5MQ9rq5pCBv L5yXbv27K7YcrEOV6+ZlUuV5UOTcIZGG8wMAHW858OMrIh4T84YeoMN0vLkGPLe4iHdw flpm0cdTst7Qc7ruI5sH2GnFis/vSMDasXeCSLGE5f4y7N+mex1/hIm4D1fDt5IYfg7L 7lOoXvQH6sjOw7ksqTY0OdETl925SKVRyZjN8zqj7eiMGcPGijsCjaLTfiya5AUwuYIS tTXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709165766; x=1709770566; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=riQkIrg8TOM4HvcpMUBBinltQ/7KCgNPQM/xCcL0170=; b=QOCuu9NAEOb2LZiIqYgNhKbFB4y8T3OjsI19g1Y0Sf16jsWTTlyJARaGtoQAJQ6QPy G8usP6RKsmtrgoMvuKrMy+TSfEMeW86gNRM2Kah5M99A9f26UCQ0L6g5rLQDKQchs8Ut Q568FfBDzAkONiIsfvEiG/CXr6mWuYNdTqBFuRcwGHCIrU4zSAbm3QQoiGMzRONh/Z/w jU5IApyaz7ur33lO/n4UNKBNfrXzGCpU88LJNQAU/Kl5Ju5+bAQivLo+LSYbsxBoXTfl 2jHOdjRUTszrrOuWah6ZyWdwcUOVjyCw164x4mLHo3YAk2CFoGSScjt8891MeJAhR9Ix HJLg== X-Forwarded-Encrypted: i=1; AJvYcCXrV7IZo5O134r1NwIk3nmLiDSxg3sFUVtLBhZfyuI/c2j41hnKaoXH4NwqjeNPFIaynCyNfFDhGhV7f7c+Z2m5HtlOp62TBbdBfuJ3 X-Gm-Message-State: AOJu0YxKbNZTG3rr/rR13g9pyyroBy+4p2+iTWpHFzYM3MevtRqk4f4R ppvpJoJzrYgZ5wkTth2ViV7bJNjwMJJk0TBN+mNsp1vIlynkJqqXEGAw5ZA7Ds3+E7NSzEh0MUt 5ltb6lw== X-Google-Smtp-Source: AGHT+IEqtMZCfxMSvox8V4nqHhkgVxXr5mj38dIUlzjcsrQxskTLGbitOmZ8bJEduB0W0nBj4TnAA5VqRz4g X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a25:abc5:0:b0:dc6:eea0:1578 with SMTP id v63-20020a25abc5000000b00dc6eea01578mr195854ybi.13.1709165766077; Wed, 28 Feb 2024 16:16:06 -0800 (PST) Date: Wed, 28 Feb 2024 16:15:34 -0800 In-Reply-To: <20240229001537.4158049-1-irogers@google.com> Message-Id: <20240229001537.4158049-11-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240229001537.4158049-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 10/13] perf jevents: Add load store breakdown metrics ldst for AMD From: Ian Rogers To: Sandipan Das , Ravi Bangoria , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , John Garry , Kan Liang , Jing Zhang , Thomas Richter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephane Eranian Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Give breakdown of number of instructions. Use the counter mask (cmask) to show the number of cycles taken to retire the instructions. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/amd_metrics.py | 75 ++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/a= md_metrics.py index f4a4ece551ef..6b182a9bbfe5 100755 --- a/tools/perf/pmu-events/amd_metrics.py +++ b/tools/perf/pmu-events/amd_metrics.py @@ -278,6 +278,80 @@ def AmdItlb(): ], description=3D"Instruction TLB breakdown") =20 =20 +def AmdLdSt() -> MetricGroup: + ldst_ld =3D Event("ls_dispatch.ld_dispatch") + ldst_st =3D Event("ls_dispatch.store_dispatch") + ldst_ldc1 =3D Event(f"{ldst_ld}/cmask=3D1/") + ldst_stc1 =3D Event(f"{ldst_st}/cmask=3D1/") + ldst_ldc2 =3D Event(f"{ldst_ld}/cmask=3D2/") + ldst_stc2 =3D Event(f"{ldst_st}/cmask=3D2/") + ldst_ldc3 =3D Event(f"{ldst_ld}/cmask=3D3/") + ldst_stc3 =3D Event(f"{ldst_st}/cmask=3D3/") + ldst_cyc =3D Event("ls_not_halted_cyc") + + ld_rate =3D d_ratio(ldst_ld, interval_sec) + st_rate =3D d_ratio(ldst_st, interval_sec) + + ld_v1 =3D max(ldst_ldc1 - ldst_ldc2, 0) + ld_v2 =3D max(ldst_ldc2 - ldst_ldc3, 0) + ld_v3 =3D ldst_ldc3 + + st_v1 =3D max(ldst_stc1 - ldst_stc2, 0) + st_v2 =3D max(ldst_stc2 - ldst_stc3, 0) + st_v3 =3D ldst_stc3 + + return MetricGroup("ldst", [ + MetricGroup("ldst_total", [ + Metric("ldst_total_ld", "Number of loads dispatched per second.", + ld_rate, "insns/sec"), + Metric("ldst_total_st", "Number of stores dispatched per second.= ", + st_rate, "insns/sec"), + ]), + MetricGroup("ldst_percent_insn", [ + Metric("ldst_percent_insn_ld", + "Load instructions as a percentage of all instructions.", + d_ratio(ldst_ld, ins), "100%"), + Metric("ldst_percent_insn_st", + "Store instructions as a percentage of all instructions.", + d_ratio(ldst_st, ins), "100%"), + ]), + MetricGroup("ldst_ret_loads_per_cycle", [ + Metric( + "ldst_ret_loads_per_cycle_1", + "Load instructions retiring in 1 cycle as a percentage of al= l " + "unhalted cycles.", d_ratio(ld_v1, ldst_cyc), "100%"), + Metric( + "ldst_ret_loads_per_cycle_2", + "Load instructions retiring in 2 cycles as a percentage of a= ll " + "unhalted cycles.", d_ratio(ld_v2, ldst_cyc), "100%"), + Metric( + "ldst_ret_loads_per_cycle_3", + "Load instructions retiring in 3 or more cycles as a percent= age" + "of all unhalted cycles.", d_ratio(ld_v3, ldst_cyc), "100%"), + ]), + MetricGroup("ldst_ret_stores_per_cycle", [ + Metric( + "ldst_ret_stores_per_cycle_1", + "Store instructions retiring in 1 cycle as a percentage of a= ll " + "unhalted cycles.", d_ratio(st_v1, ldst_cyc), "100%"), + Metric( + "ldst_ret_stores_per_cycle_2", + "Store instructions retiring in 2 cycles as a percentage of = all " + "unhalted cycles.", d_ratio(st_v2, ldst_cyc), "100%"), + Metric( + "ldst_ret_stores_per_cycle_3", + "Store instructions retiring in 3 or more cycles as a percen= tage" + "of all unhalted cycles.", d_ratio(st_v3, ldst_cyc), "100%"), + ]), + MetricGroup("ldst_insn_bt", [ + Metric("ldst_insn_bt_ld", "Number of instructions between loads.= ", + d_ratio(ins, ldst_ld), "insns"), + Metric("ldst_insn_bt_st", "Number of instructions between stores= .", + d_ratio(ins, ldst_st), "insns"), + ]) + ], description=3D"Breakdown of load/store instructions") + + def AmdHwpf(): """Returns a MetricGroup representing AMD hardware prefetch metrics.""" if zen_model <=3D 1: @@ -488,6 +562,7 @@ all_metrics =3D MetricGroup("", [ AmdBr(), AmdDtlb(), AmdItlb(), + AmdLdSt(), AmdHwpf(), AmdSwpf(), AmdUpc(), --=20 2.44.0.278.ge034bb2e1d-goog From nobody Sun Feb 8 02:21:55 2026 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 412FC56B6D for ; Thu, 29 Feb 2024 00:16:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165770; cv=none; b=c+UNjg/f1LOdMnePDFpb4NyTeq2UztE6ibpvDeUKxyMatpjtjV6Qhd47Tps3hkngkLd5YcBxq1qr+bSR/TAxSP2/21RmFAJHToEozR1na9Y0APYzk2B94+Hb1zvNb9f66+pZSCdOB7Skf7CoEsO6kUvS5UO++l517zkVGYJ0H7A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165770; c=relaxed/simple; bh=rdT/e0Jk04uz/hli1au/7w9zNoOK9Gsygo85Wow1ix4=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=Z3YYF4IswhA/cdh2Uh27vt/PhjCF4Buti6Gmm26c6MyQo21lH9G/6/sFfn/SyTNjVJBW/6q/dhiGxfhsVz+kZCeg3w3wVPOrWBQA+M0e6tx0QchOcTQ8xjJng+YOUXCy0x2ujfo2H6a2XaI+G1bbsmE8zYD8l20feaKzNBDOs1E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=evhdKGJQ; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="evhdKGJQ" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-60957e0b914so6068667b3.0 for ; Wed, 28 Feb 2024 16:16:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709165768; x=1709770568; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=cHahQF2BiK1eIw2Re/KcTjpVIHmS0xMmp3oAqD999cA=; b=evhdKGJQU2b/oZ/NAsFgZvxh0AxV5W85oves5f90jukk/PFjqkBIrTxVeG6UJ2XB+g nKsO7IVHIa32CZS9+y25N/SXDYIQkJfd/ZWdISUvJnJwu/r9usdwbKgepMG6ocWythzi EHwA7W5n30THvvCxxihJMHKDq1Az8aL8yoyscFjl34fzNVVH3122aJijbg6yPDdBnLaq YvAaz5EwR2Auh6eNn745Bzxs9J8UQ2aXtajLVnqZlZQvzNV1pmk+88Q+u66u9RUgBOhC aHOQ0GiHuiGDzKP/ENaXjhIMZ3n4Rfu3WuIXpfdLCq1AGxZz7Lz+rXxSptSgHqifQBf9 yHBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709165768; x=1709770568; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=cHahQF2BiK1eIw2Re/KcTjpVIHmS0xMmp3oAqD999cA=; b=tXsL/gHs0kF5XVelwfGfuhnsTOGL4jQ7absUAc3cBHzjCzJWVGIt9LyD+/bBWGAsZg oJuB05+HJkxYXRsVYeEJSSoStTrX+5EDBO4lipDfvKI8O6IX8HOnkn0vgVpjiwiqU/yy q1vIdSISrNwO3g6KAk+NmP1OzT/vw43GpO32SAYYwy50FLYy42usmFyoe4aCpmvXJTjZ 4oXRRUpc+l4K5oXJRLkQt4NUHtzVsX6Jsop5M/8EarhMSKXaypy1Y5eNA0EhNvE102No hD5csXCiGv77xaOTaZAvAtxD86O0pGfmMfDjCGptZlwWxHSY0sXClKYlh+cxemM7CHJh WkmQ== X-Forwarded-Encrypted: i=1; AJvYcCUxMYKWWW56pDAfhOjT24RatDowyiC1S8AZETASnAk5L9D2kJKKOe9rYTO/FN8MPaCZLQiCm2RoOe/HedOFBzl7IjpMJSn08T3UZo3z X-Gm-Message-State: AOJu0YxHmwppv2k5OphHCV/Ly64/1+hz9GHm4WLBp9u+a5ZAnkHYDaf/ 2X10xL/JjUAVaQq/gIgDxR47xnkXfvvoK7zDlGreclUUi6LZK837kmtZK143DPgXog133TlydBM b/000pw== X-Google-Smtp-Source: AGHT+IG/3aNxiRC63BWDBZbj1S2tf4ajqBK0IG0ZThGkkU02FYQuy0rwRvvmvubAF9jWfd2f5MVBjOefPdbI X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:690c:c1e:b0:609:4c74:5cab with SMTP id cl30-20020a05690c0c1e00b006094c745cabmr139123ywb.2.1709165768568; Wed, 28 Feb 2024 16:16:08 -0800 (PST) Date: Wed, 28 Feb 2024 16:15:35 -0800 In-Reply-To: <20240229001537.4158049-1-irogers@google.com> Message-Id: <20240229001537.4158049-12-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240229001537.4158049-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 11/13] perf jevents: Add ILP metrics for AMD From: Ian Rogers To: Sandipan Das , Ravi Bangoria , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , John Garry , Kan Liang , Jing Zhang , Thomas Richter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephane Eranian Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Use the counter mask (cmask) to see how many cycles an instruction takes to retire. Present as a set of ILP metrics. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/amd_metrics.py | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/a= md_metrics.py index 6b182a9bbfe5..91f323c1a149 100755 --- a/tools/perf/pmu-events/amd_metrics.py +++ b/tools/perf/pmu-events/amd_metrics.py @@ -125,6 +125,35 @@ def AmdBr(): description=3D"breakdown of retired branch instructio= ns") =20 =20 +def AmdIlp() -> MetricGroup: + tsc =3D Event("msr/tsc/") + c0 =3D Event("msr/mperf/") + low =3D tsc - c0 + inst_ret =3D Event("ex_ret_instr") + inst_ret_c =3D [Event(f"{inst_ret.name}/cmask=3D{x}/") for x in range(= 1, 6)] + ilp =3D [d_ratio(max(inst_ret_c[x] - inst_ret_c[x + 1], 0), cycles) fo= r x in range(0, 4)] + ilp.append(d_ratio(inst_ret_c[4], cycles)) + ilp0 =3D 1 + for x in ilp: + ilp0 -=3D x + return MetricGroup("ilp", [ + Metric("ilp_idle", "Lower power cycles as a percentage of all cycl= es", + d_ratio(low, tsc), "100%"), + Metric("ilp_inst_ret_0", "Instructions retired in 0 cycles as a pe= rcentage of all cycles", + ilp0, "100%"), + Metric("ilp_inst_ret_1", "Instructions retired in 1 cycles as a pe= rcentage of all cycles", + ilp[0], "100%"), + Metric("ilp_inst_ret_2", "Instructions retired in 2 cycles as a pe= rcentage of all cycles", + ilp[1], "100%"), + Metric("ilp_inst_ret_3", "Instructions retired in 3 cycles as a pe= rcentage of all cycles", + ilp[2], "100%"), + Metric("ilp_inst_ret_4", "Instructions retired in 4 cycles as a pe= rcentage of all cycles", + ilp[3], "100%"), + Metric("ilp_inst_ret_5", "Instructions retired in 5 or more cycles= as a percentage of all cycles", + ilp[4], "100%"), + ]) + + def AmdDtlb() -> Optional[MetricGroup]: if zen_model >=3D 4: return None @@ -560,6 +589,7 @@ def UncoreL3(): =20 all_metrics =3D MetricGroup("", [ AmdBr(), + AmdIlp(), AmdDtlb(), AmdItlb(), AmdLdSt(), --=20 2.44.0.278.ge034bb2e1d-goog From nobody Sun Feb 8 02:21:55 2026 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C068B5731F for ; Thu, 29 Feb 2024 00:16:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165773; cv=none; b=APEaKQB07PPvDEFnWvcxh+owu8QZIDIKDqBm0ea4Apjwv4EBZ5zbos0+TslTlGPN5QeoOGL7GGxSItKpg0xtLuPvNPIpgtQlW0v5MyMR0IZWxeTdPIbUayCm9QC1dqifGZKPZ9pvb+PkiiG3AYbcTYIYoBThTxowBaGQN/VPAD8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165773; c=relaxed/simple; bh=UwkjYK+U+f8LwVeVeyTQSJU60/nxqzY/uXtXOkioAuY=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=k3h9OYmYGTaORV9cxg9PINf3tSRPzzozgS5WN9f1JmFFhoa1cHWx5pxwqs/NxJ2F/STO2NACpsE/A9RWqK586J4h3UP2Wza0KMFdYi8QYe7U5u0Ez8yTYLUbMvEBqg9nVWupfP5WGtHvOj+tRAc2Q4f2sC2/YUfd+5j4M2Rcqxc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=SgHzwcdz; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="SgHzwcdz" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-608e88ca078so6106957b3.1 for ; Wed, 28 Feb 2024 16:16:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709165771; x=1709770571; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=rDmb+1G4FeL2VOjrPNtrbYg/sNUzgE2lO0wYF9ntEME=; b=SgHzwcdzxtbE3LV6tT49xoXoF0G1I3qHqCSHLstVUpKDA+rPt4ij6Co35vmgEqJ3Es pWuAv0zcTZza77OUKteWVcOhmzba/T2EquJ5uwWJZYVt+oZWmPBGWYQW8YnNAqMfS55M a5+xtLy1f5yT5wBXbPFcqbL7/N5o4KfyOpfQ7fcpvDoG207nZvptqPD8ByhfMcGtcdX5 nizVyuRg8Bo+lhNRTo8s1H7AeWjDEomblTGatvnhM8yJoQqh2hgBtZJTgLXeflXkN3ch GsUX2JoBM/7CupIf/ua8sTt4tenamFTHQwHKPlEhxYPsqhaNGyFUofIeBF/JJGFdqWnf wcPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709165771; x=1709770571; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rDmb+1G4FeL2VOjrPNtrbYg/sNUzgE2lO0wYF9ntEME=; b=bZ3DVD46aHhaWiFIdH0DSYd4M86Ifjx+w68JgdqMuMXi53cuDUXOcz5c15P1iLlNkT jZUPgbqYnjszINkou3x/GBABlMuLvssKwZdaAN7RHoW3l67rMQ/cFvHxYU2sXrXM23Fk Nyx5KLB6B4nhoNq2zCIx3zXZ2HME1hsths9p4R6eIFOsyRBec3rWAE8tgv9hYIcvbdhg LJ2XrO8YjvzIaUjtgUxfUC7fyrkvFLX+eMWZWvk866Zez0RAAcUDPbJYPgA3eNd7Utoc t1g5FRHXrsQicJboAK0nBdNHXkKR3aBQb69vk0ElnwH1M1WnJ0pDCDpnxKHe2TpAJheN Pkjg== X-Forwarded-Encrypted: i=1; AJvYcCVnyx/r4s97lyYpxJFnJLcAoPqTk30dJm7OyarxsWUmRy/jlCBmh0sfKIHQpV6deAnbJPMR//QG0I0dlRtKgV5xv9qM1L5I/vXtmifI X-Gm-Message-State: AOJu0YwzN2NwFzDkYa2L7V+4sgtTMsmGB6ikK4HJr2mhACeLZf4ntA3D 5mEm8A7kvHLhOR4IBYWEtKx5VF5ru2bIKFC2o2lomjhmgPK5kufzl493pKaGsZW9TJ6h3K2U5yA f6GllPA== X-Google-Smtp-Source: AGHT+IGHWKOWL4OTjiWorXSVdTqwsIiYn6BygBXX3AaiqhhWij1L0lxN0gttlZUyocCiEKABbwM6vqaaXu0A X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:6902:1c9:b0:dc6:cafd:dce5 with SMTP id u9-20020a05690201c900b00dc6cafddce5mr209364ybh.12.1709165770873; Wed, 28 Feb 2024 16:16:10 -0800 (PST) Date: Wed, 28 Feb 2024 16:15:36 -0800 In-Reply-To: <20240229001537.4158049-1-irogers@google.com> Message-Id: <20240229001537.4158049-13-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240229001537.4158049-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 12/13] perf jevents: Add context switch metrics for AMD From: Ian Rogers To: Sandipan Das , Ravi Bangoria , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , John Garry , Kan Liang , Jing Zhang , Thomas Richter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephane Eranian Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Metrics break down context switches for different kinds of instruction. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/amd_metrics.py | 32 ++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/a= md_metrics.py index 91f323c1a149..377ce413d051 100755 --- a/tools/perf/pmu-events/amd_metrics.py +++ b/tools/perf/pmu-events/amd_metrics.py @@ -125,6 +125,37 @@ def AmdBr(): description=3D"breakdown of retired branch instructio= ns") =20 =20 +def AmdCtxSw() -> MetricGroup: + cs =3D Event("context\-switches") + metrics =3D [ + Metric("cs_rate", "Context switches per second", d_ratio(cs, interva= l_sec), "ctxsw/s") + ] + + ev =3D Event("instructions") + metrics.append(Metric("cs_instr", "Instructions per context switch", + d_ratio(ev, cs), "instr/cs")) + + ev =3D Event("cycles") + metrics.append(Metric("cs_cycles", "Cycles per context switch", + d_ratio(ev, cs), "cycles/cs")) + + ev =3D Event("ls_dispatch.ld_dispatch") + metrics.append(Metric("cs_loads", "Loads per context switch", + d_ratio(ev, cs), "loads/cs")) + + ev =3D Event("ls_dispatch.store_dispatch") + metrics.append(Metric("cs_stores", "Stores per context switch", + d_ratio(ev, cs), "stores/cs")) + + ev =3D Event("ex_ret_brn_tkn") + metrics.append(Metric("cs_br_taken", "Branches taken per context switch", + d_ratio(ev, cs), "br_taken/cs")) + + return MetricGroup("cs", metrics, + description =3D ("Number of context switches per seco= nd, instructions " + "retired & core cycles between context= switches")) + + def AmdIlp() -> MetricGroup: tsc =3D Event("msr/tsc/") c0 =3D Event("msr/mperf/") @@ -589,6 +620,7 @@ def UncoreL3(): =20 all_metrics =3D MetricGroup("", [ AmdBr(), + AmdCtxSw(), AmdIlp(), AmdDtlb(), AmdItlb(), --=20 2.44.0.278.ge034bb2e1d-goog From nobody Sun Feb 8 02:21:55 2026 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0989D57334 for ; Thu, 29 Feb 2024 00:16:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165775; cv=none; b=sMS+EJTtHbX5lENdZvlEkHgDkka10rWpFIIfq+xjnqxUlXzn4fKHaGCs+lbh+YZjQu8BCEAYvCUdRU2kPJ5drQtdIYoXdxWP5oYuMHQrPmy69LqzxdYHa2jYyevoDIcVwNvbcQlJf3PjPZ1PExG7tqWNSeKvfnDqWWhCjrWkUco= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709165775; c=relaxed/simple; bh=Ws6o7/tvtsGwdgLcPgbopHYfQtUw+y5EJAHJUjeoJ3s=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=UepjpZEZ92XPMSiu3WkiCISziQOg3XquYp5xlJ12fGnpLFJIkkQHquX9tiq6IqlRheyHi5t+rr9V9U7seKZ1MqPlCD0ZiehMX2RYxWQlwyv5JBw4Aw2mhYRWSoN5JvMuuojQ2F8xZCNo0G2/QGb4DQLm5b/+zbsBu5Nw9j8nOu4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=CP2Sa1r7; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="CP2Sa1r7" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-6047fed0132so5918517b3.1 for ; Wed, 28 Feb 2024 16:16:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709165773; x=1709770573; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=1AfLiGExWQ7LJtXjB9I1zr2EY79Wd3x7GNxPRkAZ0FM=; b=CP2Sa1r7lcFvXFJMyTk5Kw9+CFf19L0mh/gqK6+9aMM1xmTrj0cUXPR5Baz0d5Jmhc wVC+2LSYJZLKrdGehyKMhEaJnrFd3LmMIAZxRo+PGysxq+qR65nZsb8EpVsMnYwyCVTE YRy8fw79PWP8mfNzHNU1ispsc4mUFvw37ZWr+txh8GEbqX5uZBGSCMhuUa+3rmNu00bZ qyU8tvGNI8PlxhrQ2WDQ+1BKubH8wC0HGzizyO0Qg1fFucvF+sCulRNFwApewE0jl6wP +fFfWnFj706TPbidsdVEI4MT13CW+snNPT+eWocu2qkCTAm4VeqSQnS+ryEbpTwk7Ax9 l0DA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709165773; x=1709770573; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=1AfLiGExWQ7LJtXjB9I1zr2EY79Wd3x7GNxPRkAZ0FM=; b=BcSa7FhTwamtvwgJpgI2w6T3nfzp6rwSskmgnZJTcydDc4NtxFxSZhWVSaBgvdZShx sJ25Qp9xr6VLDL68+4HG7NiUuev7IRVRs5eS47CHGLr7N1Kk2uimbQsHyHHrcjCcEcfD AJTshb/Dzg2dv0lJqLqtc0CU6/SLyeqauvEqjZl8ctWKgDwh8OGz5pdTt/PanZUMAjmG UXhuheNAAmYwBRI0Zo1AKzwQpg9mr7J0+3uYHtkor084rdgqGsls5alcM+CpqlQ0MzWO U/gjvQKe+Bh4f2/dbEzR2ltjJiO8Yp76lq5vCVnMilhwEmKzwufbbxhqCF7GGKru83/C K1eg== X-Forwarded-Encrypted: i=1; AJvYcCX6t8GszXRio441zZc8End3XeZkNiZqm4hlTiaWdRY5Jx5bVn/EhtENxWhJ2UflRSKDY2mXzR7ixdydFscB/aVkswmNZcrjt3Cq8yil X-Gm-Message-State: AOJu0Yz+rv77pyoS5K6x4xWABhskyI4xlp19RtAaKjUVF/Qpg9dYEU5W zlU3bQ+X55MvetDJXd4OROfejX27Hq42M6WDPTl8k/lJN6xhWyEe28BYfN+38qbWWLMNI/oP1Rc jfTiR0A== X-Google-Smtp-Source: AGHT+IFfl2ppkZ2NhKizORHQsmVurAIjOtkG220jnLfGtZvLkBHAnml1/LtUoThBMUVwguYx9HgxzWvpv3UR X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a81:9acc:0:b0:608:398c:33bf with SMTP id r195-20020a819acc000000b00608398c33bfmr135323ywg.8.1709165773285; Wed, 28 Feb 2024 16:16:13 -0800 (PST) Date: Wed, 28 Feb 2024 16:15:37 -0800 In-Reply-To: <20240229001537.4158049-1-irogers@google.com> Message-Id: <20240229001537.4158049-14-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240229001537.4158049-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 13/13] perf jevents: Add cycles breakdown metric for AMD From: Ian Rogers To: Sandipan Das , Ravi Bangoria , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , John Garry , Kan Liang , Jing Zhang , Thomas Richter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephane Eranian Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Breakdown cycles to user, kernel and guest. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/amd_metrics.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/a= md_metrics.py index 377ce413d051..2def2adf232e 100755 --- a/tools/perf/pmu-events/amd_metrics.py +++ b/tools/perf/pmu-events/amd_metrics.py @@ -572,6 +572,24 @@ def AmdUpc() -> Metric: return Metric("upc", "Micro-ops retired per core cycle (higher is better= )", upc, "uops/cycle") =20 + +def Cycles() -> MetricGroup: + cyc_k =3D Event("cycles:kHh") + cyc_g =3D Event("cycles:G") + cyc_u =3D Event("cycles:uH") + cyc =3D cyc_k + cyc_g + cyc_u + + return MetricGroup("cycles", [ + Metric("cycles_total", "Total number of cycles", cyc, "cycles"), + Metric("cycles_user", "User cycles as a percentage of all cycles", + d_ratio(cyc_u, cyc), "100%"), + Metric("cycles_kernel", "Kernel cycles as a percentage of all cycles= ", + d_ratio(cyc_k, cyc), "100%"), + Metric("cycles_guest", "Hypervisor guest cycles as a percentage of a= ll cycles", + d_ratio(cyc_g, cyc), "100%"), + ], description =3D "cycles breakdown per privilege level (users, kernel,= guest)") + + def Idle() -> Metric: cyc =3D Event("msr/mperf/") tsc =3D Event("msr/tsc/") @@ -628,6 +646,7 @@ all_metrics =3D MetricGroup("", [ AmdHwpf(), AmdSwpf(), AmdUpc(), + Cycles(), Idle(), Rapl(), UncoreL3(), --=20 2.44.0.278.ge034bb2e1d-goog