Received: by 2002:ab2:5c0e:0:b0:1ef:a325:1205 with SMTP id i14csp182768lqk; Wed, 13 Mar 2024 22:51:26 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCX2jKxLFoj93VC9G0GkBR2QkXdLvkjEqVHfYIP914aFA7un1I3zFKnu4LFa7tic2lap4BHBtQvYbn6vpd6xzudjadgq7FSCmC2YVAp3Kw== X-Google-Smtp-Source: AGHT+IGu9lu1Lsn3dBf8Ae6YyU25k3sQJ6iVm1m3zc48ML+8t8B3FOvRhmEj+qSBrTgfP51mU1E2 X-Received: by 2002:a05:6402:2486:b0:566:4dc1:522c with SMTP id q6-20020a056402248600b005664dc1522cmr467244eda.15.1710395486398; Wed, 13 Mar 2024 22:51:26 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1710395486; cv=pass; d=google.com; s=arc-20160816; b=a5d0Wcj6qNom6vS7zBpvHWMNSEqaV6JzJyC+SZU48X8chUMchW8L4DyhHLlnpK0uXe JE8dlNcfMfnOjZyvJnMm2/4kCz/ktJ6kHGTflkSjxIow4RDGEDrtHQ5Hceuqla64QHom rmTbfoDMHHxwdwwmzboicgjGT6sZdDCax6ICTj3YSsgojyfBDIUilTGP5TQyc2FtMRHh C4qvfRKasE22RKdnVsgxvirRQGXJoH2mUjprhUvHTWf/OK1Zz2reoj2zlCnEi2I97nj5 uKACE5SMQ6yA/5e+YOEJYpfs0rQkbgWZ/Q1i7vU/MF1kAQvX/Bgp96gyR4voUhIBiXYA oAEA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:message-id:date:dkim-signature; bh=YCqK+HuTsy25M+g/yEFD0qCgc7u53JD83szShkckrSU=; fh=waAwfJpIGriqf86rj0S3XvFJwDcfHGVIZx4hn6B3Clw=; b=qG7i3z/OXB3BKxNloT4JVmvHLLrSMgFof0QY/TdSCHncgej3UYYH5gT9Wm+lh4M52B O3hI1bXCqILnhkyZaVj74U1ZYrMO+nLWT9wt9uO7sHQynwkIMxl7JkWMpVEkwJxCbZdK y31mlE0L+9foiXleFwBQZogX0ePjL5KO1a8Vvh6WBP1mHrp3GnxRBz/SW7a/wYvsNLG3 mWaFZQvx+VZ4Xx7+j3s1ZFVSkSLw/NiN2Pq/MJK33KlVitfSzfYAzqXPimrdmGnKU8KE +QD/vhi5gI+QwdX2+u1jlST9QNLpVTbIfPf4wHIlOZPLWD5AuFB2sjsn5qJeUPT6a6nU qFMQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=OGF3dDZf; arc=pass (i=1 spf=pass spfdomain=flex--irogers.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-102799-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-102799-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id t2-20020a508d42000000b00568a4212e04si14176edt.274.2024.03.13.22.51.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Mar 2024 22:51:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-102799-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=OGF3dDZf; arc=pass (i=1 spf=pass spfdomain=flex--irogers.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-102799-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-102799-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 am.mirrors.kernel.org (Postfix) with ESMTPS id 226521F234B5 for ; Thu, 14 Mar 2024 05:51:26 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E6883D28D; Thu, 14 Mar 2024 05:51:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="OGF3dDZf" 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 8FDF1947B for ; Thu, 14 Mar 2024 05:51:18 +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=1710395480; cv=none; b=MR8V7FkOykJ0bdXD7/SD4c3wJa25V3xKWfS7lDaf5eUWOacby7591ab3VEB1vmxh5zNeixJTTmqQiXIa5gLeBs+Psl848GUiiqYU/mYXUqhrUnmWJjUX3OvhzSHPrQHoRK2t8tqiJcDbXv2Sy57BKB3JSe/syfdTE2+cE7Xt144= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710395480; c=relaxed/simple; bh=v0yqG1/eVUcfK+EPjUe4XPhP/J2eaY9fzjQzfVc6/H0=; h=Date:Message-Id:Mime-Version:Subject:From:To:Content-Type; b=akn45jsc99QAiwCRf7AfQ5CmverI6SDWA3KDHqBRRFJCUzoA62NzD5H66g7ZrJ2Q1bPKpStSuW5/Xj/Uy6O5Z40LLw/Nifiga26Sbg500i+KkZSEcTeZs73d720nlso3xTm9K1UpeViNDg8r/At0UsyNpgIHNJ7X6prZspm2+Tg= 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=OGF3dDZf; 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 Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-dc6b26845cdso645521276.3 for ; Wed, 13 Mar 2024 22:51:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1710395477; x=1711000277; darn=vger.kernel.org; h=to:from:subject:mime-version:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=YCqK+HuTsy25M+g/yEFD0qCgc7u53JD83szShkckrSU=; b=OGF3dDZf2gu95++gEz9cRV7zwm6TKcwJNKRZQUqnWplbCDTVE3q2wn8SgQhKO4jkZY s08GfPEJEEVOEsyGkK6tFVIJutPfGTZwldy+H510Ji683cjGbj0F60Hr9M6XZcOa3Pw3 ah3owNM7fOvVrJAinZKT6Nxa0oHKjltFLisKWUloRhKVA/X9Yo/QKYZb7btHGZQPyLeJ 2zOdjWDXyeYzTTg1qyOFZgb73f6OPxT9gZPLnFHoS0Q4fwAcynr3lAaSjbayd93eBr7i 3fQNV0CR6eEBweNbmlQDP6AsEf/2dzB3bV9QOb0h044aJE6Yq7QyGQSPvVVbLIFPJyci 9Ung== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710395477; x=1711000277; h=to:from:subject:mime-version:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=YCqK+HuTsy25M+g/yEFD0qCgc7u53JD83szShkckrSU=; b=GJHEWEkDjQjHdoHo4kiMmM3tFfbQFOIwM6gaNqJdUgh2gWNqrY8eKTbpfGL6l1M5FI qKypT7/zDIpIErSsazFfv5lsSRGYcSBtMcWFfyfyvnv01s7i/7cAeOS0r6Leo79YUTV+ cJ0Xi2yx/r+ZEUnLZ9fGDJYtx1LXHtwiHyVFeTfWEl05qjk9oMSOQJcIaJHPM/aYz7D2 00L9TJ0N9mk/HpJ/+8oIOpA2Qzy8ldBv3i22iBDrVcLY17yzv6LCvIxIzVORRK8AuT1U gi6gNCJHW1CBE++FK6iSj7ZZlxqDFFSTDpbW4NZP3yWERsxtLjrSgn9NQPT9onyGjujV zI4g== X-Forwarded-Encrypted: i=1; AJvYcCVSzlMRBnp7AOg90an39vwXjLJb2W17Ahy0veMPSxNJLZ7MaQpSffXWqfaK5HS/Njx3X/wIDUMWiBXF01LGnYinZlyjJO1+bKt4e0o6 X-Gm-Message-State: AOJu0YwZWIhxHWnWSCC9DFpG41552gZZ4neK69QuKDkx1JSDAq8ve4tl i/tGRFpU5b8DEaCOc7D2RjLuX0PPfprNo4uxqvFSx25C8ph+dOq3ulnDEx77krvefwdH8KTuFva nENQ0Zw== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:449f:3bde:a4cd:806a]) (user=irogers job=sendgmr) by 2002:a05:6902:2504:b0:dc2:3441:897f with SMTP id dt4-20020a056902250400b00dc23441897fmr212987ybb.6.1710395477631; Wed, 13 Mar 2024 22:51:17 -0700 (PDT) Date: Wed, 13 Mar 2024 22:50:39 -0700 Message-Id: <20240314055051.1960527-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v3 00/12] Foundations for metric generation with Python From: Ian Rogers To: 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, Andi Kleen , Kajol Jain , Sandipan Das , Ravi Bangoria , Perry Taylor , Samantha Alt , Caleb Biggers , Weilin Wang , Edward Baker , Stephane Eranian Content-Type: text/plain; charset="UTF-8" Metrics in the perf tool come in via json. Json doesn't allow comments, line breaks, etc. making it an inconvenient way to write metrics. Further, it is useful to detect when writing a metric that the event specified is supported within the event json for a model. These patches introduce infrastructure and fixes for the addition of metrics written in python for Arm64, AMD Zen and Intel CPUs. Later patches will introduce the metrics split apart by the vendor. v3. Some code tidying, make the input directory a command line argument, but no other functional or output changes. v2. Fixes two type issues in the python code but no functional or output changes. Ian Rogers (12): perf jevents: Allow multiple metricgroups.json files perf jevents: Update metric constraint support perf jevents: Add descriptions to metricgroup abstraction perf jevents: Allow metric groups not to be named perf jevents: Support parsing negative exponents perf jevents: Term list fix in event parsing perf jevents: Add threshold expressions to Metric perf jevents: Move json encoding to its own functions perf jevents: Drop duplicate pending metrics perf jevents: Skip optional metrics in metric group list perf jevents: Build support for generating metrics from python perf jevents: Add load event json to verify and allow fallbacks tools/perf/.gitignore | 2 + tools/perf/Makefile.perf | 17 ++- tools/perf/pmu-events/Build | 60 ++++++++- tools/perf/pmu-events/amd_metrics.py | 42 +++++++ tools/perf/pmu-events/arm64_metrics.py | 43 +++++++ tools/perf/pmu-events/intel_metrics.py | 42 +++++++ tools/perf/pmu-events/jevents.py | 6 +- tools/perf/pmu-events/metric.py | 162 +++++++++++++++++++++---- tools/perf/pmu-events/metric_test.py | 4 + 9 files changed, 342 insertions(+), 36 deletions(-) create mode 100755 tools/perf/pmu-events/amd_metrics.py create mode 100755 tools/perf/pmu-events/arm64_metrics.py create mode 100755 tools/perf/pmu-events/intel_metrics.py -- 2.44.0.278.ge034bb2e1d-goog