From patchwork Wed Feb 28 17:56:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 207939 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3510173dyb; Wed, 28 Feb 2024 09:57:09 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXQUpXIQMhwMhVzse/dDSwUhOfjzAcuGRzq9sNjI6uBrX9hGrZbb4x7vGeiUdx6y8/0pi0nZD5eh6KCelp4RCfjH+8TGg== X-Google-Smtp-Source: AGHT+IGq0FqeGoS9X3qbrx72hdyXgOPWjJCf2npN9G0uHniEK5zZQPXGdC5LAfVvMkvMdO1LdSfR X-Received: by 2002:a17:902:e849:b0:1db:f41a:3d9b with SMTP id t9-20020a170902e84900b001dbf41a3d9bmr240779plg.22.1709143029767; Wed, 28 Feb 2024 09:57:09 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709143029; cv=pass; d=google.com; s=arc-20160816; b=zQ/R2r2Q6Wg3yR2rf71n+l4a7Dw3eF0UyoMFuwpK59X2qK5+9Vd3ORQJDyTn2yoy+1 sWeHcVAxWVxoATL7QscHwqTdaASfaJdOxVaDmf8+bFQRNYrME75FL6D3ewwwW3287ngr lJ0oVljrmsp35T6hY8TZSP+Uc061+Ubg/z6Wi10HHi2TT9e+8pMOBhDi1eU0VNoaPyEb g6oNP1LROBBFCHeoNAFk+wPViKlDYy1ca6zU5mbzmFk2fzIkOpbnLISUQRaFPk6qFSZI 9s0Q3YNFhmnY0RYWPRDc1c+wO4ky2MmB96jsoO91mexArrTboeo3LISl3e32YTr1/Hiy 2HHg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=FZPkGRhHwcNWwVteqhq4++b4hJ8f8BvedCtUPDM725Y=; fh=i/WDH8SEu+Xw9l9YAG4EeY8fWMe52DQh/Z+elB8qfJE=; b=NmXtT64y+M07/j+qicb3dLEWsyosHtnzDBnU1/4f9HmDeZa3pPGb0KeJXb/gvT/ZsN 47Ld3nHa+cAAMu1/wn+BRwrjDynO8SFqIFa+D0ylFsymF62kHOX5bZhqdCP3BGEkkrrl LkgywxcwTW3z2JB4MI8jMbXJ7e7NSuLuLNrveqIpiTKaddwjvVJCU5dCV0SBOXbO7lyk zF/4BAKMjirCXhFX/DATCIB3swB0LBHKbhZMocTUnnp/8LN1Rk+pMfQuKXioRdxQEiiT sQk5XdUlcnEB95wH9BMrKaB+l1Y4k7szErQ/7qD9wv1V6SfLGlvRuIlWOa9w07XSYo2i t/Sg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=D1q5uGIm; 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-85476-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85476-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id e15-20020a17090301cf00b001dbcfa705e1si3846745plh.162.2024.02.28.09.57.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 09:57:09 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-85476-ouuuleilei=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=D1q5uGIm; 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-85476-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85476-ouuuleilei=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 761F32842BF for ; Wed, 28 Feb 2024 17:57:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2804C15DBCA; Wed, 28 Feb 2024 17:56:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="D1q5uGIm" Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.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 DE20615E5C3 for ; Wed, 28 Feb 2024 17:56:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143001; cv=none; b=YF/RFlGvXe+dEY2062B93DcRPlBjb2FnroqVQZVucy8+b0gHzek50AxT1fGzb5khSY25XEAwyqE5xfp1FRBOE/YRuxUj9m7TxucvRpzpAZhYIZPRjOv8Qyc89CF5veJ2wVMzC2XfRvSokPGSUn5oXZb6hFVGx72adWfquShw6Sw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143001; c=relaxed/simple; bh=Q8r8JCAtkGCJmmXhKhiAJOofwbQwry+nv4WJ1Szla+w=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=VFdNG8FkWhqB0JgUOoLvLhSC2t0kKwesAeABIPop4izsqy295GEwWdYNwMa1MuK/j+RBcf2SafWxwq92FezsyRmyXmE4F8UX7ySpQ4Drb4F1lEnkOyjF2TeQE5WwfXcE1Ed9P4XwUacRVhso7WOmCjXOyPlKV6ZFJRG7axDJ03Y= 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=D1q5uGIm; arc=none smtp.client-ip=209.85.128.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-yw1-f202.google.com with SMTP id 00721157ae682-5efe82b835fso709567b3.0 for ; Wed, 28 Feb 2024 09:56:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709142999; x=1709747799; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=FZPkGRhHwcNWwVteqhq4++b4hJ8f8BvedCtUPDM725Y=; b=D1q5uGImvlURfYVCMJ91MQQyZgqIKASj5hf65+Sjzq4BYVtSRyLjQ0QwLLdPtuM8LV DUEddmawkVE1k6yFXZYO+kL7T2BCcVRifJi1+/0MISEpDyuEUwIokmHQUze6y6738PEH gv7Evf7gYQ2ztjFUFyOlykq+oZgAHVGubB7+7Ekw844fM38hzgkAHZ9KGpq0/9ZAv5EU WM1Vn2UM6bVAXMDbFuBWcv5bnuZPtR4MZGDL/vncjzx9TYwAKMwZrMx14yMmoA03PZxY lNZRlvSJbuqnFVQhe8LsXbwfcdv+qewG7kn74NWn9G0VGBNYi8r+mfwhLyGvpdFEZyhy hs7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709142999; x=1709747799; 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=FZPkGRhHwcNWwVteqhq4++b4hJ8f8BvedCtUPDM725Y=; b=U0NnN0/Hc8nUn4qjm/2k1SI5t0UjQoFM7KQHNjChRZJYaSGMPlInGlAvbX5iB+QoBV FKtL01lCwMpRtOC/1AYUyED2fkIyt1WVjjcAqdW+jR3M7pgesJXZs7ABifr2tmj1C032 +qOB4eA9RTf8KxEOIbFFCGGish+2TUpvIRFMj7pVZrgR7rOXtlM5wBy7o8pzsb0qG4gj QW74RJyAMPnY/lL05iEqSAyudy76CB1KuyHh1Wwev/FxYGn9y9qmwlh/FkOfSI76T/UC 9WJ+/l9bTjQpNHIf5i42fybsIenni+uuLUL+HBJZSUzcwZFr+4wCI+0J0SG54f/ZRiG8 I3Ag== X-Forwarded-Encrypted: i=1; AJvYcCXCw07IX9fNsuxi1qlNOBDfJAmMLuBhRm7BALl+qXXrQz0I9oOvJ00CE/FKnkK8ZgFnqeoVGg128o2xW9N0qCfP6yfpz9fEMzwFDNmB X-Gm-Message-State: AOJu0YyL9cMPAkisij6VqjfUGUuiG7BJ8ot6KeQDwJwg5zMulvdPPNm1 4JoV+bwSA47ix/V6b7+z/f7k1QCTcfc77jmyaj1GfbRS5eZ57p9YXlpBnncmT8SEaPZlwn2bnUS NW7DT/g== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a25:2e43:0:b0:dc7:6efe:1aab with SMTP id b3-20020a252e43000000b00dc76efe1aabmr2866ybn.6.1709142998836; Wed, 28 Feb 2024 09:56:38 -0800 (PST) Date: Wed, 28 Feb 2024 09:56:06 -0800 In-Reply-To: <20240228175617.4049201-1-irogers@google.com> Message-Id: <20240228175617.4049201-2-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240228175617.4049201-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 01/12] perf jevents: Allow multiple metricgroups.json files 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792166361544727624 X-GMAIL-MSGID: 1792166361544727624 Allow multiple metricgroups.json files by handling any file ending with metricgroups.json as a metricgroups file. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/jevents.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/pmu-events/jevents.py b/tools/perf/pmu-events/jevents.py index 2c7e5d61ce92..65ab03ce5064 100755 --- a/tools/perf/pmu-events/jevents.py +++ b/tools/perf/pmu-events/jevents.py @@ -603,7 +603,7 @@ def preprocess_one_file(parents: Sequence[str], item: os.DirEntry) -> None: if not item.is_file() or not item.name.endswith('.json'): return - if item.name == 'metricgroups.json': + if item.name.endswith('metricgroups.json'): metricgroup_descriptions = json.load(open(item.path)) for mgroup in metricgroup_descriptions: assert len(mgroup) > 1, parents @@ -653,7 +653,7 @@ def process_one_file(parents: Sequence[str], item: os.DirEntry) -> None: # Ignore other directories. If the file name does not have a .json # extension, ignore it. It could be a readme.txt for instance. - if not item.is_file() or not item.name.endswith('.json') or item.name == 'metricgroups.json': + if not item.is_file() or not item.name.endswith('.json') or item.name.endswith('metricgroups.json'): return add_events_table_entries(item, get_topic(item.name)) From patchwork Wed Feb 28 17:56:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 207940 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3510265dyb; Wed, 28 Feb 2024 09:57:24 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCVp2TDweW5NPJys9lna6OT1ebJxkrBAVCU00LJ5Zr8rgiV420XmyNtxsalXOuH3V/HX3J+e6l6IbHPmg7baQfuR4C8NgQ== X-Google-Smtp-Source: AGHT+IF1tCYT7RligeYUxoX8ANVi4zOyidB2Z54u+SmIgZ7C0oiB1kZAWeCuFhtNXn4SB7tx9zsl X-Received: by 2002:a17:902:ee45:b0:1dc:4a90:b87d with SMTP id 5-20020a170902ee4500b001dc4a90b87dmr161129plo.66.1709143043901; Wed, 28 Feb 2024 09:57:23 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709143043; cv=pass; d=google.com; s=arc-20160816; b=OaGeWfjDPvrvu0sBO5EI7CwdTYH7ijla5iEzBHbDAaOzFBezPyugKTiCyqrZq0YbBN rEThN3o9dB9AphjXUVnN2Q/1EsJ6VYXufLieRhy0r8xQVZgNoCL33HbA3VK1dbhxfcqI P1W4oucZWYim+lt+5JUbu/hw2hFodcQ0rtdjWMCuSMPq4CDdyYl4nemU2XP7l+PHstbT bwb38tp94hIMlX0UouzXEzlToYHS5ot5okd6mXqlNlzn4e+5aUpiuf1vOKa2CNxb5Xt8 HoHdJ2lD555g7u4Lhe21zL+hWF4cYECirxtFvtlRkCk9h75iqBc7hozMbQ5W7AF3Gwoe 6oiw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=KxFo9HXrMBHPfRGQr1WhtYDEqITe1Fw0obEsjgP5vwk=; fh=rMDnLf+d5WE0kI3O4sWwDNG1w7odMsznhjeytavN6eU=; b=LSAZGor18cJDzyN3jw0YEGmEXwz+rTQgzmesykxf67ZEeY7CddQrorQ+81f7xYdb2i MTPLBXUMvYm7111cE40BhTpNNMmjatLViNXlgA3Ns7lvVRg0099eJle25KzDup/HHUCV EjsuZdSQJLrMTHULgTvqCaWCNHmJ7B4GGAkBpOkAieVM6oQR5hi83HB3BCFriVJl2QvX dxEW6GUiqY6VvnKL1qdauSdvOTodoLqvpRGr5j8Ve6Ke/6+gsfMQqvuuCfGQQEcvrjnU kZewaVmf4wUqu2jU34RsL2hyBV51Uyu65LLLyGaf3eMbkWaSuA2zNoikEvhcZRAjzvYh K7bA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=EEQMlXMe; 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-85477-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85477-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id e15-20020a17090301cf00b001dbcfa705e1si3846745plh.162.2024.02.28.09.57.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 09:57:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-85477-ouuuleilei=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=EEQMlXMe; 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-85477-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85477-ouuuleilei=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 B3E40284B1A for ; Wed, 28 Feb 2024 17:57:23 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 908B8161B73; Wed, 28 Feb 2024 17:56:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="EEQMlXMe" Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (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 3F8B815F306 for ; Wed, 28 Feb 2024 17:56:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143003; cv=none; b=DyOwwtFnjYMPjZWYXuEy5Hu7Umv07n/pqBJCUBQS3EdsSi2Vb8Xt/f/P2gsWTxWlNRLoNOmTjMrAZ9Exq5dnrNlV0V7A2jNvxqJi3I12oY3AET4GrRSpLcjeGj2M9osvYRmABe6/PfvzQxGEr7lOZxMrJPgblBVt6TmpeonPnHM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143003; c=relaxed/simple; bh=hLfRLYYEBDGHVllbq1W2MRKFt2uEVseZ3ckqP7HQcJs=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=VDWSiCrc0f1+skUb1EOONgIY+6Wgdbpz1vtB/8ykXxIjrBjoFlYunRqKpxsfP/zqsmZn5cURE0kmBNNA/BLlLq5eyzNoI3V7EwCVT5QC1gz0WfUeRipfxerfgaTmgBIZ0TDK1j2LRrciBQcDIXptO+CrtsqsJLJ3mONogYzvQkw= 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=EEQMlXMe; arc=none smtp.client-ip=209.85.128.201 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-yw1-f201.google.com with SMTP id 00721157ae682-60948e99cd4so320757b3.1 for ; Wed, 28 Feb 2024 09:56:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709143001; x=1709747801; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=KxFo9HXrMBHPfRGQr1WhtYDEqITe1Fw0obEsjgP5vwk=; b=EEQMlXMehu2kkINHdKC4Nd90tvMYxa42cvHMTpxCitmdYviHQUgpN+hq4ZFrc6hL5p qQ8RN9xKRkNh1YwK0hg+cSJhqznjAdT/m2SFIEkF050SETIOeHcqkzjZsdDNdQ52BB+x 120WcQK22Nmbi1m31nlqNCcj1rGAY6DWb/s1pUtVUnX0s/SLIrRZhfeI2/OIXzKZcNGD RlS28cgdukAFdY6OSS6+cS4ahgtI2kP2kwiGH5XquVCN1iGxyU3GVNgmsLBto6KYNvxf zZxJAgd35Xm92L8Qsty0WO8KJHtJbF+8o5W6fPY8uIb85jJYOxZw90/S9bPf+Dyzcluh j3QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709143001; x=1709747801; 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=KxFo9HXrMBHPfRGQr1WhtYDEqITe1Fw0obEsjgP5vwk=; b=BodullDRj8Z1uoLtcpbP9K0XtCQS3E3B1OpMwkYwLsPeaQOo/H3wkZCC9gbX0Pspdj RnQfuItbCE6Af6kTMkPjUU3qMBFObasyomxj4Uh102JuCe7WIHWmkKvesH/5FCmaIl/W QPkGu7CeVdD7NPa6A7GUzW4DOeoxTzvGi9vK3E5a1WcMJNf4S91a9ZMKucYVD1XiVIjC 9EADDNsMnw3so/J5oX3dJxsFIE6tqTTdhhTZ6SZpqgkj5E7Yyq+3KHyUe5QLwRt9uF/m xOi0j3M5ZH1CbeO/2+kbpscrL07RDT/PgWYE1rS1pMiQuxA3a5OFTChNOYz0OVMwK0i3 maAA== X-Forwarded-Encrypted: i=1; AJvYcCW/c7JI0niju7XhgDQ5pXMUM5YJuqAkm5CtZP4nwyECXVz3C8l3dvC3gvTblO1TOtsfMBcr95yPR5l9uUQUwAFsFlWCmxwCjqSDWliy X-Gm-Message-State: AOJu0YwqemKSN6+edO30RgduOUkRokrkXdLRXRaG1RzjkKfOnae5KrxZ A0e0Qt6zR4KYzR3xsNJNLizfphTYd6M9gaHcnGG6Yu/tuAbSyWIbE4dFWlcirGyA7YH+z3UK7Sq NFGtoTA== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:6902:120a:b0:dc2:2ace:860 with SMTP id s10-20020a056902120a00b00dc22ace0860mr115ybu.2.1709143001286; Wed, 28 Feb 2024 09:56:41 -0800 (PST) Date: Wed, 28 Feb 2024 09:56:07 -0800 In-Reply-To: <20240228175617.4049201-1-irogers@google.com> Message-Id: <20240228175617.4049201-3-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240228175617.4049201-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 02/12] perf jevents: Update metric constraint support 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792166376431820827 X-GMAIL-MSGID: 1792166376431820827 Previous metric constraints were binary, either none or don't group when the NMI watchdog is present. Update to match the definitions in 'enum metric_event_groups' in pmu-events.h. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/metric.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tools/perf/pmu-events/metric.py b/tools/perf/pmu-events/metric.py index 92acd89ed97a..8a718dd4b1fe 100644 --- a/tools/perf/pmu-events/metric.py +++ b/tools/perf/pmu-events/metric.py @@ -4,8 +4,14 @@ import ast import decimal import json import re +from enum import Enum from typing import Dict, List, Optional, Set, Tuple, Union +class MetricConstraint(Enum): + GROUPED_EVENTS = 0 + NO_GROUP_EVENTS = 1 + NO_GROUP_EVENTS_NMI = 2 + NO_GROUP_EVENTS_SMT = 3 class Expression: """Abstract base class of elements in a metric expression.""" @@ -423,14 +429,14 @@ class Metric: groups: Set[str] expr: Expression scale_unit: str - constraint: bool + constraint: MetricConstraint def __init__(self, name: str, description: str, expr: Expression, scale_unit: str, - constraint: bool = False): + constraint: MetricConstraint = MetricConstraint.GROUPED_EVENTS): self.name = name self.description = description self.expr = expr.Simplify() @@ -464,8 +470,8 @@ class Metric: 'MetricExpr': self.expr.ToPerfJson(), 'ScaleUnit': self.scale_unit } - if self.constraint: - result['MetricConstraint'] = 'NO_NMI_WATCHDOG' + if self.constraint != MetricConstraint.GROUPED_EVENTS: + result['MetricConstraint'] = self.constraint.name return result From patchwork Wed Feb 28 17:56:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 207941 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3510386dyb; Wed, 28 Feb 2024 09:57:40 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWj5uf5UDGnOPxbEh/1mN8u5v/R4NVs2n63uEGwObp+v4vH2DRfE99Z3IN4rSgBhsRxeMXMWeNS1r30gHbay0z04GujEw== X-Google-Smtp-Source: AGHT+IERW4VVPTZT7yyE5upZARvqhh6MxqJeax8bcHvl+Dju43QfniTMTNQ0T3VubPSCRFxXRHC4 X-Received: by 2002:a17:906:b899:b0:a43:8371:2efe with SMTP id hb25-20020a170906b89900b00a4383712efemr319440ejb.32.1709143060314; Wed, 28 Feb 2024 09:57:40 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709143060; cv=pass; d=google.com; s=arc-20160816; b=BMRcOIOPpllvD2+jPxUir+Ka2YUgLKYb8y0mbRXr4zzbOD6KtX0tt/KVjDHYFlnJcd SECMVJ3E05VcqfwH0j5iaWC59ypmGySSXvjxylDJwueRkSXAxDcWVB9NB/wINC6LkbuR v24oYxaZrgRqshBt6BT4nQRJxiS9J5O/T5KmwHM5j8aot1QJpkAiOzeVi5TzBjKHekqz aiivrNskBhdCOrhbXMXrkDdkook272/D6ht/nErKBS4QdOKHwy1omw4YE1hHJcLVbs32 fZcW6cMGMLUhN7+B/11+X+Usmk7bJKb3uwTB1KIrKZedCRp3Nej2KC8E6xIeNuc2WOBO qGcw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=cnw+7frKkpFIuv39tcYmSQZnvJ8fkaJfcm6LBjLqiJc=; fh=laYEDCqVoQaj22TqEGBY1Zo98z4a7iCli6L5HFyM104=; b=dGG6rlX9/U9bUfGTpcxXhd/5lV5x3duBvrUNzR2aieul65YkRcyp+A+IgPqXU9l5pT 3TGOrCsSH2n7jwYJAytik3KEWHJGETo9mVvlFO4vqgLkfI1gIQ2oh1QsAb4ew7fzmENI PGQdxz9+V6aeuu6XbIeihkE0LnJTZSe0ZRPugKmph3GGBlfNWY3CGCytALEy26pefY0G 39XCEtwkcCWoz7XTpP3K1wOBDI5Op8ibizyEyf0qxf76U7Jmw6S9+hxPdnc5/7mifZhT X5naqfGDLbR/1G53nw+O97o0AhJTserjvf/Vh3a5MaEMrm0iuGTb4sB2+OMvR+KD/tk1 GAsw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=xtJY0am5; 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-85478-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85478-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id v27-20020a170906181b00b00a434e94b43bsi1886618eje.825.2024.02.28.09.57.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 09:57:40 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-85478-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=xtJY0am5; 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-85478-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85478-ouuuleilei=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 EAA931F236F4 for ; Wed, 28 Feb 2024 17:57:39 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E0C901649D1; Wed, 28 Feb 2024 17:56:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="xtJY0am5" 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 70ED716086C for ; Wed, 28 Feb 2024 17:56:44 +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=1709143005; cv=none; b=g7NaJVeTZAQM9EN22ikEWGJkbRVCjnSDepLEfOmJSK07+N6Wlu+WwVwn0tjiyOYpmpCjV8zj3fNvCDNTiu99HNljwA9d8QZbmZDiPkaQqWr8tXaWYtvheuK3sBOuo4ld5GxuWMu1Hr4YEF3FTQTr8EL7oF5Rig3gxT/8CzVrv2Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143005; c=relaxed/simple; bh=GN4Y68feIoyK84NORTnkVtG7K1dAvlvEPxB9mo8klN0=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=eDsStaWlRJRm+GGDKGJzgat4i90xkLVfIFyOhfGBQoKojLBwTsW6r/eHwk2fGcAgefBfyd/+F+e1QH8dXxoexc79y4bnze6mz8J0k8Ti2lbhp82QQzxF3tYrq5PsPOFFVPhTPTe+RO0ArB/2ghYEQFdDFhm1GzDb8rymzWKg9/U= 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=xtJY0am5; 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-dcbfe1a42a4so83467276.2 for ; Wed, 28 Feb 2024 09:56:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709143003; x=1709747803; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=cnw+7frKkpFIuv39tcYmSQZnvJ8fkaJfcm6LBjLqiJc=; b=xtJY0am5bmBpdnyEI0PbfJXCt8vf5YwbIwTlCjN8KrC7blauI8P4yuzNOnfj26AWFw cl82RgHLUUAfnP/B88Pcbfh4MaidKvhYHImYyH7HIzBmfpgBGNIfzxoTzTGdMig/7DfJ 4qe65cNanrFGAJQTzPEolYEuRKwRwPoGyNp1GcZDMqrhaarP/1xdzh1kigzCef5Fq9wW bqg743asA7hIAZLC50z2asXsQnbqUGH14VJo7FCuHY/TRa/kbE9pEFNLT2rgSlEe5Y+Y o2lV+qFy/9iGKaH4dOsHbP+pb3zxAHVX/lov5KWffYeRC7653EYx6W5/HZTrc2m93Qo9 CMJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709143003; x=1709747803; 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=cnw+7frKkpFIuv39tcYmSQZnvJ8fkaJfcm6LBjLqiJc=; b=KtDyOgJ948VSECQKm44I2bz+xiTdwK+fJ4tRcPGN7vJ5UhfuK2jTF0/aI3dr+V02Kl xS+ljwftBgfQK7p0noGdoNE3OwqKhzZWr0jzJBw9WoK96qwVjPgdwvIwVW6UJO+oSygo 86wVSlsPhpTXe1LzSdManDRqTzhtYa5HMAjTMDQy9iqBJa2hT8nf0DIYVObYWiYTeOaP 92TCOk+69mk1sX5q4CnxBxqBAWbaoSMIMXghb3TUgGYxdq0muBynyos8tU/3xNjo8Ond ObBoQDbYX9GvZQvvB+OXqXW/NuVi6ko1Nm8YsKGwIYut+tAh3erbeFQJJXOaXX3/g1mY jsOw== X-Forwarded-Encrypted: i=1; AJvYcCXbgjXaYxqpFMbZXIAR5xePOYsmYAs5asr+6Y7NG9srWKUy0bHq9FGrlI/NkDu1PIuMrSBkD87HFTfTMtvfn9qTh93+y1DDvtLyRS63 X-Gm-Message-State: AOJu0Yzj+mXZ1Awn2ynOK5C+YejAy6WMIikoSAEj8KdRTe6w7V2Uigwz 5TaqblccaDWhG2bZViELqS9c3RpY0wVj6WxbjYKUzMZeFvzZcQF6NOPBgwgbDlSDqcoeAhl4wX9 hQFy6uw== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:6902:1204:b0:dc6:e1ed:bd1a with SMTP id s4-20020a056902120400b00dc6e1edbd1amr3766ybu.2.1709143003509; Wed, 28 Feb 2024 09:56:43 -0800 (PST) Date: Wed, 28 Feb 2024 09:56:08 -0800 In-Reply-To: <20240228175617.4049201-1-irogers@google.com> Message-Id: <20240228175617.4049201-4-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240228175617.4049201-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 03/12] perf jevents: Add descriptions to metricgroup abstraction 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792166393385140774 X-GMAIL-MSGID: 1792166393385140774 Add a function to recursively generate metric group descriptions. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/metric.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tools/perf/pmu-events/metric.py b/tools/perf/pmu-events/metric.py index 8a718dd4b1fe..1de4fb72c75e 100644 --- a/tools/perf/pmu-events/metric.py +++ b/tools/perf/pmu-events/metric.py @@ -475,6 +475,8 @@ class Metric: return result + def ToMetricGroupDescriptions(self, root: bool = True) -> Dict[str, str]: + return {} class _MetricJsonEncoder(json.JSONEncoder): """Special handling for Metric objects.""" @@ -493,10 +495,12 @@ class MetricGroup: which can facilitate arrangements similar to trees. """ - def __init__(self, name: str, metric_list: List[Union[Metric, - 'MetricGroup']]): + def __init__(self, name: str, + metric_list: List[Union[Metric, 'MetricGroup']], + description: Optional[str] = None): self.name = name self.metric_list = metric_list + self.description = description for metric in metric_list: metric.AddToMetricGroup(self) @@ -516,6 +520,12 @@ class MetricGroup: def ToPerfJson(self) -> str: return json.dumps(sorted(self.Flatten()), indent=2, cls=_MetricJsonEncoder) + def ToMetricGroupDescriptions(self, root: bool = True) -> Dict[str, str]: + result = {self.name: self.description} if self.description else {} + for x in self.metric_list: + result.update(x.ToMetricGroupDescriptions(False)) + return result + def __str__(self) -> str: return self.ToPerfJson() From patchwork Wed Feb 28 17:56:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 207942 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3510460dyb; Wed, 28 Feb 2024 09:57:50 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWQr04nfPmGCkLJ9CgjB/kpPvzjqxzLOtDCzeRX/ric6n5iATZoR9KZw6Ybfb2jCMhieJZLckL+/XuoexeFdVIew3NaJw== X-Google-Smtp-Source: AGHT+IFncTgtD8vpHTz0M5QaHKlZxB6H5WXDFflkVkz+dCj3D6IBcd3kbqCxhv0FEzQkqbBqIapz X-Received: by 2002:a17:906:4ed7:b0:a43:fb63:a072 with SMTP id i23-20020a1709064ed700b00a43fb63a072mr82051ejv.9.1709143070432; Wed, 28 Feb 2024 09:57:50 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709143070; cv=pass; d=google.com; s=arc-20160816; b=msPOcgpPv8cBvo1t+PT693hjThuZXSKl5lygXuuHO/VZfdtEbr0rnDxPK2vAgCN8l4 8Q6ouxWuy7O8kjWDXM4uUSJeTI4Toj21Ciiad5EJ5ocJwfsYjtk9vJ1fp4qGFHjsmIA1 8o1Ds4R64FWqDwmceqCN2pkt9BvtXKDv2xHM7EwxEjjt1ycuH4FiqJxJoFhr1vGIgXn9 2I/g2P4O8HS358Fe8v18IH/GmEB61vocYXy/08q8/pbU2k8W3u/fiR4BkfqBszlupLRl 1zITbTkAfyD3B1OdA9KsTSFRL84dsbCojBsffUCcPJEruWzjhy/7Xu6jR/gcy56MxJs5 WaQw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=0l9FS4zSa3KVc8IImImj1SVx9SNoPylTIMS2zSJSapM=; fh=N8RBTgsotTVydp8jE0D/yVui4Z9aVs+9/BJBOrb7o94=; b=RSwk546Scx8frGEScgyIz1HKjXjT44S4Yh0EZHSnjs5u9yEgiTas7zi91QRLg/nFHj tYUTs22SAPDUqdGuxUVskzpmHlhPJWEWJlyT7J0LYtWoSiTS8Yyrk3UaS6KSqnQwgAor rhEqo+JUArFhMafbN2Ex7oVHJCTx91cVWOVSE61VpMpnowDbftza78b6QVS9XVo0wI4C UBv92U3Mb3mc4e31F5P6FNd8Lx1jX3wgMsvz3dgu3sgs8JXP2sy16IwtfMAiAq2MHXYP 9i+rzgopjejtIDIuWcnLu5bI7eKYjZrM3jO4Kq/T8Uz5/7wZ8U9tH02dIwMDfjtny6LR 0aiA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=kcIKqnPO; 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-85479-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85479-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id ji16-20020a170907981000b00a4425f8658bsi162331ejc.735.2024.02.28.09.57.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 09:57:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-85479-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=kcIKqnPO; 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-85479-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85479-ouuuleilei=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 13B1C1F2429E for ; Wed, 28 Feb 2024 17:57:50 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8275240846; Wed, 28 Feb 2024 17:56:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="kcIKqnPO" Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.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 5385F161B5E for ; Wed, 28 Feb 2024 17:56:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143007; cv=none; b=j+KOaNE1zK1HgYAZXrpmNUSMj9fN0VhxY4LZOnrxPurJ1FCfnJYmz2WSdtH9o6W1fTLsGguhljiaNL7hczSDvF8OQBageq9H+ohgj51YN5wVhwRpGlD4EhYzOxaKu6uefHXAP2b07UUHLCsmoeHt/X63At0LWXpxX0fOgcpllfE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143007; c=relaxed/simple; bh=0IeSdmWuvcjIVBTAhF6kJkhdSlGmwLTCZHLsTn46VzI=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=uO1n0GKTrtTamyL3pvsB2fSCXb6+QGUtvTKP/z0JagA+tANQCbeaefD68tMVQ4YMbc6Bk3Z3W6qi39RoWsrTx8yv1s2W+uba/L7s1Lqr7+wrQDTR2CUSzRwbkQngEi/ViIBL0tfOUXyDZKUY68jqiNvwrwe/E+2o272WIorlfxo= 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=kcIKqnPO; arc=none smtp.client-ip=209.85.128.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-yw1-f202.google.com with SMTP id 00721157ae682-608ad239f8fso461487b3.0 for ; Wed, 28 Feb 2024 09:56:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709143005; x=1709747805; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=0l9FS4zSa3KVc8IImImj1SVx9SNoPylTIMS2zSJSapM=; b=kcIKqnPOKw9EJqisLSIhEUzgsmkv672BDsQe3FsP7iPJkgPtUuKr3zSuzI22hMErze ol43m/rT+lVrP3Z38szF6HI1bwWgQ6qYlLqA+EH3Y8WGHwfXf3vbSZjsTDyBdynBJAO1 LkUJTQkGM2IcYc3vBusGr+lRhe2RlPWjz0NEhdehywATWRf4cMIJ01sG2y0c3OyDF+cP skf7RvD7RYv8tTNRSVqmUYzJIS8ww54wBKCtXCI5hLXODdYeY65qZjH9AT6It8g0flhJ dl2gXlssCjT269TaGmPB06M+3oV8b0ypyYhw3kgOLZ94Ezf9WozFsrFMIBoU/ZFuAdcj /kew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709143005; x=1709747805; 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=0l9FS4zSa3KVc8IImImj1SVx9SNoPylTIMS2zSJSapM=; b=vpC8ezQUg9t7sRloF9dCGghG0+6OsNbJUJWtdkPPwE1qs0OZm0eNPzVT/aH7JEIeRk up1r+7kg5TcoVwrEbRUGcALQt5UjhJ6Uu+nsa4lmukVc2zgtxx3JaxO3ZBDCsSwT0b0u IWLAlDN2mRzYU+dZ3F2pP3IfE9oIDy/3RfvDkGVd4cZYqTRJYVD/noZqmMC6sOF8P3X4 bPyEmSwVLu6U1IG+Ky2oXzyh/p4mbhRkqRyu0KnutA+9hwGMTOO8f3yRt7XAA+clnoiN FGKE3FEWGTpXZ7IZoxS9bIbWXUSrg1T6mtpuZCNuDBfRDMRCOZPrfQ0IMhuYgOFs3ABT z0nQ== X-Forwarded-Encrypted: i=1; AJvYcCVtLpk3hFDeLJLKv9KOs7w4aoJJzgr30+myyYaukRME1p+CUrfgY+NckRCwFN9jaeowM64bWEOhaZ/nXm7n2u+ThjexKVn1R7suMUof X-Gm-Message-State: AOJu0YycmeI9OOoXBrH3wnoHM1CKUmiinZAT4YxDiNQoG/bKqBKddsKM o/9cOvkdWaRH3E/25Oc6EoeI3yMtEV4fAFWYVPxGWrdvIFCedt5Jz1EHPi0nTk+V01XKKNS+Wr4 SaZ/xdA== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a0d:cb10:0:b0:609:3c14:b700 with SMTP id n16-20020a0dcb10000000b006093c14b700mr601418ywd.5.1709143005547; Wed, 28 Feb 2024 09:56:45 -0800 (PST) Date: Wed, 28 Feb 2024 09:56:09 -0800 In-Reply-To: <20240228175617.4049201-1-irogers@google.com> Message-Id: <20240228175617.4049201-5-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240228175617.4049201-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 04/12] perf jevents: Allow metric groups not to be named 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792166404453353236 X-GMAIL-MSGID: 1792166404453353236 It can be convenient to have unnamed metric groups for the sake of organizing other metrics and metric groups. An unspecified name shouldn't contribute to the MetricGroup json value, so don't record it. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/metric.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/perf/pmu-events/metric.py b/tools/perf/pmu-events/metric.py index 1de4fb72c75e..847b614d40d5 100644 --- a/tools/perf/pmu-events/metric.py +++ b/tools/perf/pmu-events/metric.py @@ -455,7 +455,8 @@ class Metric: def AddToMetricGroup(self, group): """Callback used when being added to a MetricGroup.""" - self.groups.add(group.name) + if group.name: + self.groups.add(group.name) def Flatten(self) -> Set['Metric']: """Return a leaf metric.""" From patchwork Wed Feb 28 17:56:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 207943 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3510565dyb; Wed, 28 Feb 2024 09:58:03 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXkBb401wAcsNFJtcvbSZX3U2IwRnyK6m45v3/2l6cJ6hPx/l7hSqOy/EVLETVzukP3zUkENugU9HyUamQFAmHVq7c4vQ== X-Google-Smtp-Source: AGHT+IG2GtNF7wcJPeWTdOIVzUtT8GnnkE8OOLQvsmR8B9GCfVhSJ63geH0C52wEzdokpKYrUTlT X-Received: by 2002:a17:906:4e8a:b0:a43:af8c:ef35 with SMTP id v10-20020a1709064e8a00b00a43af8cef35mr356044eju.75.1709143083731; Wed, 28 Feb 2024 09:58:03 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709143083; cv=pass; d=google.com; s=arc-20160816; b=A7Eswij8ExV4KnwP+kgSvv9HQaV0IpOuTW4aidgX063tsWa/II57L7YNVDrvzyvCHO 1sOF5xMoGVFQT6rS74nbeSpZD4kGPWHbIaFzs61+yUeTH0cZ5sk5PRskdf1UW1sI0b2E Bd7we05dfbRi5/4geJxChppBj0m/zU99h5yen/GboNRDF0fvpcoEbtBT/CKOR1PIRPd8 6f6HsUShazjhKlLflyVjqsjGnad1zOw6A21IO2yqarc+qzkEy/yklVyd3wdSd6g5RAg0 2AntIeKWX/D3GicSCdknUAY2XGVXje5lQFcLpbaWHgDV0oeWJa49Yw4u1iXtjx2xDNXN ACtg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=bBWDWJvSshoSjEVW3Suakt0O9q+vGDdTpywx5NXn+PM=; fh=Lw0McdTWQUeymXp9IXvLQj0c2dKLcZyqgwcnhv5lBj4=; b=UXpYs1nhZgDq+V8Lzb7SdZLr2B8Pm1YqZtRubL2EKdOIvIToVrQ6i4e4OQfuMfb6vZ CwhyEmVKh0J/5ooF8o7NkobeUsypXeTwjSrwS9NxI+JFdFdrIiU/KXoFSNe3OBeeUeL8 yXt+s7jDbkLfJAVb6ii0oTdc/FHUKChY+MYD9HMdCnGQ0h0EqRncsECYIef0Pv7hE0l1 sBWMfg5/q57AdFUFFQIhSBp9r2YJtMhsblCtYm7q2mjOBwzcT/gR++55X6sPoeysZ6vN uDwJ4J74OkYussMYUXu1oL/iOcQ9ZGhx11NYDhab69sh1apvYw5XhonM6urEUuvru3Ci 7ONg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=3k6CA1bp; 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-85480-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85480-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id lt7-20020a170906fa8700b00a435146e567si1848935ejb.621.2024.02.28.09.58.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 09:58:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-85480-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=3k6CA1bp; 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-85480-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85480-ouuuleilei=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 5686D1F229B8 for ; Wed, 28 Feb 2024 17:58:03 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 23EE240868; Wed, 28 Feb 2024 17:56:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="3k6CA1bp" Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.201]) (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 C65581649CF for ; Wed, 28 Feb 2024 17:56:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143010; cv=none; b=Ag6qDPEzyqAIBml/7H2c7WvnZ5OuNY5NUCP2xwFtNTzRktcl9apijgLA2OI3Ad8KiVuVTUVRAkScac6atRffqJcJ34o/oh5JuMmHVOz2Nook48+PZX/mRRxLraAQWojSOnxsIAk+C2t2iz3F1bo334NiAB47dz/OcZH2mpOvXVs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143010; c=relaxed/simple; bh=j1Uteud1mWr9qwRDjsafkmahAN/I9mDRvh5Ckh8gIQo=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=GOz5lb7tpic774pLlG4r8egCcM6rkBTBpGIGs9C1iPt477mJXEpjmiN3I8sdOXkBe8+35GSGw5p0VrMQ9bphYV8PS9MAogrCZjfVEq9HVuzicOI329qpUwt4x3/Fd1l61E/x0qBRULAp199+HoU54E6UVAFPuE4EfsNop1tFWhM= 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=3k6CA1bp; arc=none smtp.client-ip=209.85.219.201 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-f201.google.com with SMTP id 3f1490d57ef6-dcd1779adbeso82098276.3 for ; Wed, 28 Feb 2024 09:56:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709143008; x=1709747808; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=bBWDWJvSshoSjEVW3Suakt0O9q+vGDdTpywx5NXn+PM=; b=3k6CA1bpfOmxIZqZ6XVv7CzRmNKcgV9+xxZd4QbyRuFL9qbfZA7fBUXbWRxg58O75y Y0zcONqYc1lMfvmjKr0M838/ae0DDkiJXZ0VpJcYnikcsxGsvXymJz4xk+3c5+BVYwHf Hy/Y+PufKcI6gpn8jER++lq/YzUFT+XPz1eeDIrCTr2oKPCd/tnDhVFXQRYkyJLlPI7s yAJcfjOwQY2qFKtNrzQS69UOHLLmxKAgT/jGjGBkGsRhXVmfTn2Y3wmw0CaB2QRqkU/C JmFJ0FK2BGk93+m5PZqQ6bI634ToCmTVZgr/HmSfFwqFSJitJeU3zcf7DqMTt/ZM1KM+ Tacg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709143008; x=1709747808; 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=bBWDWJvSshoSjEVW3Suakt0O9q+vGDdTpywx5NXn+PM=; b=Wo95nGnJDYvdi/guBoqEBKgLGcyzfgVUUjAQGvs2Za2yziSj0rqwSc//WBBPmWQTOa EnKMaODGkMUDDtc4FFpvknBkFL++WQVHZn5SsbVlpU86GPq9cgywta25W5fJnsWbma1z VAYG9R7HYHMyiXB6RBbYwGRBR7HAbCYfvGapXwgoxQKHYVYUPRGf8CKGdUrjFSdFqqfV PfC/iby8GluB7oCTRapOrnmxXz8jCSWsB8yKLQpl0li5AgEpFaQ7T02cX+bH1DY+SqcM 1qwSMfMtGgiZL0x1XqpfU2KnQu/wRZBbq3I0XdbsWyS9qtdWvMxb2Aq62QfC3nRRMMKa 8eqQ== X-Forwarded-Encrypted: i=1; AJvYcCUHmWlRuOJUg+2ZXNzkPnsy8JAzqUdN3voW1B3bL2X3EddMp6yMuCmq9J0BVFKOxxrNx7fVDp1cZzCX/pv7z7/77jzl7w6spbvABmY3 X-Gm-Message-State: AOJu0Yyw/VPcgwBVPh/38fq9oqe7Bv7jzc03CXxgJLWP9SZcFcw6lOp3 2rLOZQFn3mOfQ3+HDV+S3PTV+cD6YxlTSdic7CifnkUjcM4/p9ixmCuXwt/+B1zDpVfqJ/hJo0Z Jh6OhOQ== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:6902:1142:b0:dc7:9218:df47 with SMTP id p2-20020a056902114200b00dc79218df47mr2908ybu.5.1709143007864; Wed, 28 Feb 2024 09:56:47 -0800 (PST) Date: Wed, 28 Feb 2024 09:56:10 -0800 In-Reply-To: <20240228175617.4049201-1-irogers@google.com> Message-Id: <20240228175617.4049201-6-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240228175617.4049201-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 05/12] perf jevents: Support parsing negative exponents 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792166418302073477 X-GMAIL-MSGID: 1792166418302073477 Support negative exponents when parsing from a json metric string by making the numbers after the 'e' optional in the 'Event' insertion fix up. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/metric.py | 2 +- tools/perf/pmu-events/metric_test.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/perf/pmu-events/metric.py b/tools/perf/pmu-events/metric.py index 847b614d40d5..31eea2f45152 100644 --- a/tools/perf/pmu-events/metric.py +++ b/tools/perf/pmu-events/metric.py @@ -573,7 +573,7 @@ def ParsePerfJson(orig: str) -> Expression: # a double by the Bison parser py = re.sub(r'0Event\(r"[xX]([0-9a-fA-F]*)"\)', r'Event("0x\1")', py) # Convert accidentally converted scientific notation constants back - py = re.sub(r'([0-9]+)Event\(r"(e[0-9]+)"\)', r'\1\2', py) + py = re.sub(r'([0-9]+)Event\(r"(e[0-9]*)"\)', r'\1\2', py) # Convert all the known keywords back from events to just the keyword keywords = ['if', 'else', 'min', 'max', 'd_ratio', 'source_count', 'has_event', 'strcmp_cpuid_str'] for kw in keywords: diff --git a/tools/perf/pmu-events/metric_test.py b/tools/perf/pmu-events/metric_test.py index ee22ff43ddd7..8acfe4652b55 100755 --- a/tools/perf/pmu-events/metric_test.py +++ b/tools/perf/pmu-events/metric_test.py @@ -61,6 +61,10 @@ class TestMetricExpressions(unittest.TestCase): after = before self.assertEqual(ParsePerfJson(before).ToPerfJson(), after) + before = r'a + 3e-12 + b' + after = before + self.assertEqual(ParsePerfJson(before).ToPerfJson(), after) + def test_IfElseTests(self): # if-else needs rewriting to Select and back. before = r'Event1 if #smt_on else Event2' From patchwork Wed Feb 28 17:56:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 207944 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3510704dyb; Wed, 28 Feb 2024 09:58:19 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWSOwqhzH/G9Kce63pc5WDJkMvkoHyUi6nmDZxpMrvEKZif6cZN08C2WkjWDtS3UfnekiJrZVVjTcSKxREFonlTe84ipA== X-Google-Smtp-Source: AGHT+IEOAV6Qh/dk5U0aYuVo9PWCsuqExZLRihrYw03e41HI5itx2I1lPGCtPu7bBmdlOKC0Cgtk X-Received: by 2002:aa7:d412:0:b0:566:4567:a119 with SMTP id z18-20020aa7d412000000b005664567a119mr98650edq.27.1709143099522; Wed, 28 Feb 2024 09:58:19 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709143099; cv=pass; d=google.com; s=arc-20160816; b=fmreHScqoUnKAeEAslrMYtFtjv2VYxC+F399XMqu67QRThmw8c1WQR81xoZu6D5COM fBXiVxZ1R/IlJ8Svr62017OJNPwDA186aLaANQ7aFiK/SgcSV4nHUM4EopSRuJIZbgzB pI1yJO/vO/MwDyT+VYr48Tl1LLbUsZ4OgQItV9RBhaLZRJfBa5qGCVNEvo6t9RWB7r5J Y9LJ5uFmfCgqY2VaOs3jJsBf+lG8XVgwJQUmPIeMiQZZ+FQT2udSSpLW49bMEqLIjyBn GE7ATvI/+YaoAWlSCQ89ZY7ut7dFoV1bjS9BhdqAdBFUFHpKJLLbI1gj2x2V8u12zHnU w/VA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=F9W2L65moWfkRODZWtj1+8FpZZOCQB/UnzNIcvAZEKE=; fh=hXzj3lQ1rrc7CzIIeaPs5tARp1a59xE57Ho4mh2Ea8w=; b=fZn3BFkIf8AExwlJIeYjdtUTDUE+rHw0uNo3JOATbGNbkf63kJvcXynRFsOF+D61oT Fc47sFGwQkc4AmtzXF6qIvBx/pbbejJqNrkR0x0ahHRfymcs/q1YE/7DDoMnRxOHtcUP x4vCfDZEcnHGgR1Tz0gzZVSUpk3Eyfui+j8Of+JVaQ3kN+2m9fMWAKxex2dPDzLRaquU RuheWVwGY+bGo7uCNyUt0ivqV+L5wYnehRt8+hmKl4panE7Z/rmzeEIW+pyVXaxTsikY mzba3prTHBBnJ7ce/XHuzgRDKGlS05BffiZEcrBvt2skECPEe45IWmCdCaE9+a510l50 Fb1Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=Mo4dovHL; 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-85481-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85481-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id s18-20020a50ab12000000b0056640346ca9si1541098edc.307.2024.02.28.09.58.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 09:58:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-85481-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=Mo4dovHL; 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-85481-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85481-ouuuleilei=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 234FA1F23EA0 for ; Wed, 28 Feb 2024 17:58:19 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D7AFD15E5D6; Wed, 28 Feb 2024 17:56:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="Mo4dovHL" Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (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 747FA40853 for ; Wed, 28 Feb 2024 17:56:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143012; cv=none; b=sYc5xLSxWhfULVDz0NEQZzm77nh7W28nhwfwmnXF4NYrAuUzKw08NDZbKajcEJqa1IG+JutnC5WAvgd5J6RvtUT2nPtYdd4TeQe1l3kxhG9mXKbhghlzMqSHc1rXMwfWdyEexrEHDC4uEcmC79KPYilhzFrdZQ5D93leT7Q35vc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143012; c=relaxed/simple; bh=oswX3i20yiaJHjTAeWqAXOG6a2/1Ta4qOMh9xoJeXu4=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=l3S1gwTAYX9nYE0DI+n96pctmK4zvNyM4LLtDA5MQe27ZA/dyanSUddBAG/54+AVt9cLHOp3uIDvUZf/mOEjcxB0TlisGCAvgamRBhbK1Pq4OtpPXwZ1VB+GiS2xZ7HrA/YL74eXnne6V+o+RGnN1lxzQym2i0FRRchGRNdVxk0= 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=Mo4dovHL; arc=none smtp.client-ip=209.85.128.201 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-yw1-f201.google.com with SMTP id 00721157ae682-608e4171382so161807b3.3 for ; Wed, 28 Feb 2024 09:56:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709143010; x=1709747810; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=F9W2L65moWfkRODZWtj1+8FpZZOCQB/UnzNIcvAZEKE=; b=Mo4dovHLzLPnNjH5JMPjEhGZR2zlA3+5r75EZpz4t4Vz54EwPUE7nHqecGOVdZrHMy jsnPCkzD35HgpUs5OVi+8N9OJppcfWB/2TrzGyXyCeeIs+3Z5hE67jzTNNX53ikv0BeB y1Ldh8/jm3PEveljvHE2fTKHKwWAVZEmKXozYT2Gs2Ip/GVcE44TmQG+6gS9MhukWRjv 6QCCuzM1YG4sVW4IsUsROjcUjGbILb6KUTuJSQ+K4VfX0ldXRjc4e0m8PCcGgbd/aX1M bsBXQZbNt2UKkYsVoXdMMZjj5N5TSX41EnCEyfotKb+6kQ1ya7JHnrMJlo2yGpBX2XkZ pz0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709143010; x=1709747810; 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=F9W2L65moWfkRODZWtj1+8FpZZOCQB/UnzNIcvAZEKE=; b=w7et9UhvX1VVutKq4NzuAi0bsOzypnesoFbXViMyXI80AOAkCN9hbnRK85qR6rByva 8f7PZJCvdjojb+RuVxfHMpM6Gprv4uKDrK14yYjvZNUKlpm9fskDfvcmtZkhNxlt4j2u yBGM6YUNqjXuS/g4kHOdsDT5rr+snGmP9NtfKuL2VGzgj65SeKtBN3+ykjx4qZMzQd1+ bne3DPcTIDfmrkX/3kimwrthmrARp9v0KD/mBV7/War84TalMQ3IE+hg3NJdb58HYy+K 3S/Fb9A2Ttw/TvgngzmBJsSBXxd/5TzUrCPSY0KUq9cNxGyGzlu5uebu5/34v6fzHzMk Qktg== X-Forwarded-Encrypted: i=1; AJvYcCVMfavFGSvlhrW3Lu70RRy23gKxmU4VOVRk5tRs5VrlaUSuaheWpW8P4dINITf8zcK7OuRO6xZUajW63co6XbK07dohUWaHl26W/4Cm X-Gm-Message-State: AOJu0YwsyewvEty/A29JHIZr2QVaH4JfBEgh1EvFT0o0gFhrMWrq2+4T 8oye8evJjxFTLxIcM5EQautajSzaZHZQXkbfejs5Pw8k345EEaSpO6ANuFX1IbvfdU2W/ADTvyM CUgTQ9g== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a81:7985:0:b0:609:4293:23eb with SMTP id u127-20020a817985000000b00609429323ebmr338609ywc.10.1709143010454; Wed, 28 Feb 2024 09:56:50 -0800 (PST) Date: Wed, 28 Feb 2024 09:56:11 -0800 In-Reply-To: <20240228175617.4049201-1-irogers@google.com> Message-Id: <20240228175617.4049201-7-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240228175617.4049201-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 06/12] perf jevents: Term list fix in event parsing 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792166434890590482 X-GMAIL-MSGID: 1792166434890590482 Fix events seemingly broken apart at a comma. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/metric.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/perf/pmu-events/metric.py b/tools/perf/pmu-events/metric.py index 31eea2f45152..0f4e67e5cfea 100644 --- a/tools/perf/pmu-events/metric.py +++ b/tools/perf/pmu-events/metric.py @@ -568,6 +568,12 @@ def ParsePerfJson(orig: str) -> Expression: r'Event(r"\1")', py) # If it started with a # it should have been a literal, rather than an event name py = re.sub(r'#Event\(r"([^"]*)"\)', r'Literal("#\1")', py) + # Fix events wrongly broken at a ',' + while True: + prev_py = py + py = re.sub(r'Event\(r"([^"]*)"\),Event\(r"([^"]*)"\)', r'Event(r"\1,\2")', py) + if py == prev_py: + break # Convert accidentally converted hex constants ("0Event(r"xDEADBEEF)"") back to a constant, # but keep it wrapped in Event(), otherwise Python drops the 0x prefix and it gets interpreted as # a double by the Bison parser @@ -586,7 +592,6 @@ def ParsePerfJson(orig: str) -> Expression: parsed = ast.fix_missing_locations(parsed) return _Constify(eval(compile(parsed, orig, 'eval'))) - def RewriteMetricsInTermsOfOthers(metrics: List[Tuple[str, str, Expression]] )-> Dict[Tuple[str, str], Expression]: """Shorten metrics by rewriting in terms of others. From patchwork Wed Feb 28 17:56:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 207945 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3510779dyb; Wed, 28 Feb 2024 09:58:28 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWrSnc5kB74ySj21G1lEXV5BGUtSWAbAQBgnfownfFd1NhyvzESNLaEOrWAEjPkJDfQs4sXCDo/SzZ4FUUWpJW2AyGUoQ== X-Google-Smtp-Source: AGHT+IFzdPjGGvvfw01wfgV03NPEfCN6vajd0gsLTd40eyqfqPeXpoR67x7ifnRwnQeR+f8FPDR4 X-Received: by 2002:a05:6871:5316:b0:21f:828:7a7c with SMTP id hx22-20020a056871531600b0021f08287a7cmr505821oac.6.1709143108630; Wed, 28 Feb 2024 09:58:28 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709143108; cv=pass; d=google.com; s=arc-20160816; b=F6tFwxbz6vKrYDJnWRfZlUFr1/PMNzGPANY2c37aQblzudoyugYiiygWdDEU6GA31y CJJwM4wOXn3px6B44g+evyJ5z7K9sah6sSqteOJTu9CMGbng7sQwc42MFzodnHnV4Ik7 YKVPSfpavOo1isFMAje3ou+JvDONoip1C1hrTypLWeMEm/MAY5aQY+x8Fa8rRqwvt7l0 v+g8GDnDD8f+Ci6h2JlQBA8A4r8uwyjYjmyhAQNG4z4YNHwPdVm3RNPdremK4dvzbiYA 9raXTaSVl981JbBBEU9DL617e0faUik6HTtm/RoLhXnaqxHFBxNIt39eFqa0nEZuRuzG FPDA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=Dr8pGAPnm6Hh2FHAABPwd7yyauYEbKCnKNWRhMVNf9o=; fh=dK+KhfUZzVtQkGU9PL8UxJJnckfw3nPcSE5njgzV/Dc=; b=QArQ5pNZvhY3bFDlwcEPlScKz5kwQ41xnzu1aqKxVLqUOFVupCiJ/w2HslJc2UwiXR WuuybT12GmY8JAezDMmJbG4T/w3bUsM9kMkk1L3n4BtptHAvq3bDI8kaHGXZNgjV6yzF GlmkWbm4sSXLD6x+nWbX417ni5Zs2sD24LVW0UdH5J51zOlaUGzwoUA6btk4V9s8hYOM 5GmCYVuuf5gj3Q7og+ZQWux77KOr2v2Z5NY8MRWnz50xVwwlPMRuNuK2Z3eTfbZAvQvo wxP7bGKX2LnaqyV5rDh44F2KHJhHbmE39r9nVM3L5rZwY5IiMQMSx2lr9iGNRfREsBZZ GFlQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=qpcmE+ak; 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-85482-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85482-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id q26-20020a05620a039a00b00787f71c0307si7780qkm.738.2024.02.28.09.58.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 09:58:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-85482-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=qpcmE+ak; 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-85482-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85482-ouuuleilei=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 ny.mirrors.kernel.org (Postfix) with ESMTPS id 66A281C22742 for ; Wed, 28 Feb 2024 17:58:28 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B62FA71EBA; Wed, 28 Feb 2024 17:56:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="qpcmE+ak" Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (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 856A54086D for ; Wed, 28 Feb 2024 17:56:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143015; cv=none; b=gjpvvJLwoUSniP4ty4kjWJWvI22B+DaOdsuZGISjq8dChlD3y0bAVzNharoVbhlwx+ScVvzwYxCdcx5jLqXBw1B9xoBY8aWI7RKOAfqFKllbvnSJFEE0RIVc8b04HCwF31dFojNBuMDsu6NgjGR07R4jTMR7pc8MI37czkUT/c8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143015; c=relaxed/simple; bh=VDOIZB9jv6XKeIi5ciBHo1jjSFStukj9iwmjW2zydxI=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=YipT75Ij1S/8eP2UXf/S03JPe3JCATsPJZ4LZrOMSMRlx1amcVcen9RWLLQsXGqyYGLE8KzCCWO0O7q8yXpgjVrEOqBUxy91760E9RgILWQxIpShrca+klb7+ZM95tmK/w95hHWlOQqpsHNpbNKOWKmVllHGWCCtP1488khXBns= 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=qpcmE+ak; arc=none smtp.client-ip=209.85.128.201 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-yw1-f201.google.com with SMTP id 00721157ae682-6094c745eb7so226967b3.2 for ; Wed, 28 Feb 2024 09:56:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709143013; x=1709747813; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=Dr8pGAPnm6Hh2FHAABPwd7yyauYEbKCnKNWRhMVNf9o=; b=qpcmE+ak8GjFEcjjdFkETjUC44tRTp1X5zI7spij8h5ZqwGauVrdz39torUqmyakhb kY7c3u1JI5O+uRPz6EwHqvaEYDaQjgymxmFRHZibiFPRo5PFpK6sat+uPOFfKfocYRrB Pqgdse6NZc4AkhFwHW4eM5E8xTZsAVJYFOxoSndpQ+PLVRzEp94Y/n5784mdCviLkfDO nLcEwjP8TvIjx6sCc57WejRH93dQ/5WuCP45QsqAsOc/oklBg6W+WWBS0lDvtdfpaHaz ilBkC8iOQtvvXUBESENQoI30bqghCEal08tkdUIRUuJBsgtJHHpMRLcRupnqqWCMAXrX RRaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709143013; x=1709747813; 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=Dr8pGAPnm6Hh2FHAABPwd7yyauYEbKCnKNWRhMVNf9o=; b=EDS1MLGbuPkwI7T7CiFCFuGLVMDob99+DNJXGdjds58USonf5BpSk87kKPoK8WAPGo AMSZh7iVsncJF+ypjILdjjWs/J/eYteY1f6Hl354qh9maDBZ9bXrDtbPsmKjotsZEz6A ek5nIn4Tk4qJi74gPwpQ3PQ1goxhzsSrbremweUGZG+UqbkjSnNkk024IZ/Ioc+rU3yF FymOcTxA8QgSTnKds+rcFbOzVixIoBogMf/p0b5VIX8EZI5wL4QBQ5GBlo5nfDSwAW+O 1LJwvRgOIWc0XTttam64GUf3cABCdcTTGTtmjdKpbLGpfwNyNEg2E2MDaELHyLJ9g8yU Bveg== X-Forwarded-Encrypted: i=1; AJvYcCX1GUtVydK9g5acQ9voKyk0cyvx+FFxud3VB9tCrn1Wx0EX6ZeWexPw5DYcQ+naRBi6wIY/WhppcJW5Lrqw8AP2D2TX1/whkr2m4GX0 X-Gm-Message-State: AOJu0YyOscNxj2a7Loh+wlp74fhDURHkTu42LDA2VNQI8x/0itx8mQDz hWwv+0sKiX2j6yhmED4vcDcGoyjVuUlDLzjb0bstvFRSciJkN9xQtkKq8O1AUpvuDvk+X2eE1zl 2+zfFLA== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a0d:cc57:0:b0:609:3c40:e31c with SMTP id o84-20020a0dcc57000000b006093c40e31cmr379602ywd.6.1709143012824; Wed, 28 Feb 2024 09:56:52 -0800 (PST) Date: Wed, 28 Feb 2024 09:56:12 -0800 In-Reply-To: <20240228175617.4049201-1-irogers@google.com> Message-Id: <20240228175617.4049201-8-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240228175617.4049201-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 07/12] perf jevents: Add threshold expressions to Metric 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792166444192847319 X-GMAIL-MSGID: 1792166444192847319 Allow threshold expressions for metrics to be generated. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/metric.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/perf/pmu-events/metric.py b/tools/perf/pmu-events/metric.py index 0f4e67e5cfea..88022b7f08f4 100644 --- a/tools/perf/pmu-events/metric.py +++ b/tools/perf/pmu-events/metric.py @@ -436,7 +436,8 @@ class Metric: description: str, expr: Expression, scale_unit: str, - constraint: MetricConstraint = MetricConstraint.GROUPED_EVENTS): + constraint: MetricConstraint = MetricConstraint.GROUPED_EVENTS, + threshold: Optional[Expression] = None): self.name = name self.description = description self.expr = expr.Simplify() @@ -447,6 +448,7 @@ class Metric: else: self.scale_unit = f'1{scale_unit}' self.constraint = constraint + self.threshold = threshold self.groups = set() def __lt__(self, other): @@ -473,6 +475,8 @@ class Metric: } if self.constraint != MetricConstraint.GROUPED_EVENTS: result['MetricConstraint'] = self.constraint.name + if self.threshold: + result['MetricThreshold'] = self.threshold.ToPerfJson() return result From patchwork Wed Feb 28 17:56:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 207946 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3510886dyb; Wed, 28 Feb 2024 09:58:45 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWDdrgdvSLS21bTdD/WqBBDmC0O0OtGGM95W9TztTvW5qtYUf+veZ0sv5u/Hy3PwTEgT3xgtHq/Gm7Cw5czeuhhradgxA== X-Google-Smtp-Source: AGHT+IEKJO37fXpGzKWTgxN6Q7neMHyIrX8+06Q8FC1b5w6pEuaXuhtRZvDXlE7fJy69kl6jRrHP X-Received: by 2002:a17:906:97ce:b0:a44:f89:8104 with SMTP id ef14-20020a17090697ce00b00a440f898104mr301918ejb.42.1709143125407; Wed, 28 Feb 2024 09:58:45 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709143125; cv=pass; d=google.com; s=arc-20160816; b=u+3wBnH2j+nhzRSfQ7VfmZmTZ0RT5mY4UP8Z74OqEOr0bWf8VCyzEdgmG6wE6mepKx icLunsXZhCrmH+wqQ4UUVfI4nDsgHPV2a50909Q67A55qk564DsXjGWhmhjYVyDsAjcq b93H31EjuZykAsPDTuZBcqL1wY+zXYHNytSKiz0XYH2c0awjHvPzwaFL4dQv5E0YIvms AimnZ6W+arJAISmKvVa160cusgSaKr3fltslww0qNLuihc8FVi7pf76NOcucG0vRmW/W /1Qb1QO6CF7rqaaOJ2bE5fp+Bvo27DWHFq0VHuSGkW32AXOF65L/iFv5HutzrHVpHlTX agDg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=/cDzpg5+MKhLD8FCqutlzYcO5JjMHCNs7N0k1WxKxV0=; fh=uc3r9dgufnG2b91AS4Zjvuijw5MhtaOR8wTnzTJmeww=; b=EvmmuX5eXUjZ+LqiBQkU7HHoNReQMLMJTPZWW4UoM9538UvwtxGlhiWCAJ0YqdVRlZ Z97mpmtmKM3a9GPsTEz5UbihMzVEBIRgDDYtx4OqoltryVc5+SdlOsAHEEnoCJa8+G95 C0xoQiG+VqP0lCYAerSSPW1yH54kJRluQ+Dote1Mg/YkQKXoWluNuoez3QnyT1K7ri5Z RkvC6fuKGtHgcDhfeNpIAXQFUz+YrjYonFXG8eZsiJdIM64l+oG9zxBPagwoDPguOXYo LbqDFs82/6nSCRUoZUs4vK94KupP0eXkaREsP0rgbKZMLT99lypmlyoNtjUvzHC26u47 F7IQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=L2+WVsMe; 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-85483-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85483-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id p17-20020a1709060dd100b00a4407fa5aa8si635193eji.610.2024.02.28.09.58.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 09:58:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-85483-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=L2+WVsMe; 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-85483-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85483-ouuuleilei=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 D6B401F23D64 for ; Wed, 28 Feb 2024 17:58:44 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5E60871EC6; Wed, 28 Feb 2024 17:57:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="L2+WVsMe" Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.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 0349471EA2 for ; Wed, 28 Feb 2024 17:56:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143017; cv=none; b=XW5lhIK/umeI259fv/5iIGtv4DeE9aWXUTW0KnQgJ9Y0d9R6kWEdSVwwhxTQ3EphRcHHYULlPPHcsWtmPfV71ZcyfnKFrMnDISSvCP6Jec+Q0PRhG4Awanefcrz5o8C3urMAWSH/n8kVPA8bdEV2GrbHxDvA2WAKn6MkgT7NYH0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143017; c=relaxed/simple; bh=VTP7cncy4gwlJI397PHFOaaK/IbC9Og3Mfc2WSlODYE=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=Mgkivtnq8xxhDUnGwZ1A4SMgeJcEsK+KOZJehZ1FFoMCiyMMBZcW/JMXeB5LQw9sbYFHpHaYMcaNS6D0j1UctcfGdLwneryPI17vyocy2zjUoXsFfpqgXAiqoY4D62lcajkJTvrDk281kKbi/kBWptP0UUDWN6+VrXxVBFYqaSs= 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=L2+WVsMe; arc=none smtp.client-ip=209.85.128.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-yw1-f202.google.com with SMTP id 00721157ae682-608ab197437so407327b3.1 for ; Wed, 28 Feb 2024 09:56:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709143015; x=1709747815; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=/cDzpg5+MKhLD8FCqutlzYcO5JjMHCNs7N0k1WxKxV0=; b=L2+WVsMeq0+UglGKtkx8YJb09gOIqw8hmNdlqL13kuIkGqRlNYqOoPwR+sGGxT4Lz1 c9B9h3TREDhIo0WuA6OrSDkCnsrHOvYClye9meHzStkXIrrTUlmSylUsMKN23dJrJyFr l4F0WC2eFh49P6axqS1utz8oTjVTm4g6d9DpsIWxeyPStyMlKDP4O2pRCvA0YjdnowKY bahvwxVysqP4TNk2ytIO3dCIfwSuADEqLCUQwKWqX0Hb4yJzI/1YxyuZp5aDUY84nFPy U7gLdCf3GCw4bZsi6sQeeBEOFKGkfAP5qlLgS7axbDYenC11bNnRcnZEK3mKUhFuOtiM p8iA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709143015; x=1709747815; 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=/cDzpg5+MKhLD8FCqutlzYcO5JjMHCNs7N0k1WxKxV0=; b=E2WFHtRXwiz1sXdZyCdVtKmwRpuzcJHWDoE84QugqvS0ckmlzq9wC+9cODMuh1ZNOl U/CqbfNxJPGdHnw4hSNjVQTL4G945NgtptfVPkgkygY+hAlPDiFEuWYrJK92wsZpaTga WO807OGqZz68L2A0HyeLmH/w0RLzbJcq2LygRJCY/1vki6JMjoNGJFDapf4VZtVaKlqf gk+mHtSlVkzQMI/f/MeCNMoCUh6Cbku9rf1Z/423HAcCVl/+RA5J+gEOaY/HFieeNkER kY7Dw4rW08Cowa7oKzPmZ2LMom5RuVeG2SsZmM4wEaXa+svjqLO640/Qjd4LVk6nWzSe UpQg== X-Forwarded-Encrypted: i=1; AJvYcCUB2evLgnKSBnE31mf6/apbydy4SvvIFIxVDU/HZLSanCWjmhhpLDgc/2hCYqMKm4rB2cHCKhubuqPDnR5UyB2BN882TS6oa9YIZ6un X-Gm-Message-State: AOJu0YylZnjPZliU73xGDpapXw8u+BLwheUpt1rBSlMBf+yQpo10y4Lw wBmf0AorqG7MaPjz4E7IhQ/xn4UUX+qsMoQq3FmiUjZ2FQOb83IrteuHw4wRLUH/QncIYFul2QW ggsbUcw== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a0d:e654:0:b0:609:3c46:1889 with SMTP id p81-20020a0de654000000b006093c461889mr568853ywe.7.1709143015239; Wed, 28 Feb 2024 09:56:55 -0800 (PST) Date: Wed, 28 Feb 2024 09:56:13 -0800 In-Reply-To: <20240228175617.4049201-1-irogers@google.com> Message-Id: <20240228175617.4049201-9-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240228175617.4049201-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 08/12] perf jevents: Move json encoding to its own functions 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792166461786064752 X-GMAIL-MSGID: 1792166461786064752 Have dedicate encode functions rather than having them embedded in MetricGroup. This is to provide some uniformity in the Metric ToXXX routines. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/metric.py | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/tools/perf/pmu-events/metric.py b/tools/perf/pmu-events/metric.py index 88022b7f08f4..8b37cef0256a 100644 --- a/tools/perf/pmu-events/metric.py +++ b/tools/perf/pmu-events/metric.py @@ -483,15 +483,6 @@ class Metric: def ToMetricGroupDescriptions(self, root: bool = True) -> Dict[str, str]: return {} -class _MetricJsonEncoder(json.JSONEncoder): - """Special handling for Metric objects.""" - - def default(self, o): - if isinstance(o, Metric): - return o.ToPerfJson() - return json.JSONEncoder.default(self, o) - - class MetricGroup: """A group of metrics. @@ -522,8 +513,8 @@ class MetricGroup: return result - def ToPerfJson(self) -> str: - return json.dumps(sorted(self.Flatten()), indent=2, cls=_MetricJsonEncoder) + def ToPerfJson(self) -> List[Dict[str, str]]: + return sorted(self.Flatten()) def ToMetricGroupDescriptions(self, root: bool = True) -> Dict[str, str]: result = {self.name: self.description} if self.description else {} @@ -535,6 +526,22 @@ class MetricGroup: return self.ToPerfJson() +def JsonEncodeMetric(x: MetricGroup): + class MetricJsonEncoder(json.JSONEncoder): + """Special handling for Metric objects.""" + + def default(self, o): + if isinstance(o, Metric) or isinstance(o, MetricGroup): + return o.ToPerfJson() + return json.JSONEncoder.default(self, o) + + return json.dumps(x, indent=2, cls=MetricJsonEncoder) + + +def JsonEncodeMetricGroupDescriptions(x: MetricGroup): + return json.dumps(x.ToMetricGroupDescriptions(), indent=2) + + class _RewriteIfExpToSelect(ast.NodeTransformer): """Transformer to convert if-else nodes to Select expressions.""" From patchwork Wed Feb 28 17:56:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 207947 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3510964dyb; Wed, 28 Feb 2024 09:58:55 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCV9KZufSkdN9bgKYGfKcaZPLMrE2oD7BWM7KRZAXEgXwInVLMHXdm/GsZZ+wTf2e4CQrO61CWbbJ0qsw3OBd+cnWvcxvA== X-Google-Smtp-Source: AGHT+IEIgNp6PjqT6MzKCAqxaBsPGfZ/tKLBl/gNlb64gvOtD/KObq+pvT00vtPOgiIShliaaiAE X-Received: by 2002:a05:690c:c08:b0:608:769b:ff45 with SMTP id cl8-20020a05690c0c0800b00608769bff45mr6461095ywb.25.1709143135096; Wed, 28 Feb 2024 09:58:55 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709143135; cv=pass; d=google.com; s=arc-20160816; b=vgwuHLPx+f1II8A7IyqdeeSDlkDALzuAFGtwNKbE+ZT/+q9TJbO6EkHi2J54s+trTp 7iE/txTrXVbkeXwPbPKz5ISO9a0lHGnpbzAa27raGGV4Nlm8T7sxtgGvx3xWYWIgNldJ fDc8I9OOJCHVvrija7no+a1/Lk1Vug9tDI/+11KfAnytsWVxUDM+X664kEBwHBiCva8K +3hHSciikiCoPnC7cBr/Q8c/tR8GQ3s7JcukzRpHcHH2a7E8q1+W88NbZlIX1lj/7HGC yBXYFK7cY5OEXDdDmgPfgXp2HIp521w1Z4UvpTBqFHf53aMsjJQmKwaPutGNsGUSBUuj 14eA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=yRxIvbPDDMCjNnVdacSzvCtMsT39EeStBSRtXaTCLVU=; fh=m7iZHAzrJ8d/C2dNv5L3zpaDj4EtK8TSO3ZVMJvtqdg=; b=GEePjeluicV+pke1liUSsb110ADtYQ+pEmyvOzu06ea+8j4yvt9cyrU9LowPMx45Nu E8XsKjloIG3gL+CNiAqzeqA/l1XUrx1FpitwAJuaUAvBk++OBJzlKrtnAByK+qzYKfKy 2OZgwZyM0cOWwDJVhV58Yos0A13GpUcepdtSwgFIXjre5HBZPfY2S+sExn/x3UMYd999 YE+zXDLODoF3qItqhu5piDIrYpXoHUdzWO0cUIPo0mg+u1PmrqIttXYfhc5i2uPgMlhb 3dl+oHd2vNxMmK8KvzA+Yh21E3gTDv4/UBE6YhzdVIi+Pgq2K8Wc/Q4HY+linfWYwWFI dBMg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=gOIIRose; 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-85484-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85484-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id z4-20020ae9f444000000b00785da71a474si31181qkl.193.2024.02.28.09.58.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 09:58:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-85484-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=gOIIRose; 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-85484-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85484-ouuuleilei=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 ny.mirrors.kernel.org (Postfix) with ESMTPS id DDCAA1C22B8C for ; Wed, 28 Feb 2024 17:58:54 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id AC5847440A; Wed, 28 Feb 2024 17:57:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="gOIIRose" Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.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 84DE471EC9 for ; Wed, 28 Feb 2024 17:56:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143020; cv=none; b=W9kCMUHTs3pqGLMxbS2IW/Q812HG+xWDBecNF45D+tJrur6zEdxxu7LGKnj2z/HvrivlQXu5TIuQX5RTlImdStfPjV9GftoO0rj3APS8z0dMIomy9BUJXNzrkr0JZzrq+u2ximSPq1AG7527GUWbzGcWxibsbyev9w8QK+E3IdM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143020; c=relaxed/simple; bh=r7EPMWXB50WRmPs6Ybs2X/h0mr+Q2k6sSSuIvq/Jh3g=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=V+BL3seveL1m7URWFbxWTJQkNLnOeiTeHGx8P3mLXzzk3vKN7vzTH1tp+RHKkkNF45kZyNNT3YQcvOF/0GXJWt4oz88iIvwcXoxMpwrVQFRZAV8Lv0ImXtm5SOlrG55ot1pj9nbYfF29Fj15BQS9R1DNQm/jBERKgELzeMf/2OA= 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=gOIIRose; arc=none smtp.client-ip=209.85.128.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-yw1-f202.google.com with SMTP id 00721157ae682-6081639fecfso271947b3.1 for ; Wed, 28 Feb 2024 09:56:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709143017; x=1709747817; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=yRxIvbPDDMCjNnVdacSzvCtMsT39EeStBSRtXaTCLVU=; b=gOIIRoseZ9iFqQkJgw3gbBC+pEyaJolPUbWsbPn1fGSfVKntWGgt36vMMRkzagGmJ+ XPL4s/PmMcFZuSYWSHiqAh3IpgsTfmQNLQSI4SJZpDAzcETjBmS63BwrREzrb6yMTNxs wDxD+9NzQ9JfD5oJS5/M52BWA0cER5eFV9ujocNAplkqRAV0Z6ujCyT7yzVL2TPfYqSL oo6MkJDLUqcSzQ0xGs6ccfE293FzMotpkMp2fjI79sBC4E30RX3Qk8WFFmDmbHQ/SDXP W4xcJceBd+fPom6ew32rmJOEnmrTgjw3TkHgEyAuPS8w5Cr+YlF4HBDDbrIezuDIEjRZ aaJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709143017; x=1709747817; 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=yRxIvbPDDMCjNnVdacSzvCtMsT39EeStBSRtXaTCLVU=; b=FmxWbiMNh5bBRKRm6RlvOYZCdEnakPj53f68kYFfCClCPVUPXIofPTxBX/BkAHfC0i +1rf8ZmQX9glrYDxfwA/4uwIOVt6KtzDmE94yHN/asIE2oTrLJxhKMRCbilSfM07PaIb MReyZ+1TZfWWSTcqBYQ+GZ98GuRHdqZ250hb4bsrMlQULU3VeDEr0jE0l3TyZ23X3tfh /Dvwr1LI3+OEPdIt9N2KoMi8OHXUZdDhwnWezUKib3k3iD3ZkOjZRpM80Ierhbn+RUtH +huTKrunH/9W8hL9ejBwIFX2HZSc3LfBNDjcbhsEnSm4x8VDemWs7hqeD42v6j50t6qk uD4g== X-Forwarded-Encrypted: i=1; AJvYcCWcnuWRQqU49NFyHCJoR+VYq0VmFoWGDt7AJB6SC37TaVMlDzt+2VsnmrnWL8ij73cwxndbiZIoh9a2va14n7idkqQdmINz4RyxmLuq X-Gm-Message-State: AOJu0YxKU30XfTTu8t28SRxbdAi96CNtSROEgW1kKcGGOD5umTRs6lpI 4POeS+0y9rypS8baAHglIykldcimeDnVweI8SmfK1gfr35cqAJiGxjE8mkpbrm/SQSThYKWtcmQ D8ErBww== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:6902:1004:b0:dbe:387d:a8ef with SMTP id w4-20020a056902100400b00dbe387da8efmr155ybt.1.1709143017469; Wed, 28 Feb 2024 09:56:57 -0800 (PST) Date: Wed, 28 Feb 2024 09:56:14 -0800 In-Reply-To: <20240228175617.4049201-1-irogers@google.com> Message-Id: <20240228175617.4049201-10-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240228175617.4049201-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 09/12] perf jevents: Drop duplicate pending metrics 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792166471951800340 X-GMAIL-MSGID: 1792166471951800340 Drop adding a pending metric if there is an existing one. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/jevents.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/pmu-events/jevents.py b/tools/perf/pmu-events/jevents.py index 65ab03ce5064..55205a260a16 100755 --- a/tools/perf/pmu-events/jevents.py +++ b/tools/perf/pmu-events/jevents.py @@ -468,7 +468,7 @@ def add_events_table_entries(item: os.DirEntry, topic: str) -> None: for e in read_json_events(item.path, topic): if e.name: _pending_events.append(e) - if e.metric_name: + if e.metric_name and not any(e.metric_name == x.metric_name for x in _pending_metrics): _pending_metrics.append(e) From patchwork Wed Feb 28 17:56:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 207948 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3511059dyb; Wed, 28 Feb 2024 09:59:10 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWUC789AJMGXxAo2IUhJQrOoj4X3QSAHEfm0kD6Xd8usZFpdKndPy1hWTjLUq/LzrKJ4LsygpOTn3HhjxjSdFCSRXh0Bg== X-Google-Smtp-Source: AGHT+IEh5XBB9TxWm3V8DUKVNEGk0pjz3JTMU8/mIezrgav1ufPy08RjfbLgXHJO2t9pxbSsprkH X-Received: by 2002:a17:906:130f:b0:a43:86f3:af37 with SMTP id w15-20020a170906130f00b00a4386f3af37mr319906ejb.53.1709143150578; Wed, 28 Feb 2024 09:59:10 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709143150; cv=pass; d=google.com; s=arc-20160816; b=aBjEEAmN6AKt9/oOt8EoJvA4E2BAPd3iu1qTTybddmRA+hQ4RSrWrrxMDyd52JlRGI s394Ey1IzuEQNLSVxsgFvW3vNd6tJDVDFV69t5R4LIFhmo2VPuNjO3hXMHPf1C2EFPaj +A97Uf0y6PtZQaDsp2pzKqGfWBpGjOz2hCapH1FteYXlE8pFVfcOmCClaw+dB6BVM1Ch GametN4lUR+4XI0HtG4fQxrnlSIAQkafR2m+UrRv6RCEWKU65Bgu4jxhDk3ZQlFDpz4i ZC2Qqxvrnaq2YDD5lH+5xGBxVpajObepyDWBxQH7/mya+Sfx1puDtDcr+IocteDLhykt k8Dw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=n8Zy/5k2whAdLtuhk9uJVeAHCzZsg+vx3YKGl8xR8NQ=; fh=RB2hY1dEhxKvflUSVr3kweQfnj3Ks6WrRT/ygnr4dlY=; b=M2YqJrO5dV/eaj9OQlS/HXQ267IAxRtw9lTVDcWkoAxdueKu8MrjXD3DXfMi5R8qbe fvcnYbx1+/3Vnvsh5O/f16AOLDr7x9BoUi3Hio8vI0eohK9pN+vG+4XsET/Se3sU5wgn Us5/3N0JTbDCRb2zCqAPsEwLggtC3Ld1D8hDfWrTknu5fXTIQ3Fpb/80+/r+mpE1Fw3S GwW7VcyX4BhX35aHJR8tjRCc08YsDxQb6cHoEmoWu+vZDJ1m424mI80gPrYBjoIEp9BE EuId4t1JIqSxxHRvNNckgb7v3MdmVSCsFzWfABgrc7x4FfkuycmwzjlZe07w11H7M1ot sAmQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=f9F7X2ms; 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-85485-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85485-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id h9-20020a1709062dc900b00a443094cb2dsi14713eji.193.2024.02.28.09.59.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 09:59:10 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-85485-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=f9F7X2ms; 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-85485-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85485-ouuuleilei=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 3589D1F2475E for ; Wed, 28 Feb 2024 17:59:10 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 87A6F7442E; Wed, 28 Feb 2024 17:57:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="f9F7X2ms" Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (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 3330515E5DE for ; Wed, 28 Feb 2024 17:57:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143022; cv=none; b=Omre/PwPZghkMUT+UQpq4AAVsazF0qtvl5TQw0CYdD0rh0zeRtSHthtHCcm6MeI+98OlNx/g2uyE3Pg0iVveYQQFVS3g0RKjZzX2RqtRhD4WtxdtY7yQpAURuox/mnlBMhqgymLWEvUu5fPYt83Ywp9sLnv4dGMBGn7RJbqBJE8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143022; c=relaxed/simple; bh=YRU8U8+xDv3At1J+LdyKbbC3IhjldoIrvcOvRSvL8Lc=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=SUxHxuungUOsYYZM2aPQ8l34RWQ0c00EUOOiGDAmd/YWLncaXMUaN5PrIYAkc7S5wu1uyeOnQKAFxmHZ9JtyYE4w2dEEky+H+O7kt+Dimb297lQKbjkVpM+MUGv5nW6ktTOKo8bdkrqv9FlSrKyizw4hWSrxF4RjCzcIncyI5vk= 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=f9F7X2ms; arc=none smtp.client-ip=209.85.128.201 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-yw1-f201.google.com with SMTP id 00721157ae682-6094c745eb7so229337b3.2 for ; Wed, 28 Feb 2024 09:57:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709143020; x=1709747820; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=n8Zy/5k2whAdLtuhk9uJVeAHCzZsg+vx3YKGl8xR8NQ=; b=f9F7X2msOY1NVT21sluW2WqEQpkqjyDTXXm/JcKw71RLTJhTUwAXnaJ7EUo8g6csX8 Z+4OQBkSfcjeCIcyF/qEfQB6eFTLtGZufxDNi3JSmGwTyPuQqX+SPmoxHm60X4AIOrjf mO+WkQHnA+gE/f0dqvvv2sGd/xOA2stnvdIOFiXB/QAjMLnQn3thIlFSgUHq3lNYWPpW J7DzGig8oWnkHGropKNWn6+k7Af0lWOP7+NW38kYF7vjv5HVbjzU4G2aUpxKev3I+EPy Cp9Bpp+zjVovLF430B7DqwGHRmX8I6rlJGlIkoHX7QfdYRlvP6cKSaThGFYMPkpJ8JEJ TCEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709143020; x=1709747820; 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=n8Zy/5k2whAdLtuhk9uJVeAHCzZsg+vx3YKGl8xR8NQ=; b=XXAGihN6D+sr/xOWcIIaTHtLnFAsEHIDC2DkKNtwU0HCcM9wRFrFYYQpXVtn3MMtPV 717OtuHebrLn0yiwi0HnECuaE4ZuhVXfhn1rQqvok5X5Bu5UN0qD3EutceQtJo6c6eyq IaeB06pJuRylk3s59f85BqL5pqwIkp9GxmQlEkE7zZKL5zMUllOAF6aMXBLERQfpVGka zY9FG8nTeOgOHWX2rCw+txFmPsU6ydybkor9FHOqUuVO5OsE/vlOcaoPNZmvpzus1KiX bFhAKXYkhLN2JcbLJy5HnqRPAS56MlPTRObqIb7Ytx4vqEMvzwI3gilY6IOTLkZLxLST qzxg== X-Forwarded-Encrypted: i=1; AJvYcCVzuYZ4ajW1NpsoLJJtuAtrFpqQkY6kapOoZj9MDjcVu369tqpFiZrJUpn4ASFPxCg23cW+wTUS2Ghs8E4BzVeIhUTzkfoUefl9Vskk X-Gm-Message-State: AOJu0YyTE0rWXrLPTWjkAucHV+q71GGRF+MMljlwgtu/sKl8T7VdQ7CM E7PbHw2XLoPGDPn6hRgdelS8zsscyva5n30wzYcOPKdzJbRHnOSfBteTNi76mqpjjTUtg5aOLX7 icbaZcQ== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:6902:1004:b0:dbe:387d:a8ef with SMTP id w4-20020a056902100400b00dbe387da8efmr157ybt.1.1709143019661; Wed, 28 Feb 2024 09:56:59 -0800 (PST) Date: Wed, 28 Feb 2024 09:56:15 -0800 In-Reply-To: <20240228175617.4049201-1-irogers@google.com> Message-Id: <20240228175617.4049201-11-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240228175617.4049201-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 10/12] perf jevents: Skip optional metrics in metric group list 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792166487753015851 X-GMAIL-MSGID: 1792166487753015851 For metric groups, skip metrics in the list that are None. This allows functions to better optionally return metrics. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/metric.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/perf/pmu-events/metric.py b/tools/perf/pmu-events/metric.py index 8b37cef0256a..0326050f1e0f 100644 --- a/tools/perf/pmu-events/metric.py +++ b/tools/perf/pmu-events/metric.py @@ -492,13 +492,15 @@ class MetricGroup: """ def __init__(self, name: str, - metric_list: List[Union[Metric, 'MetricGroup']], + metric_list: List[Union[Optional[Metric], Optional['MetricGroup']]], description: Optional[str] = None): self.name = name - self.metric_list = metric_list + self.metric_list = [] self.description = description for metric in metric_list: - metric.AddToMetricGroup(self) + if metric: + self.metric_list.append(metric) + metric.AddToMetricGroup(self) def AddToMetricGroup(self, group): """Callback used when a MetricGroup is added into another.""" From patchwork Wed Feb 28 17:56:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 207949 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3511194dyb; Wed, 28 Feb 2024 09:59:30 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXmfkg2MPrK7QTFyOmtHcM/LzMKj5qFpfS6W9jKysnEOT8ofry1vEmnfNlIeGwlUQvztyAaya3su2tSYxTl+oPaS1S/uA== X-Google-Smtp-Source: AGHT+IEPEYece+BaYkLPSilVpdb3ZagFsM69kVmSA8A6T+Aa516AfOWo6W5nep4W/Jl7CvIJ3JPi X-Received: by 2002:aa7:d7d2:0:b0:565:6dde:ed2e with SMTP id e18-20020aa7d7d2000000b005656ddeed2emr89129eds.33.1709143169830; Wed, 28 Feb 2024 09:59:29 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709143169; cv=pass; d=google.com; s=arc-20160816; b=UhWlWpfVTXf8efcL6iL1S5KnP0oMqv1d6pl3yRznT61E+NOCPLph05IRf0XR5MeOYe IEToYSGeX2o6UZiwyv1CoVIoqQuf5sEYUdZIo701Us0ynwS0OsFb37z/RjUAGQXZy9GO BnkxBABdRrn3kBjbwMtvKYPwtwGXvf1Ov+YV/N01crdVsXq46FrQREN+V6IOSjs1VbIe VCFr78GtmcCa6ItRDfQKF++IFHeHQQVOSIUuLQ80tPyb8giQdWQCdSgFJ2icJU5D8Nyw ym5IJp3Gb+BLLO4c1dsw+WQsVnQomNpBLDpobr++OM+ZqcoWrTPdSwYA+KPsmXWP6GgT BDDA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=P+5JcwzWXYPI3Y1eGyU5MCULUVPOFuil2ShWagn8k+c=; fh=22AHvVLld2g35ttQCfHlnDfa+0qrnvFfTEONrnCuF64=; b=dsuMO1SPVi1bF2e0ROJo7mYbxY8ncZ1CAhutm/PyvJuTmwwSU6Ub9TlMfXawk+U6Qa Meh33jBBQq46BB83yDgTLRwD0EvJZcVeduQfbbSvrHdvk88u95FCucreYqLSnWTq5x+2 YF5KmdGw9SwTnKBLC8+/b09PdIULyIU/hxJTDs91UHvMMlhAlomdCBnTIPLSI5n42WRJ dcnFINZRENw1RfXMP4zH0ay9rrUz044jp33OldUUQY87S2qvO401zBVWqUTHLGEjhjxv RRYfy14VMdrzErqlP3Nm/ybZKcG/Wdo5wQPnsPQXXlpeAh1UnCABlmGh85ZiEaKQ3qdg ALog==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=xRTatDiK; 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-85486-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85486-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id x7-20020a50d607000000b00565a27c5c63si1943028edi.119.2024.02.28.09.59.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 09:59:29 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-85486-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=xRTatDiK; 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-85486-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85486-ouuuleilei=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 4869A1F2489F for ; Wed, 28 Feb 2024 17:59:29 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A422B79B63; Wed, 28 Feb 2024 17:57:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="xRTatDiK" 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 897B37441A for ; Wed, 28 Feb 2024 17:57:03 +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=1709143025; cv=none; b=Rli+Avv89Ihw+oQDzrWSz6ILupy0jTEt0pPi7pIVsj9yFoZYPf+ulnebrUJGg+y8RQzlmjskaH44NzGkm9it+9FMDFq8XeX8gLkzlSod8lzyTMjgijcnPAwtsCs/Szjn/BxCyrBKQLZ4BRlklEYZ2XPGpAxAg43n6ONogYbi3+M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143025; c=relaxed/simple; bh=NSu422446Xoc5zOhUBvYe9tHlRZVGRf9I7BLLIUpgeE=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=QtL9yG9ccVTcxlj7jPLVYKFIRql0djMRJf3eZR9jcqeE9GwMkf8YqX2dPXN/hzovZwcSXKymu5b+/ikQH/rVhPibk+0f9IUjzZQpGxFoCkwKSWEjrF05cJpUew8BbFdqfKCtFy7sOzVIvGesJ3ZuB4v0MWrmQJZRHJ0TD/SDigU= 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=xRTatDiK; 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-dcc4563611cso93699276.3 for ; Wed, 28 Feb 2024 09:57:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709143022; x=1709747822; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=P+5JcwzWXYPI3Y1eGyU5MCULUVPOFuil2ShWagn8k+c=; b=xRTatDiKwafaGcTGZwj6nxOzvoJEZeCcKuU75DWg0P8+69sn/P29JUiukg4DHjNwDF RP2+ojZHJQsKvEt/MGnG98qRdLfI9DmynK19sK6SgCJfjKFb0P1tCkSqM9OmhooAm0ZI RRXlwF0J1Jue5WWRKXdzC47qaFlGi+52VDT3DGolFkDpBcCL/1FP+6TnLCksGpavz5Y7 Z24jmD6M38V/gCqrQsE+GTQufHu7MtmZVL/ULkgv6URhIs1ik3sDZCskm/qruHmznIh0 BOCaAtxMTL+8zX/lzIjt9UE86uPDxc31EB2iFGC7ZjvAkKPZr1LgfJflWi+7+apcdeix 71TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709143022; x=1709747822; 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=P+5JcwzWXYPI3Y1eGyU5MCULUVPOFuil2ShWagn8k+c=; b=V2hX2DyQhwGNAVKTthk6K0d1tRoIzPKbJoAIhijuHCVVr/UqKEOPVEFhNTiQ3sSC8k 7v+8+iTn7a3eLt3tf9Rd21AGauyrE7+lwpAusjKJVH7mFsz+2g5Q1qR4v1WrPaiwGX38 3GtyuKoPEraEU7l5Bi3jSup4Bg6g/VYBV0IcopB97Cxe+2+Et7NuOpfA7NKIpfLh63JW il9GsD0KAYWnA3GwwoykWb/Dx0brKy1VE/O6o+hH6MXbZtXqnzyXV9tprfyby6S2XfJ4 nFMN/pINh4MIj9Yq17WHIk3NiI+163ktrAksjcr5N5jmsUsnMh1oCm5ixeGE9dXE5N1c GsjQ== X-Forwarded-Encrypted: i=1; AJvYcCXb7RMRyx1eFm6f7+kluaPHaUjY4w4ulYzu3DyaIGiaeEgLCu+qyKnQUac9uxJFz3B50btTekKOxAKvVeYG+E3CAsEiKQrRxNWPEduh X-Gm-Message-State: AOJu0YytIgmlkjlqLzlVlFJucP18o++E+atA8saFLf8R31SsrfmdPs3V 0O85lbLqTWK8AiliB0pWuNalwSW324AFWLhYgDRFYlB3On10OcFXyfB2qFscSJ9qV5wy/zGQrm3 CTw6Qqw== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a25:fc24:0:b0:dcd:ad52:6932 with SMTP id v36-20020a25fc24000000b00dcdad526932mr2949ybd.5.1709143022676; Wed, 28 Feb 2024 09:57:02 -0800 (PST) Date: Wed, 28 Feb 2024 09:56:16 -0800 In-Reply-To: <20240228175617.4049201-1-irogers@google.com> Message-Id: <20240228175617.4049201-12-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240228175617.4049201-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 11/12] perf jevents: Build support for generating metrics from 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792166508512012811 X-GMAIL-MSGID: 1792166508512012811 Generate extra-metrics.json and extra-metricgroups.json from python architecture specific scripts. The metrics themselves will be added in later patches. If a build takes place in tools/perf/ then extra-metrics.json and extra-metricgroups.json are generated in that directory and so added to .gitignore. If there is an OUTPUT directory then the tools/perf/pmu-events/arch files are copied to it so the generated extra-metrics.json and extra-metricgroups.json can be added/generated there. Signed-off-by: Ian Rogers --- tools/perf/.gitignore | 2 + tools/perf/Makefile.perf | 17 ++++++-- tools/perf/pmu-events/Build | 60 ++++++++++++++++++++++++-- tools/perf/pmu-events/amd_metrics.py | 17 ++++++++ tools/perf/pmu-events/arm64_metrics.py | 18 ++++++++ tools/perf/pmu-events/intel_metrics.py | 17 ++++++++ 6 files changed, 124 insertions(+), 7 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 diff --git a/tools/perf/.gitignore b/tools/perf/.gitignore index f5b81d439387..c9a8da5bfc56 100644 --- a/tools/perf/.gitignore +++ b/tools/perf/.gitignore @@ -39,6 +39,8 @@ trace/beauty/generated/ pmu-events/pmu-events.c pmu-events/jevents pmu-events/metric_test.log +pmu-events/arch/**/extra-metrics.json +pmu-events/arch/**/extra-metricgroups.json tests/shell/*.shellcheck_log tests/shell/coresight/*.shellcheck_log tests/shell/lib/*.shellcheck_log diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 86afdaad246f..88a7d7ef8269 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -1177,7 +1177,20 @@ endif # CONFIG_PERF_BPF_SKEL bpf-skel-clean: $(call QUIET_CLEAN, bpf-skel) $(RM) -r $(SKEL_TMP_OUT) $(SKELETONS) $(SKEL_OUT)/vmlinux.h -clean:: $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean $(LIBSYMBOL)-clean $(LIBPERF)-clean arm64-sysreg-defs-clean fixdep-clean python-clean bpf-skel-clean tests-coresight-targets-clean +pmu-events-clean: +ifeq ($(OUTPUT),) + $(call QUIET_CLEAN, pmu-events) $(RM) \ + pmu-events/pmu-events.c \ + pmu-events/metric_test.log + $(Q)find pmu-events/arch -name 'extra-metrics.json' -delete -o \ + -name 'extra-metricgroups.json' -delete +else + $(call QUIET_CLEAN, pmu-events) $(RM) -r $(OUTPUT)pmu-events/arch \ + $(OUTPUT)pmu-events/pmu-events.c \ + $(OUTPUT)pmu-events/metric_test.log +endif + +clean:: $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean $(LIBSYMBOL)-clean $(LIBPERF)-clean arm64-sysreg-defs-clean fixdep-clean python-clean bpf-skel-clean tests-coresight-targets-clean pmu-events-clean $(call QUIET_CLEAN, core-objs) $(RM) $(LIBPERF_A) $(OUTPUT)perf-archive $(OUTPUT)perf-iostat $(LANG_BINDINGS) $(Q)find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete -o -name '*.shellcheck_log' -delete $(Q)$(RM) $(OUTPUT).config-detected @@ -1185,8 +1198,6 @@ clean:: $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean $(LIBSYMBOL)-clean $( $(call QUIET_CLEAN, core-gen) $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo $(OUTPUT)common-cmds.h TAGS tags cscope* $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)FEATURE-DUMP $(OUTPUT)util/*-bison* $(OUTPUT)util/*-flex* \ $(OUTPUT)util/intel-pt-decoder/inat-tables.c \ $(OUTPUT)tests/llvm-src-{base,kbuild,prologue,relocation}.c \ - $(OUTPUT)pmu-events/pmu-events.c \ - $(OUTPUT)pmu-events/metric_test.log \ $(OUTPUT)$(fadvise_advice_array) \ $(OUTPUT)$(fsconfig_arrays) \ $(OUTPUT)$(fsmount_arrays) \ diff --git a/tools/perf/pmu-events/Build b/tools/perf/pmu-events/Build index 1d18bb89402e..9af15e3498f1 100644 --- a/tools/perf/pmu-events/Build +++ b/tools/perf/pmu-events/Build @@ -1,7 +1,6 @@ pmu-events-y += pmu-events.o JDIR = pmu-events/arch/$(SRCARCH) -JSON = $(shell [ -d $(JDIR) ] && \ - find $(JDIR) -name '*.json' -o -name 'mapfile.csv') +JSON = $(shell find pmu-events/arch -name *.json -o -name *.csv) JDIR_TEST = pmu-events/arch/test JSON_TEST = $(shell [ -d $(JDIR_TEST) ] && \ find $(JDIR_TEST) -name '*.json') @@ -27,13 +26,66 @@ $(PMU_EVENTS_C): $(EMPTY_PMU_EVENTS_C) $(call rule_mkdir) $(Q)$(call echo-cmd,gen)cp $< $@ else +# Extract the model from a extra-metrics.json or extra-metricgroups.json path +model_name = $(shell echo $(1)|sed -e 's@.\+/\(.*\)/extra-metric.*\.json@\1@') +vendor_name = $(shell echo $(1)|sed -e 's@.\+/\(.*\)/[^/]*/extra-metric.*\.json@\1@') + +# Copy checked-in json for generation. +$(OUTPUT)pmu-events/arch/%: pmu-events/arch/% + $(call rule_mkdir) + $(Q)$(call echo-cmd,gen)cp $< $@ + +# Generate AMD Json +ZENS = $(shell ls -d pmu-events/arch/x86/amdzen*) +ZEN_METRICS = $(foreach x,$(ZENS),$(OUTPUT)$(x)/extra-metrics.json) +ZEN_METRICGROUPS = $(foreach x,$(ZENS),$(OUTPUT)$(x)/extra-metricgroups.json) + +$(ZEN_METRICS): pmu-events/amd_metrics.py + $(call rule_mkdir) + $(Q)$(call echo-cmd,gen)$(PYTHON) $< $(call model_name,$@) > $@ + +$(ZEN_METRICGROUPS): pmu-events/amd_metrics.py + $(call rule_mkdir) + $(Q)$(call echo-cmd,gen)$(PYTHON) $< -metricgroups $(call model_name,$@) > $@ + +# Generate ARM Json +ARMS = $(shell ls -d pmu-events/arch/arm64/arm/*) +ARM_METRICS = $(foreach x,$(ARMS),$(OUTPUT)$(x)/extra-metrics.json) +ARM_METRICGROUPS = $(foreach x,$(ARMS),$(OUTPUT)$(x)/extra-metricgroups.json) + +$(ARM_METRICS): pmu-events/arm64_metrics.py + $(call rule_mkdir) + $(Q)$(call echo-cmd,gen)$(PYTHON) $< $(call vendor_name,$@) $(call model_name,$@) > $@ + +$(ARM_METRICGROUPS): pmu-events/arm64_metrics.py + $(call rule_mkdir) + $(Q)$(call echo-cmd,gen)$(PYTHON) $< -metricgroups $(call vendor_name,$@) $(call model_name,$@) > $@ + +# Generate Intel Json +INTELS = $(shell ls -d pmu-events/arch/x86/*|grep -v amdzen|grep -v mapfile.csv) +INTEL_METRICS = $(foreach x,$(INTELS),$(OUTPUT)$(x)/extra-metrics.json) +INTEL_METRICGROUPS = $(foreach x,$(INTELS),$(OUTPUT)$(x)/extra-metricgroups.json) + +$(INTEL_METRICS): pmu-events/intel_metrics.py + $(call rule_mkdir) + $(Q)$(call echo-cmd,gen)$(PYTHON) $< $(call model_name,$@) > $@ + +$(INTEL_METRICGROUPS): pmu-events/intel_metrics.py + $(call rule_mkdir) + $(Q)$(call echo-cmd,gen)$(PYTHON) $< -metricgroups $(call model_name,$@) > $@ + +GEN_JSON = $(patsubst %,$(OUTPUT)%,$(JSON)) \ + $(ZEN_METRICS) $(ZEN_METRICGROUPS) \ + $(ARM_METRICS) $(ARM_METRICGROUPS) \ + $(INTEL_METRICS) $(INTEL_METRICGROUPS) + $(METRIC_TEST_LOG): $(METRIC_TEST_PY) $(METRIC_PY) $(call rule_mkdir) $(Q)$(call echo-cmd,test)$(PYTHON) $< 2> $@ || (cat $@ && false) -$(PMU_EVENTS_C): $(JSON) $(JSON_TEST) $(JEVENTS_PY) $(METRIC_PY) $(METRIC_TEST_LOG) +$(PMU_EVENTS_C): $(GEN_JSON) $(JSON_TEST) $(JEVENTS_PY) $(METRIC_PY) $(METRIC_TEST_LOG) $(call rule_mkdir) - $(Q)$(call echo-cmd,gen)$(PYTHON) $(JEVENTS_PY) $(JEVENTS_ARCH) $(JEVENTS_MODEL) pmu-events/arch $@ + $(Q)$(call echo-cmd,gen)$(PYTHON) $(JEVENTS_PY) $(JEVENTS_ARCH) $(JEVENTS_MODEL) $(OUTPUT)pmu-events/arch $@ endif # pmu-events.c file is generated in the OUTPUT directory so it needs a diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/amd_metrics.py new file mode 100755 index 000000000000..cb850ab1ed13 --- /dev/null +++ b/tools/perf/pmu-events/amd_metrics.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) +from metric import (JsonEncodeMetric, JsonEncodeMetricGroupDescriptions, MetricGroup) +import argparse +import json + +parser = argparse.ArgumentParser(description="AMD perf json generator") +parser.add_argument("-metricgroups", help="Generate metricgroups data", action='store_true') +parser.add_argument("model", help="e.g. amdzen[123]") +args = parser.parse_args() + +all_metrics = MetricGroup("",[]) + +if args.metricgroups: + print(JsonEncodeMetricGroupDescriptions(all_metrics)) +else: + print(JsonEncodeMetric(all_metrics)) diff --git a/tools/perf/pmu-events/arm64_metrics.py b/tools/perf/pmu-events/arm64_metrics.py new file mode 100755 index 000000000000..a54fa8aae2fa --- /dev/null +++ b/tools/perf/pmu-events/arm64_metrics.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) +from metric import (JsonEncodeMetric, JsonEncodeMetricGroupDescriptions, MetricGroup) +import argparse +import json + +parser = argparse.ArgumentParser(description="ARM perf json generator") +parser.add_argument("-metricgroups", help="Generate metricgroups data", action='store_true') +parser.add_argument("vendor", help="e.g. arm") +parser.add_argument("model", help="e.g. neoverse-n1") +args = parser.parse_args() + +all_metrics = MetricGroup("",[]) + +if args.metricgroups: + print(JsonEncodeMetricGroupDescriptions(all_metrics)) +else: + print(JsonEncodeMetric(all_metrics)) diff --git a/tools/perf/pmu-events/intel_metrics.py b/tools/perf/pmu-events/intel_metrics.py new file mode 100755 index 000000000000..8b67b9613ab5 --- /dev/null +++ b/tools/perf/pmu-events/intel_metrics.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) +from metric import (JsonEncodeMetric, JsonEncodeMetricGroupDescriptions, MetricGroup) +import argparse +import json + +parser = argparse.ArgumentParser(description="Intel perf json generator") +parser.add_argument("-metricgroups", help="Generate metricgroups data", action='store_true') +parser.add_argument("model", help="e.g. skylakex") +args = parser.parse_args() + +all_metrics = MetricGroup("",[]) + +if args.metricgroups: + print(JsonEncodeMetricGroupDescriptions(all_metrics)) +else: + print(JsonEncodeMetric(all_metrics)) From patchwork Wed Feb 28 17:56:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 207950 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3511265dyb; Wed, 28 Feb 2024 09:59:38 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWUqGbNJ/UF+/v0/COHg6z/NXC4UnFVo5dLDT9oYAzB6kV2BabCp1DhRMQGF8thf8VKv7JQGAXEX78/vLCbh7lDrOTeRw== X-Google-Smtp-Source: AGHT+IFUE1dQLOX9QfLhhdoE7lUBzBRqvgYqoNPcSopors/zGvW3pwbqJzSNW104KMhnd2fQ5tzZ X-Received: by 2002:a17:906:ad4:b0:a43:56d0:caa7 with SMTP id z20-20020a1709060ad400b00a4356d0caa7mr201667ejf.70.1709143178185; Wed, 28 Feb 2024 09:59:38 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709143178; cv=pass; d=google.com; s=arc-20160816; b=LcxsLF4ZsYmjr2ehkxzkW551WvsqcxLdHjtghxm+9MZoCUAE2Yoi/LyUkeluBpSAw1 eRB6irVsX+3Z8lZIKF+j/0sU06L47fvpojH7ZHkj+brHOPHbUwRiZLEDTVGKY++5leGG VsiqRJbqhTh1lL0m9j3V4lcYX9hYET7Xsp5Ikln66l5lWQrSSGoE2EoKFSQ1LXMjlxxs dGFmkR/pV7GOkS9wvoDPIv+QXOzAJxLGXXfv208YY0MTEDZt0OLO69tdl2MYk6wqmUn+ N77zqeamA5/WLjRKH1TA5vTRYNM4/BYA49IYtyKP53zHEqkzNheulAF07htXJ4SIQBxB UT4w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=M6NqTe4lQsI2lCeybdcDVIAKYLSVy1HDfTgRobHAwi4=; fh=iRp6mS+qnVPUb4PGJRpXDY11i8lBjzJd16dpPGM5K+Q=; b=cwkrQPID7/lwx93YeckTkZmGC/8G1gO2RJ9/zfHVeyoR0jtusN5mOgTG/gsWYXCBVF lZ97DGu7xTGhlTvp0VM8LdvM8m3JSb9IYY7U/c2FFR4dccveb+B0hMR7gxDHLzqiKVel bubiXmVEVCYkJDgrOAcxWCI4ffYJfp463hFERBNix/VvmGoddGuTUKOtR1rYefmZV1LN CHEJVsHeN6WCeH4Lgt4wvBR1Ztkr3+ahos9u8NkZr9YuOP/vF7CZIDGPHM3PKSq9bMVG ed2Xb3jljxhcW2KvQ8segjkZ5olkcDDMAA52K6jz9ep8QnBR6bIN7XWtiJn5aJiBVhsC mPrA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=vso+9MMN; 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-85487-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85487-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id m20-20020a170906235400b00a44205e8bbfsi242432eja.807.2024.02.28.09.59.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 09:59:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-85487-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=vso+9MMN; 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-85487-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85487-ouuuleilei=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 930441F2460D for ; Wed, 28 Feb 2024 17:59:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0BE5079B79; Wed, 28 Feb 2024 17:57:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="vso+9MMN" 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 239E974436 for ; Wed, 28 Feb 2024 17:57:06 +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=1709143027; cv=none; b=DfqOvez9KneqAVbIdAndQ1IS+CWx1PVWhzLpaCW1v1eBfPe74FeSHvGKixyPx4aiPUwDAFuJ5oqfLQKcDPTqs8h0yvxNcOluqAUrCG903JA7zmf7mj550K0coAcz6DxYb7vfzkpS0T+Dl1Pj4YWRJVPYU/KoP+ASzsDNPzom6Vs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709143027; c=relaxed/simple; bh=RFf0SovuHqWJtY0/DKROVO/7jIucJjMLUFN5wMVSl0U=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=M14gxrkb5WVyM07xQAPKRYXeoas3l2a/iKJLLvNlC1QOwTmDchvJYKuGHREtEhfYiAZyPBEAbSsNsj+Frn3/1Ak5gS4VTq4hnXyax1JcS+XWSFP8LkbBBDg6njiyABN1gzVN8+6n9CTNY0YN7wQB2YhCsSoDvlNLQIQdz80LCmw= 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=vso+9MMN; 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-dcd94cc48a1so84344276.3 for ; Wed, 28 Feb 2024 09:57:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709143025; x=1709747825; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=M6NqTe4lQsI2lCeybdcDVIAKYLSVy1HDfTgRobHAwi4=; b=vso+9MMNgXr6fayIR2i1LyL62utD/cc1sKvPb0PfhNZwymo1M/gyZW+v3uaSHSdQU7 T2ov0MIlHn51uINxFF0lREaMCLvvGxnahnFJ3sweFaGaA9XM00ok8T1kWykxjbksnyH+ DBZuUOmpZnSkiDz0+1vXnj+Xzq2KUP/yQhv0VuZv2G1EsFOCJ6a+3atI5V72W+a+l178 jzwXs/pTCEx9TKnUYhw/IjmxoUsuZ8Fh+jXZwQoEM7RrkBAGeRmmCrqNOsdV859TX+Ee zDTyJcnFzHG8Kgh64AobR9P1sBnBPNaJCL5KWytIbWh1XsJh0wmHkCRscWpA79GDD4Ud 8P/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709143025; x=1709747825; 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=M6NqTe4lQsI2lCeybdcDVIAKYLSVy1HDfTgRobHAwi4=; b=JsDASKh1ybCS0+eavV6d/gFyOzuFBrgJdQsVLe4UaaqmKJtW0af7W7igm+ZPwakpaU glkXaifH6mSoe+fiZD1XcguzgAcWIcyuZRem/JP6O57grU1ClbdFZrwZfzUlsCsbbG+s D1o5YePtSMpm2f+ihzn2VmaAsi8mmymAuj+DBJQbzkBNK5TAFsuPHDPoi1BTDOtdyq6A 0NhboOhStHEHgaIoHDQMCIo8Dl4FKhU99GZFFoN0yQ5Urb5wCeag+EiSp2iGOkWxDbMY bpemD53NTmJzf2ldEamCpVfJthNJBaKlLHN4SapTW5X3ucD8RkuWPeVyByBUnuq8xVH6 4J4g== X-Forwarded-Encrypted: i=1; AJvYcCWUCOFp9bB4EVyng55KITjzfKUV3Tom6mo5J+nz3qYzC148bBiUIq54A2dMFbc1O0r0ZbV2bIzNQj723rWKh3RwGB7q2n6L5FqUeZ0k X-Gm-Message-State: AOJu0YyyXuV8Px4Mw/NHlBy/GKWb33SWWlmgh64czsrduyfRRKVtvOBZ XJlTLGUt4bbbOFHjERSuMfp63ANt59oJFNIX9LuBINXuYqqnz2q/jxinXNTbkjZJ/DIXnN4Vw0d p4Wwssw== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:77dc:144c:334e:e2dd]) (user=irogers job=sendgmr) by 2002:a05:6902:1244:b0:dcf:b5b8:f825 with SMTP id t4-20020a056902124400b00dcfb5b8f825mr11204ybu.0.1709143025258; Wed, 28 Feb 2024 09:57:05 -0800 (PST) Date: Wed, 28 Feb 2024 09:56:17 -0800 In-Reply-To: <20240228175617.4049201-1-irogers@google.com> Message-Id: <20240228175617.4049201-13-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240228175617.4049201-1-irogers@google.com> X-Mailer: git-send-email 2.44.0.278.ge034bb2e1d-goog Subject: [PATCH v1 12/12] perf jevents: Add load event json to verify and allow fallbacks 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792166517225153016 X-GMAIL-MSGID: 1792166517225153016 Add a LoadEvents function that loads all event json files in a directory. In the Event constructor ensure all events are defined in the event json except for legacy events like "cycles". If the initial event isn't found then legacy_event1 is used, and if that isn't found legacy_event2 is used. This allows a single Event to have multiple event names as models will often rename the same event over time. If the event doesn't exist an exception is raised. So that references to metrics can be added, add the MetricRef class. This doesn't validate as an event name and so provides an escape hatch for metrics to refer to each other. Signed-off-by: Ian Rogers --- tools/perf/pmu-events/amd_metrics.py | 7 ++- tools/perf/pmu-events/arm64_metrics.py | 7 ++- tools/perf/pmu-events/intel_metrics.py | 7 ++- tools/perf/pmu-events/metric.py | 77 +++++++++++++++++++++++++- 4 files changed, 92 insertions(+), 6 deletions(-) diff --git a/tools/perf/pmu-events/amd_metrics.py b/tools/perf/pmu-events/amd_metrics.py index cb850ab1ed13..227f9b98c016 100755 --- a/tools/perf/pmu-events/amd_metrics.py +++ b/tools/perf/pmu-events/amd_metrics.py @@ -1,14 +1,19 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) -from metric import (JsonEncodeMetric, JsonEncodeMetricGroupDescriptions, MetricGroup) +from metric import (JsonEncodeMetric, JsonEncodeMetricGroupDescriptions, LoadEvents, + MetricGroup) import argparse import json +import os parser = argparse.ArgumentParser(description="AMD perf json generator") parser.add_argument("-metricgroups", help="Generate metricgroups data", action='store_true') parser.add_argument("model", help="e.g. amdzen[123]") args = parser.parse_args() +directory = f"{os.path.dirname(os.path.realpath(__file__))}/arch/x86/{args.model}/" +LoadEvents(directory) + all_metrics = MetricGroup("",[]) if args.metricgroups: diff --git a/tools/perf/pmu-events/arm64_metrics.py b/tools/perf/pmu-events/arm64_metrics.py index a54fa8aae2fa..7cd0ebc0bd80 100755 --- a/tools/perf/pmu-events/arm64_metrics.py +++ b/tools/perf/pmu-events/arm64_metrics.py @@ -1,8 +1,10 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) -from metric import (JsonEncodeMetric, JsonEncodeMetricGroupDescriptions, MetricGroup) +from metric import (JsonEncodeMetric, JsonEncodeMetricGroupDescriptions, LoadEvents, + MetricGroup) import argparse import json +import os parser = argparse.ArgumentParser(description="ARM perf json generator") parser.add_argument("-metricgroups", help="Generate metricgroups data", action='store_true') @@ -10,6 +12,9 @@ parser.add_argument("vendor", help="e.g. arm") parser.add_argument("model", help="e.g. neoverse-n1") args = parser.parse_args() +directory = f"{os.path.dirname(os.path.realpath(__file__))}/arch/arm64/{args.vendor}/{args.model}/" +LoadEvents(directory) + all_metrics = MetricGroup("",[]) if args.metricgroups: diff --git a/tools/perf/pmu-events/intel_metrics.py b/tools/perf/pmu-events/intel_metrics.py index 8b67b9613ab5..4fbb31c9eccd 100755 --- a/tools/perf/pmu-events/intel_metrics.py +++ b/tools/perf/pmu-events/intel_metrics.py @@ -1,14 +1,19 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) -from metric import (JsonEncodeMetric, JsonEncodeMetricGroupDescriptions, MetricGroup) +from metric import (JsonEncodeMetric, JsonEncodeMetricGroupDescriptions, LoadEvents, + MetricGroup) import argparse import json +import os parser = argparse.ArgumentParser(description="Intel perf json generator") parser.add_argument("-metricgroups", help="Generate metricgroups data", action='store_true') parser.add_argument("model", help="e.g. skylakex") args = parser.parse_args() +directory = f"{os.path.dirname(os.path.realpath(__file__))}/arch/x86/{args.model}/" +LoadEvents(directory) + all_metrics = MetricGroup("",[]) if args.metricgroups: diff --git a/tools/perf/pmu-events/metric.py b/tools/perf/pmu-events/metric.py index 0326050f1e0f..7d445e47ae09 100644 --- a/tools/perf/pmu-events/metric.py +++ b/tools/perf/pmu-events/metric.py @@ -3,10 +3,50 @@ import ast import decimal import json +import os import re from enum import Enum from typing import Dict, List, Optional, Set, Tuple, Union +all_events = set() + +def LoadEvents(directory: str) -> None: + """Populate a global set of all known events for the purpose of validating Event names""" + global all_events + all_events = { + "context\-switches", + "cycles", + "duration_time", + "instructions", + "l2_itlb_misses", + } + for file in os.listdir(os.fsencode(directory)): + filename = os.fsdecode(file) + if filename.endswith(".json"): + for x in json.load(open(f"{directory}/{filename}")): + if "EventName" in x: + all_events.add(x["EventName"]) + elif "ArchStdEvent" in x: + all_events.add(x["ArchStdEvent"]) + + +def CheckEvent(name: str) -> bool: + """Check the event name exists in the set of all loaded events""" + global all_events + if len(all_events) == 0: + # No events loaded so assume any event is good. + return True + + if ':' in name: + # Remove trailing modifier. + name = name[:name.find(':')] + elif '/' in name: + # Name could begin with a PMU or an event, for now assume it is good. + return True + + return name in all_events + + class MetricConstraint(Enum): GROUPED_EVENTS = 0 NO_GROUP_EVENTS = 1 @@ -317,9 +357,18 @@ def _FixEscapes(s: str) -> str: class Event(Expression): """An event in an expression.""" - def __init__(self, name: str, legacy_name: str = ''): - self.name = _FixEscapes(name) - self.legacy_name = _FixEscapes(legacy_name) + def __init__(self, *args: str): + error = "" + for name in args: + if CheckEvent(name): + self.name = _FixEscapes(name) + return + if error: + error += " or " + name + else: + error = name + global all_events + raise Exception(f"No event {error} in:\n{all_events}") def ToPerfJson(self): result = re.sub('/', '@', self.name) @@ -338,6 +387,28 @@ class Event(Expression): return self +class MetricRef(Expression): + """A metric reference in an expression.""" + + def __init__(self, name: str): + self.name = _FixEscapes(name) + + def ToPerfJson(self): + return self.name + + def ToPython(self): + return f'MetricRef(r"{self.name}")' + + def Simplify(self) -> Expression: + return self + + def Equals(self, other: Expression) -> bool: + return isinstance(other, MetricRef) and self.name == other.name + + def Substitute(self, name: str, expression: Expression) -> Expression: + return self + + class Constant(Expression): """A constant within the expression tree."""