From: Ian Rogers <irogers@google.com>
To: Sandipan Das <sandipan.das@amd.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Benjamin Gray <bgray@linux.ibm.com>,
Caleb Biggers <caleb.biggers@intel.com>,
Edward Baker <edward.baker@intel.com>,
Ingo Molnar <mingo@redhat.com>,
James Clark <james.clark@linaro.org>,
Jing Zhang <renyu.zj@linux.alibaba.com>,
Jiri Olsa <jolsa@kernel.org>,
John Garry <john.g.garry@oracle.com>, Leo Yan <leo.yan@arm.com>,
Namhyung Kim <namhyung@kernel.org>,
Perry Taylor <perry.taylor@intel.com>,
Peter Zijlstra <peterz@infradead.org>,
Samantha Alt <samantha.alt@intel.com>,
Thomas Falcon <thomas.falcon@intel.com>,
Weilin Wang <weilin.wang@intel.com>, Xu Yang <xu.yang_2@nxp.com>,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v8 15/52] perf jevents: Add RAPL event metric for AMD zen models
Date: Fri, 28 Nov 2025 01:20:14 -0800 [thread overview]
Message-ID: <CAP-5=fW6er5djFROP-SQ64uiN545wfHoyZazugya1h8JXXyvvQ@mail.gmail.com> (raw)
In-Reply-To: <095bbbb8-4a65-4888-aa7d-39ea09a52b84@amd.com>
On Tue, Nov 25, 2025 at 9:05 PM Sandipan Das <sandipan.das@amd.com> wrote:
>
> On 11/13/2025 8:50 AM, Ian Rogers wrote:
> > Add power per second metrics based on RAPL.
> >
> > Signed-off-by: Ian Rogers <irogers@google.com>
> > ---
> > tools/perf/pmu-events/amd_metrics.py | 31 +++++++++++++++++++++++++---
> > 1 file changed, 28 insertions(+), 3 deletions(-)
> >
> > diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/amd_metrics.py
> > index bc91d9c120fa..b6cdeb4f09fe 100755
> > --- a/tools/perf/pmu-events/amd_metrics.py
> > +++ b/tools/perf/pmu-events/amd_metrics.py
> > @@ -1,13 +1,36 @@
> > #!/usr/bin/env python3
> > # SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
> > import argparse
> > +import math
> > import os
> > -from metric import (JsonEncodeMetric, JsonEncodeMetricGroupDescriptions, LoadEvents,
> > - MetricGroup)
> > +from metric import (d_ratio, has_event, Event, JsonEncodeMetric, JsonEncodeMetricGroupDescriptions,
> > + LoadEvents, Metric, MetricGroup, Select)
> >
> > # Global command line arguments.
> > _args = None
> >
> > +interval_sec = Event("duration_time")
> > +
> > +
> > +def Rapl() -> MetricGroup:
> > + """Processor socket power consumption estimate.
> > +
> > + Use events from the running average power limit (RAPL) driver.
> > + """
> > + # Watts = joules/second
> > + # Currently only energy-pkg is supported by AMD:
> > + # https://lore.kernel.org/lkml/20220105185659.643355-1-eranian@google.com/
> > + pkg = Event("power/energy\\-pkg/")
> > + cond_pkg = Select(pkg, has_event(pkg), math.nan)
> > + scale = 2.3283064365386962890625e-10
>
> It is unlikely that the scale factor will change, but would it still be safer to read
> it from /sys/bus/event_source/devices/power/events/energy-pkg.scale?
Thanks Sandipan, I agree with the feedback but this isn't something
the metrics currently support. I'll keep it in mind.
Wrt, the other feedback, I'm wondering if we can get this series
landed and drop for now the patches that you have commented on? I'll
move them to a follow up series. That'd make the AMD patches here
something like:
Keep: [PATCH v8 15/52] perf jevents: Add RAPL event metric for AMD zen models
Keep: [PATCH v8 16/52] perf jevents: Add idle metric for AMD zen models
Keep: [PATCH v8 17/52] perf jevents: Add upc metric for uops per cycle for AMD
Keep: [PATCH v8 18/52] perf jevents: Add br metric group for branch
statistics on AMD
Drop: [PATCH v8 19/52] perf jevents: Add software prefetch (swpf)
metric group for AMD
Drop: [PATCH v8 20/52] perf jevents: Add hardware prefetch (hwpf)
metric group for AMD
Keep: [PATCH v8 21/52] perf jevents: Add itlb metric group for AMD
Keep: [PATCH v8 22/52] perf jevents: Add dtlb metric group for AMD
Drop (or perhaps keep and followup with miss latency): [PATCH v8
23/52] perf jevents: Add uncore l3 metric group for AMD
Keep: [PATCH v8 24/52] perf jevents: Add load store breakdown metrics
ldst for AMD
Drop: [PATCH v8 25/52] perf jevents: Add ILP metrics for AMD
Keep: [PATCH v8 26/52] perf jevents: Add context switch metrics for AMD
Keep: [PATCH v8 27/52] perf jevents: Add uop cache hit/miss rates for AMD
Is it okay to use your reviewed-by tag on the kept patches? If I keep
patch 23 for uncore l3, with a follow up on miss latency, then are you
okay with that?
Thanks!
Ian
> > + metrics = [
> > + Metric("lpm_cpu_power_pkg", "",
> > + d_ratio(cond_pkg * scale, interval_sec), "Watts"),
> > + ]
> > +
> > + return MetricGroup("lpm_cpu_power", metrics,
> > + description="Processor socket power consumption estimates")
> > +
> >
> > def main() -> None:
> > global _args
> > @@ -33,7 +56,9 @@ def main() -> None:
> > directory = f"{_args.events_path}/x86/{_args.model}/"
> > LoadEvents(directory)
> >
> > - all_metrics = MetricGroup("", [])
> > + all_metrics = MetricGroup("", [
> > + Rapl(),
> > + ])
> >
> > if _args.metricgroups:
> > print(JsonEncodeMetricGroupDescriptions(all_metrics))
>
next prev parent reply other threads:[~2025-11-28 9:20 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-13 3:19 [PATCH v8 00/52] AMD, ARM, Intel metric generation with Python Ian Rogers
2025-11-13 3:19 ` [PATCH v8 01/52] perf python: Correct copying of metric_leader in an evsel Ian Rogers
2025-11-13 3:19 ` [PATCH v8 02/52] perf ilist: Be tolerant of reading a metric on the wrong CPU Ian Rogers
2025-11-13 3:19 ` [PATCH v8 03/52] perf jevents: Allow multiple metricgroups.json files Ian Rogers
2025-11-13 3:19 ` [PATCH v8 04/52] perf jevents: Update metric constraint support Ian Rogers
2025-11-13 3:19 ` [PATCH v8 05/52] perf jevents: Add descriptions to metricgroup abstraction Ian Rogers
2025-11-13 3:19 ` [PATCH v8 06/52] perf jevents: Allow metric groups not to be named Ian Rogers
2025-11-13 3:19 ` [PATCH v8 07/52] perf jevents: Support parsing negative exponents Ian Rogers
2025-11-13 3:19 ` [PATCH v8 08/52] perf jevents: Term list fix in event parsing Ian Rogers
2025-11-13 3:19 ` [PATCH v8 09/52] perf jevents: Add threshold expressions to Metric Ian Rogers
2025-11-13 3:19 ` [PATCH v8 10/52] perf jevents: Move json encoding to its own functions Ian Rogers
2025-11-13 3:19 ` [PATCH v8 11/52] perf jevents: Drop duplicate pending metrics Ian Rogers
2025-11-13 3:20 ` [PATCH v8 12/52] perf jevents: Skip optional metrics in metric group list Ian Rogers
2025-11-13 3:20 ` [PATCH v8 13/52] perf jevents: Build support for generating metrics from python Ian Rogers
2025-11-13 3:20 ` [PATCH v8 14/52] perf jevents: Add load event json to verify and allow fallbacks Ian Rogers
2025-11-13 3:20 ` [PATCH v8 15/52] perf jevents: Add RAPL event metric for AMD zen models Ian Rogers
2025-11-26 5:05 ` Sandipan Das
2025-11-28 9:20 ` Ian Rogers [this message]
2025-11-28 11:33 ` Sandipan Das
2025-11-13 3:20 ` [PATCH v8 16/52] perf jevents: Add idle " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 17/52] perf jevents: Add upc metric for uops per cycle for AMD Ian Rogers
2025-11-13 3:20 ` [PATCH v8 18/52] perf jevents: Add br metric group for branch statistics on AMD Ian Rogers
2025-11-13 3:20 ` [PATCH v8 19/52] perf jevents: Add software prefetch (swpf) metric group for AMD Ian Rogers
2025-11-26 10:05 ` Sandipan Das
2025-11-13 3:20 ` [PATCH v8 20/52] perf jevents: Add hardware prefetch (hwpf) " Ian Rogers
2025-11-26 10:17 ` Sandipan Das
2025-11-13 3:20 ` [PATCH v8 21/52] perf jevents: Add itlb " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 22/52] perf jevents: Add dtlb " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 23/52] perf jevents: Add uncore l3 " Ian Rogers
2025-11-26 5:20 ` Sandipan Das
2025-11-13 3:20 ` [PATCH v8 24/52] perf jevents: Add load store breakdown metrics ldst " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 25/52] perf jevents: Add ILP metrics " Ian Rogers
2025-11-26 6:26 ` Sandipan Das
2025-11-13 3:20 ` [PATCH v8 26/52] perf jevents: Add context switch " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 27/52] perf jevents: Add uop cache hit/miss rates " Ian Rogers
2025-11-26 5:42 ` Sandipan Das
2025-11-13 3:20 ` [PATCH v8 28/52] perf jevents: Add RAPL metrics for all Intel models Ian Rogers
2025-11-13 3:20 ` [PATCH v8 29/52] perf jevents: Add idle metric for " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 30/52] perf jevents: Add CheckPmu to see if a PMU is in loaded json events Ian Rogers
2025-11-13 3:20 ` [PATCH v8 31/52] perf jevents: Add smi metric group for Intel models Ian Rogers
2025-11-13 3:20 ` [PATCH v8 32/52] perf jevents: Mark metrics with experimental events as experimental Ian Rogers
2025-11-13 3:20 ` [PATCH v8 33/52] perf jevents: Add tsx metric group for Intel models Ian Rogers
2025-11-13 3:20 ` [PATCH v8 34/52] perf jevents: Add br metric group for branch statistics on Intel Ian Rogers
2025-11-13 3:20 ` [PATCH v8 35/52] perf jevents: Add software prefetch (swpf) metric group for Intel Ian Rogers
2025-11-13 3:20 ` [PATCH v8 36/52] perf jevents: Add ports metric group giving utilization on Intel Ian Rogers
2025-11-13 3:20 ` [PATCH v8 37/52] perf jevents: Add L2 metrics for Intel Ian Rogers
2025-11-13 3:20 ` [PATCH v8 38/52] perf jevents: Add load store breakdown metrics ldst " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 39/52] perf jevents: Add ILP metrics " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 40/52] perf jevents: Add context switch " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 41/52] perf jevents: Add FPU " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 42/52] perf jevents: Add Miss Level Parallelism (MLP) metric " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 43/52] perf jevents: Add mem_bw " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 44/52] perf jevents: Add local/remote "mem" breakdown metrics " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 45/52] perf jevents: Add dir " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 46/52] perf jevents: Add C-State metrics from the PCU PMU " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 47/52] perf jevents: Add local/remote miss latency metrics " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 48/52] perf jevents: Add upi_bw metric " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 49/52] perf jevents: Add mesh bandwidth saturation " Ian Rogers
2025-11-13 3:20 ` [PATCH v8 50/52] perf jevents: Add collection of topdown like metrics for arm64 Ian Rogers
2025-11-13 3:20 ` [PATCH v8 51/52] perf jevents: Add cycles breakdown metric for arm64/AMD/Intel Ian Rogers
2025-11-26 6:32 ` Sandipan Das
2025-11-13 3:20 ` [PATCH v8 52/52] perf jevents: Validate that all names given an Event Ian Rogers
2025-11-19 18:30 ` [PATCH v8 00/52] AMD, ARM, Intel metric generation with Python Ian Rogers
2025-11-20 20:32 ` Falcon, Thomas
2025-11-20 21:10 ` Namhyung Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAP-5=fW6er5djFROP-SQ64uiN545wfHoyZazugya1h8JXXyvvQ@mail.gmail.com' \
--to=irogers@google.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=bgray@linux.ibm.com \
--cc=caleb.biggers@intel.com \
--cc=edward.baker@intel.com \
--cc=james.clark@linaro.org \
--cc=john.g.garry@oracle.com \
--cc=jolsa@kernel.org \
--cc=leo.yan@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=perry.taylor@intel.com \
--cc=peterz@infradead.org \
--cc=renyu.zj@linux.alibaba.com \
--cc=samantha.alt@intel.com \
--cc=sandipan.das@amd.com \
--cc=thomas.falcon@intel.com \
--cc=weilin.wang@intel.com \
--cc=xu.yang_2@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).