From nobody Sun Feb 8 16:31:56 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1C06AEB64DC for ; Fri, 23 Jun 2023 00:33:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231236AbjFWAdu (ORCPT ); Thu, 22 Jun 2023 20:33:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46678 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230456AbjFWAdm (ORCPT ); Thu, 22 Jun 2023 20:33:42 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 96CBD2110 for ; Thu, 22 Jun 2023 17:33:40 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-bb2202e0108so106355276.1 for ; Thu, 22 Jun 2023 17:33:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1687480420; x=1690072420; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=LbVKkaPWXAVNKNh1CW8R2oY532WwWiXP5nT3QKlBBnU=; b=AaRCTITJKd9HyDi4SyAE/11tiqMEY/RRlh2AKpVdV4m4I/mGJRBzN5uOtRHffP2gpU uhtqai3wOKIcBOeWqBr4hU8ghT1WeLkBTFWVCx1WDxubDNjZcBaS2eZM9s5pCoPjo9z9 1QRp2q4qcMyG9zi5uPkOldRzCsPWh5MiXq+as/4S/5Id6M7HDEWFGJGHG65YTRVTN/8J f4zh5bPwNTm1moYu4njWQJSd54ouaTpQDH+gfsUsAweAGCWPRTNvijMDkDqH5+ceQguu kl+qQQo8H+wmQ8rXnKQuAGeKIeRwZCLavQ9Lp6JKrW88SzkvG/NdYigpVkEkvd17L+gP t9Sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687480420; x=1690072420; 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=LbVKkaPWXAVNKNh1CW8R2oY532WwWiXP5nT3QKlBBnU=; b=doOXXRdMhvBRZ8lhTMcbFiOgL78g0Pmkp3vW3+MnoOkijRur8p7Dt9RTMAr7r63X0N JNDYM8+ws7T0Jchr4Gfg3FLrlI5ikTejRWfSct2/swfygI8JmRok3x2dOJC2LFnnR+xM 9IpUbKrcsWBZ6C/xy4BPiqAk8HTUdIJA2jfPhBZcn4LTiZGUt/mgJkqQnWpSbKuJKST/ bSFdk2GPLEd58i6yJd1SSfcu3MZE9fpR+r3fSLlsMzozN+HQHX2r8Q2k36IX/rGhI+2M 1U2Lkg/Dr1SBdFAjeh9Dm+85YcpuDYoiIzTHofEhC+WmJz5dJV069yl9Mrd49Rk6z2+8 a1Zw== X-Gm-Message-State: AC+VfDwjdqzgl6/In6rr0wTbjCIDyc4EI3YA9K1Li65uvOqRnv+VDz9o LMkteXu1IwZelW/TntN+pTjXBzsxGaXo X-Google-Smtp-Source: ACHHUZ6OJjD/teA9FBh+MFiVaUrzMx+E2xx2BI4tAwweZAbRn/r2rD6fOAUB3scwLjT71V+K06EFs3vEs4pt X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:6559:8968:cdfe:35b6]) (user=irogers job=sendgmr) by 2002:a05:6902:1363:b0:bea:918f:2ef6 with SMTP id bt3-20020a056902136300b00bea918f2ef6mr2524024ybb.0.1687480419806; Thu, 22 Jun 2023 17:33:39 -0700 (PDT) Date: Thu, 22 Jun 2023 17:33:02 -0700 In-Reply-To: <20230623003312.3981075-1-irogers@google.com> Message-Id: <20230623003312.3981075-3-irogers@google.com> Mime-Version: 1.0 References: <20230623003312.3981075-1-irogers@google.com> X-Mailer: git-send-email 2.41.0.162.gfafddb0af9-goog Subject: [PATCH v1 02/12] perf jevents: Support for has_event function From: Ian Rogers To: eter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Adrian Hunter , Kan Liang , Zhengjun Xing , Kajol Jain , John Garry , Andrii Nakryiko , Eduard Zingerman , Jing Zhang , Sohom Datta , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Perry Taylor , Samantha Alt , Caleb Biggers , Weilin Wang , Edward Baker Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Support for the new has_event function in metrics. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/metric.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/perf/pmu-events/metric.py b/tools/perf/pmu-events/metric= .py index af58b74d1644..85a3545f5b6a 100644 --- a/tools/perf/pmu-events/metric.py +++ b/tools/perf/pmu-events/metric.py @@ -408,6 +408,12 @@ def source_count(event: Event) -> Function: return Function('source_count', event) =20 =20 +def has_event(event: Event) -> Function: + # pylint: disable=3Dredefined-builtin + # pylint: disable=3Dinvalid-name + return Function('has_event', event) + + class Metric: """An individual metric that will specifiable on the perf command line."= "" groups: Set[str] @@ -539,7 +545,7 @@ def ParsePerfJson(orig: str) -> Expression: r'Event(r"\1")', py) py =3D re.sub(r'#Event\(r"([^"]*)"\)', r'Literal("#\1")', py) py =3D re.sub(r'([0-9]+)Event\(r"(e[0-9]+)"\)', r'\1\2', py) - keywords =3D ['if', 'else', 'min', 'max', 'd_ratio', 'source_count'] + keywords =3D ['if', 'else', 'min', 'max', 'd_ratio', 'source_count', 'ha= s_event'] for kw in keywords: py =3D re.sub(rf'Event\(r"{kw}"\)', kw, py) =20 --=20 2.41.0.162.gfafddb0af9-goog