Received: by 2002:ab2:3b09:0:b0:1ed:14ea:9113 with SMTP id b9csp254056lqc; Thu, 29 Feb 2024 17:02:30 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCVuk0XDCf6emD7z1ahNGVUHNyNppY4z9dBWVvadxYa0WBirEfWti4+M2sAibpxi7zkApO3dhYSVx2eRaJhTCRcS74/ZTdtcY6Uyv1GFww== X-Google-Smtp-Source: AGHT+IEDa+qNiL3vJ+KgtgRm0BGz81/c5Uj9SY76dKzgwuj9ABwO2WBcp9Az+BHDDWf3uA+DxWzT X-Received: by 2002:a05:6e02:1ca4:b0:364:ff70:ecb3 with SMTP id x4-20020a056e021ca400b00364ff70ecb3mr381491ill.29.1709254950633; Thu, 29 Feb 2024 17:02:30 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709254950; cv=pass; d=google.com; s=arc-20160816; b=RZ/CIYci0GQQ70GcuSEZ0Opkm95+mjBH62MaqI7ADyaZsrlPMvxKKQQZ8GmKRCiYYm X62spPmFkT+v5FGzFBIhj8vqz9DFBd7rXaBhdNLTxcRahCOrAAkpE89Xf2UijbEsrdeZ NdfSnGdX76pmayocZxZKyn1f/IwgUc/d0hivJg6GcGYuNjdrxrnkl+xrfKQVaYVN0LwG ja6oRw8dCRmNm5EhIdf59Ae4Vg1Jt/LY7GFnym9ooaHAmckIGlI/DgE/vVxSwRG+wwq4 ctvDQaIy/50nBXxwwngxv65jLb0YH6qClE5WcYj9pYij9B9iDs1Ksn2Kz1S5UkbN7ZbX LDBQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=SGi+DBKLmbpkuw51xKZeEFOZatSTb67qGD3fLAFzMHI=; fh=2kcnDdAiM0Hsk7EttEcpwCc+1SAsp46WnwqjEoi6Zbc=; b=laMALn60/21n0qdZ4FO8ECfCtudDC8rrxdLlWLL449eqzkLCs0+L/LJ4d4tEEjfgzu +VdvuO73Dfr8kudbIe+9pQ7ami4jh5wcj2J7mC7bDcjWb4qTIsmJ0Oaph7UKTxSQNxaf XFnRdN1osMKUcpfJnZ2v0EmZ9MAMKOsMGIYnex8J1cdeTUIhHOCoGM4n/HYbSNVZhNLq Xu/A6ruepX4NKemE4Xi7+5USpo0jWhgGcoXQrmXNcdZmxbH/7Lo0FjLAnJ1Kdm6MQIMx NLYs55FWuZL/gPvDtLnQIvEjHGH0mMkpQplMFcOk50ooG5MCdUIvmbKQdfLEi7yRlRzG jFIg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=BHsQa3yS; arc=pass (i=1 spf=pass spfdomain=google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-87750-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-87750-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id t15-20020a92dc0f000000b00365a6831544si858008iln.189.2024.02.29.17.02.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 17:02:30 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-87750-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=BHsQa3yS; arc=pass (i=1 spf=pass spfdomain=google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-87750-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-87750-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id E76D42845D9 for ; Fri, 1 Mar 2024 01:02:29 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7FDC82AF1A; Fri, 1 Mar 2024 01:02:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="BHsQa3yS" Received: from mail-qt1-f178.google.com (mail-qt1-f178.google.com [209.85.160.178]) (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 5E4972B9B9 for ; Fri, 1 Mar 2024 01:02:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.178 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709254936; cv=none; b=M+t6ZcFHjAg/6XsUKVcTPT6SPMBMRZK4SsZhfqaN1O4RW5NBOrx6Na3lyPK0i1N88Tgr2v35JDOaLAVpgz4O9jJuRpXzUaTHSEJIVlRv3IWcQALVVFFuV4vRTi71kZRMB3MmqJaU/1TDv+Ynf2ZBKWgaCshcutuWSqetRrXH/oE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709254936; c=relaxed/simple; bh=avbb1uT+lCjqlR3Vtb4dKd8TAjjBeVnovcFFYaHg+Kw=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=ca6UJTNi6kB++8AjdSvrXJlN1c0pBgGIrRa/5lEX9QmrOAn+ULq9PgkUmx+Lhl3YMeHEhfVE1LkcZ1oFeq0ymj4DiJ9cw9IaOwbKI39Qdgw3S9fx7Vk/aQ3vT4ULhXkcdgeJWHl1y12gDfDpdZ6yYYS22zE3D4x03VUHl0qMXq4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=BHsQa3yS; arc=none smtp.client-ip=209.85.160.178 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=google.com Received: by mail-qt1-f178.google.com with SMTP id d75a77b69052e-42ec9eb9aefso19321cf.0 for ; Thu, 29 Feb 2024 17:02:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709254933; x=1709859733; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=SGi+DBKLmbpkuw51xKZeEFOZatSTb67qGD3fLAFzMHI=; b=BHsQa3ySKVupdcmCfEllblcdn5na7vKShmpnZ6j41xZWlwM7REbTOlPzuKZv6AlxIK x3801S8uXkoJ/a6DKYhTCG4+NMnyR+2dqUul6we4oRJ341Qjm8b29kQ9b1Ol8UYo0/Z2 b7vej3T4Hs3X+zKxVJ/GViLG6A2JbB3dx1X6kNwdNrrgeAOCGN25FKuReTNJSyN14NuO bw6pe/D8eeqCMsLomyxu/BHcU9rCS2WiB+rRvskzyiHCfBy5SadVe3sRJxoP0xTL9ZTz yjQGXBKj5NZzREFeXisEUtE+ObbGcvW9+qEOy+VmZISSm14JHBlm/UijpC5nzSw20B5s Pp3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709254933; x=1709859733; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SGi+DBKLmbpkuw51xKZeEFOZatSTb67qGD3fLAFzMHI=; b=l2ASQ4cg4KrDOW98SyJ++3nl+HYT9mLvbDMMtIh8KdS+QgAE+MkH1FG7HkijOvE/jV s/oGDGtHkkSpMPWRnB2ae/3BbHnSB2GkCuawMPNPbh68HAa0CG0vaapQxW24Gvr9+YxT cNsQk4o3M/R4kS6HNgv7y6LUk4LUXQXYRFlzOKVxLoJWIVdgw6Ct1OZ6vWp1I5sdM0Jy mWApHvJrEzwn1WlJSRxGa+2mXPrl2UH6VsQVN8arVcvMgMkRQQfSzsF8bCLNi4mWfD4N zceEaGfXqPV8GvgRfbNIcttLzxNgXUcf9awIdb7O2dkYmYS/TtPtZo0V9MSRbTfuWvRY kdrA== X-Forwarded-Encrypted: i=1; AJvYcCWqSNbpJKisXAIPhU6SS13igxOOe4K3ej+AgnJDLbPF45sFy6roA9wlfAUuJD3rVU5WBzHWj4LopbPKJpND+S2zXLLvLh/sgSIbWgqS X-Gm-Message-State: AOJu0YxjsVUZ+Gg68aBHT1jxtbRwbedbcEAOqTS/If+k3xGsV0aIw68K IQYd0cemYGAheXloKLLGrpMAr+wjzKBfIQzMGh/D5N/im367Ke2z0NbhTbhR5MeSftlqBufEqYf za95/djJoEbcRJxGkZ0gv+CeT8lu0N/rtG3Lo X-Received: by 2002:a05:622a:188c:b0:42e:4f31:c488 with SMTP id v12-20020a05622a188c00b0042e4f31c488mr100939qtc.20.1709254933185; Thu, 29 Feb 2024 17:02:13 -0800 (PST) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240229001806.4158429-1-irogers@google.com> <20240229001806.4158429-2-irogers@google.com> <28bc7ea0-ff3e-48a5-a8b3-20cc52728a5f@linux.intel.com> In-Reply-To: <28bc7ea0-ff3e-48a5-a8b3-20cc52728a5f@linux.intel.com> From: Ian Rogers Date: Thu, 29 Feb 2024 17:02:02 -0800 Message-ID: Subject: Re: [PATCH v1 01/20] perf jevents: Add RAPL metrics for all Intel models To: "Liang, Kan" Cc: Perry Taylor , Samantha Alt , Caleb Biggers , Weilin Wang , Edward Baker , Andi Kleen , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , John Garry , Jing Zhang , Thomas Richter , James Clark , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Stephane Eranian Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Feb 29, 2024 at 12:59=E2=80=AFPM Liang, Kan wrote: > > > > On 2024-02-28 7:17 p.m., Ian Rogers wrote: > > Add a 'cpu_power' metric group that computes the power consumption > > from RAPL events if they are present. > > > > Signed-off-by: Ian Rogers > > --- > > tools/perf/pmu-events/intel_metrics.py | 45 ++++++++++++++++++++++++-- > > 1 file changed, 42 insertions(+), 3 deletions(-) > > > > diff --git a/tools/perf/pmu-events/intel_metrics.py b/tools/perf/pmu-ev= ents/intel_metrics.py > > index 4fbb31c9eccd..5827f555005f 100755 > > --- a/tools/perf/pmu-events/intel_metrics.py > > +++ b/tools/perf/pmu-events/intel_metrics.py > > @@ -1,9 +1,10 @@ > > #!/usr/bin/env python3 > > # SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) > > -from metric import (JsonEncodeMetric, JsonEncodeMetricGroupDescription= s, LoadEvents, > > - MetricGroup) > > +from metric import (d_ratio, has_event, Event, JsonEncodeMetric, JsonE= ncodeMetricGroupDescriptions, > > + LoadEvents, Metric, MetricGroup, Select) > > import argparse > > import json > > +import math > > import os > > > > parser =3D argparse.ArgumentParser(description=3D"Intel perf json gene= rator") > > @@ -14,7 +15,45 @@ args =3D parser.parse_args() > > directory =3D f"{os.path.dirname(os.path.realpath(__file__))}/arch/x86= /{args.model}/" > > LoadEvents(directory) > > > > -all_metrics =3D MetricGroup("",[]) > > +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 > > + pkg =3D Event("power/energy\-pkg/") > > + cond_pkg =3D Select(pkg, has_event(pkg), math.nan) > > + cores =3D Event("power/energy\-cores/") > > + cond_cores =3D Select(cores, has_event(cores), math.nan) > > + ram =3D Event("power/energy\-ram/") > > + cond_ram =3D Select(ram, has_event(ram), math.nan) > > + gpu =3D Event("power/energy\-gpu/") > > + cond_gpu =3D Select(gpu, has_event(gpu), math.nan) > > + psys =3D Event("power/energy\-psys/") > > + cond_psys =3D Select(psys, has_event(psys), math.nan) > > + scale =3D 2.3283064365386962890625e-10 > > + metrics =3D [ > > + Metric("cpu_power_pkg", "", > > + d_ratio(cond_pkg * scale, interval_sec), "Watts"), > > + Metric("cpu_power_cores", "", > > + d_ratio(cond_cores * scale, interval_sec), "Watts"), > > + Metric("cpu_power_ram", "", > > + d_ratio(cond_ram * scale, interval_sec), "Watts"), > > + Metric("cpu_power_gpu", "", > > + d_ratio(cond_gpu * scale, interval_sec), "Watts"), > > + Metric("cpu_power_psys", "", > > + d_ratio(cond_psys * scale, interval_sec), "Watts"), > > + ] > > + > > + return MetricGroup("cpu_power", metrics, > > + description=3D"Processor socket power consumption= estimates") > > As far as I know, the RAPL counters are to monitor energy consumption > across different domains. The scope may not always be a socket. I think > the description may brings confusions. > Maybe we just call it "RAPL power consumption estimates", or "Running > Average Power Limit (RAPL) power consumption estimates". Ack. Will fix in v2. Thanks, Ian > Thanks, > Kan > > + > > + > > +all_metrics =3D MetricGroup("", [ > > + Rapl(), > > +]) > > > > if args.metricgroups: > > print(JsonEncodeMetricGroupDescriptions(all_metrics))