From patchwork Thu Mar 27 19:36:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Atish Patra X-Patchwork-Id: 14031434 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3EC4FC3600B for ; Thu, 27 Mar 2025 20:12:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=prlp5XqgI/Khif6kUiv5FMK3OMCI6nzVA7nLGH/Y3s4=; b=PHTL7EvJotzJyjX3ObAAIY3eBP /o3WUvom2NJYgnxff2SiUB0xD5wcjCO9TGt8OzjYqsYE3TWvAjFpZEBEHAyiybr4m8utk46a92Nkt UlW+qdBm8aA9tUxm8clTzur065OZjvlGLNUjVD01ZMLZYO8GPwpPUWR+D1KgI3ZGlBnnx5bwNivRW Fz+gKXQ38R4HfiL9fKGEMXyYUWbY2B6okixBytzbcdDYVTdaBTQratf5ZvvBw70xb5tanLrGtwJX9 Hz9R//oAVCqTyJngCRNHrxW1KexTofUGw14xFlQua5GyOC57tn0Bfz6MXKWuK3WMh0bBHhIH4yhfB lt6XZ9Tw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.1 #2 (Red Hat Linux)) id 1txta4-0000000BwNB-3HnY; Thu, 27 Mar 2025 20:12:00 +0000 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by bombadil.infradead.org with esmtps (Exim 4.98.1 #2 (Red Hat Linux)) id 1txt1x-0000000Bpvn-0Un8 for linux-arm-kernel@lists.infradead.org; Thu, 27 Mar 2025 19:36:48 +0000 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-301c4850194so1889164a91.2 for ; Thu, 27 Mar 2025 12:36:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1743104204; x=1743709004; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=prlp5XqgI/Khif6kUiv5FMK3OMCI6nzVA7nLGH/Y3s4=; b=WmT5DqthND+pjKic26cmthSC3RR9tqQHHwX1OQ+ci6w4D5MYoW2aYccRDknpClMV8R AON28wGSOdyADemHRVeM1jnaRjukuRyJDQ9RCe/SvInFiiKqAGZmgCtGYSDyM45jSlZ7 dWpTCcl2vzq+A0tyBICfyadWhCF0L4sYsqjE7XkqzbbeDBEMjy3ctSr7D8Sfdni5UQ7A EhAXIL4kVDHAfyKTEN1Shr083uLOJKuiSTMCmxcvmXgQ/kVt3iKdjM+qSA7z6YI70quY Oua+HtTEmcAZ/t/KGQtC67ptUsnnQfFpuXGH/AA+Fq3zlOyZdfPgTO3sybWOMsMEzJk7 ZxlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743104204; x=1743709004; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=prlp5XqgI/Khif6kUiv5FMK3OMCI6nzVA7nLGH/Y3s4=; b=j6rrx50WxqOvqv/PiU6jS8m3cMQCXjl8Q/E4LyPkHV6r9ZoT3MKiUiNfaYI4dkeyv/ AZajItld1BjX2TuQIkUpyX7sHhHNmwJ5Mqcc1eGRFR7hz+ky9zjKuJUP+5cQzGwFDrHO /AQWSp2zNjwDOHMtKAsZLpIcbeB9LxKV2u+qlRrG8VtofF/MgSB7ZjwJPyrfVb66J9+2 qFWqtf5SM37YN/gU7ypbMJ+21t+CPdbv5XPE1/DxvoY4tS+vnH7IkkKDgNCNCdnv/tsP wrveIOAmP8tAaXUUaodCg5fcDjQSiW/q8HwakoHO2QY4ilEZxmc6wfzE6R8JXNfioXUN n8DQ== X-Forwarded-Encrypted: i=1; AJvYcCVhcqxWskytZsA09tr0A6hgcWEpLSQzX066iVAqm/4wdt8n54lGkz3x9EJTq8NC1KfPVSwOKb55KiqcLBKLohx+@lists.infradead.org X-Gm-Message-State: AOJu0YzUnNrJj9CjYtJ5v3rDIHxs10+tf3Spr0ZiSAW4Jh6Jgjk3+QG+ tAFLZryUgRW74Forgvx4Tmk7U6UoimGQjJXGHjbTOCVH4dDvLfwSZ84Q8VG2oJQ= X-Gm-Gg: ASbGncuolhtMdzGpgwOhHTJUlcC86XqfKnSrhzFGJmi3tHisvUcZjvKs5Kix+y9rdvo hORlD5MWYadeHYg/dLu2b+0gZTGDybzgzEo4g1HjiI287IJP5UDMUBaWdGRGyE/QY49u3d/DFLQ Zq6KQYPxrhnE+fXdsXzUIPOD4mKBAUzwl0TQ4b40jgYOPbjp4XrP8ZKzeMPZCOYuANUhUx6BxcY YRU6IPO+W5fV3Ez25lSrPP7uhGmjs8gVUMC6qWUVES6ErJAEztPF6RNWKwthZZo/Dc9PY4fxStM uVIb9idQFUhIz7LBNfILnEVnNjRGGqATBpp1V1JI1QD6a3Qj7qWhKSRAmru+zB84TXnw X-Google-Smtp-Source: AGHT+IE9RAtJmcVuiq+zzbza3XZnuj5S63rmVXq5BX9kQPkvxkIEVWCCAKOhZGnJte5v86VybNNn7Q== X-Received: by 2002:a17:90b:2dd2:b0:2f6:d266:f45e with SMTP id 98e67ed59e1d1-303a7d5b6b6mr8384578a91.2.1743104204412; Thu, 27 Mar 2025 12:36:44 -0700 (PDT) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3039f6b638csm2624220a91.44.2025.03.27.12.36.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Mar 2025 12:36:44 -0700 (PDT) From: Atish Patra Date: Thu, 27 Mar 2025 12:36:01 -0700 Subject: [PATCH v5 20/21] tools/perf: Pass the Counter constraint values in the pmu events MIME-Version: 1.0 Message-Id: <20250327-counter_delegation-v5-20-1ee538468d1b@rivosinc.com> References: <20250327-counter_delegation-v5-0-1ee538468d1b@rivosinc.com> In-Reply-To: <20250327-counter_delegation-v5-0-1ee538468d1b@rivosinc.com> To: Paul Walmsley , Palmer Dabbelt , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Anup Patel , Atish Patra , Will Deacon , Mark Rutland , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , weilin.wang@intel.com Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Conor Dooley , devicetree@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, Atish Patra X-Mailer: b4 0.15-dev-42535 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250327_123645_332234_B11309B4 X-CRM114-Status: GOOD ( 13.23 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RISC-V doesn't have any standard event to counter mapping discovery mechanism in the ISA. The ISA defines 29 programmable counters and platforms can choose to implement any number of them and map any events to any counters. Thus, the perf tool need to inform the driver about the counter mapping of each events. The current perf infrastructure only parses the 'Counter' constraints in metrics. This patch extends that to pass in the pmu events so that any driver can retrieve those values via perf attributes if defined accordingly. Signed-off-by: Atish Patra --- tools/perf/pmu-events/jevents.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/perf/pmu-events/jevents.py b/tools/perf/pmu-events/jevents.py index fdb7ddf093d2..f9f274678a32 100755 --- a/tools/perf/pmu-events/jevents.py +++ b/tools/perf/pmu-events/jevents.py @@ -274,6 +274,11 @@ class JsonEvent: return fixed[name.lower()] return event + def counter_list_to_bitmask(counterlist): + counter_ids = list(map(int, counterlist.split(','))) + bitmask = sum(1 << pos for pos in counter_ids) + return bitmask + def unit_to_pmu(unit: str) -> Optional[str]: """Convert a JSON Unit to Linux PMU name.""" if not unit or unit == "core": @@ -427,6 +432,10 @@ class JsonEvent: else: raise argparse.ArgumentTypeError('Cannot find arch std event:', arch_std) + if self.counters['list']: + bitmask = counter_list_to_bitmask(self.counters['list']) + event += f',counterid_mask={bitmask:#x}' + self.event = real_event(self.name, event) def __repr__(self) -> str: