[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAP-5=fW6er5djFROP-SQ64uiN545wfHoyZazugya1h8JXXyvvQ@mail.gmail.com>
Date: Fri, 28 Nov 2025 01:20:14 -0800
From: Ian Rogers <irogers@...gle.com>
To: Sandipan Das <sandipan.das@....com>
Cc: Adrian Hunter <adrian.hunter@...el.com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>, Benjamin Gray <bgray@...ux.ibm.com>,
Caleb Biggers <caleb.biggers@...el.com>, Edward Baker <edward.baker@...el.com>,
Ingo Molnar <mingo@...hat.com>, James Clark <james.clark@...aro.org>,
Jing Zhang <renyu.zj@...ux.alibaba.com>, Jiri Olsa <jolsa@...nel.org>,
John Garry <john.g.garry@...cle.com>, Leo Yan <leo.yan@....com>,
Namhyung Kim <namhyung@...nel.org>, Perry Taylor <perry.taylor@...el.com>,
Peter Zijlstra <peterz@...radead.org>, Samantha Alt <samantha.alt@...el.com>,
Thomas Falcon <thomas.falcon@...el.com>, Weilin Wang <weilin.wang@...el.com>,
Xu Yang <xu.yang_2@....com>, linux-kernel@...r.kernel.org,
linux-perf-users@...r.kernel.org
Subject: Re: [PATCH v8 15/52] perf jevents: Add RAPL event metric for AMD zen models
On Tue, Nov 25, 2025 at 9:05 PM Sandipan Das <sandipan.das@....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@...gle.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))
>
Powered by blists - more mailing lists