From nobody Tue Feb 10 03:20:40 2026 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (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 F3C8721C9E4 for ; Tue, 14 Jan 2025 22:58:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736895530; cv=none; b=C9aTHtTGxKV9Pq40HG9lQ84evmVBxBq9QHfVPronKBaSLS0W/oNLfF94CO9zF7bugiq+BtoKLNAy7ykWWCwCZkakjJt8TBOXh8QYbSG/c9AQOMk2sX3kw/X/2zUecYxrP5ruEQy2E63GJC7Okb1kdwofq4gtuLUPdEGVr5ynRHw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736895530; c=relaxed/simple; bh=IonkNrSqnxTgqTe44xyZhAJLdqqmTStDra6vOLyGrKw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=vGdLQN9X5YlkJVIPP2H3mFlCxJx70+Sg5nFLW2iGzIgqpV54/nnjYfXuDG4S6ErvtfieqblcIlw/JdKY4K3xRIQme7lzjVwWW6cTAzuFRFnyLcMEx56QyJKL1Yz+DvINVcIPRR7t2Sd5cTgOh8yEdJ0Im7W1I0n5yROvyJRfQW0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=gXctSMhm; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="gXctSMhm" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-216426b0865so107035395ad.0 for ; Tue, 14 Jan 2025 14:58:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736895528; x=1737500328; darn=vger.kernel.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=lFaqQYFa0i4Hi1540ZaNWub9sunz3Nl340tvz0aVjzo=; b=gXctSMhmMtCU5kClJE/0l886usgr53w8XT2HZQK7xjFbqeKLOnzKh2mvPnPSHrv/Cv PaLL4igwlcdoOg4eHNR5ZHt8avDNUBKOgBZuzuaHgCTfyz1+JBoJrYgM36YFtDHBbsXB 0dNtJ0y/Jx08ecinbQiNAmwLZuKZEw2QHQ1ER++eQR50A4ZwNnSDLULslFmRlZW0i82b cwEWtGhFpMdUcpVz3xRbqUuRJ6XN+bvxxdT62QJzoBtHkgPUqM0xlIK+bIu84CziSBab 6su7mCnfFhYa13JzfUdygvlT0lrKfVvAeiw0gA1WBMVVXCPJ/Fak4NNk+8AB4JFmqMgm 1LiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736895528; x=1737500328; 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=lFaqQYFa0i4Hi1540ZaNWub9sunz3Nl340tvz0aVjzo=; b=E/rmVYvqgQ0bBe7iYG/6O71TfvSnvREiGnCwUTcvEdU2bl4TdkyCnNHLy262CNYogU wmUQuXuFkVYmPHzWdHbrjO2xZHN0MrVijN6t9FI7PL2/QZj4N4fcairTF7/BYpZLfD5q M098TZr6M8/+X3RZTUkx9OtcqCCKAW7NmlFKJCaeia1z3vPYtZEXbg0eTV5kTICXxjzx 2wDmCM0YKt62DS1FS5X/gMZmNdbwa4Yu8iBlvydkLxUVORMIxZZ/+Gbcb6phZzq3AW+y 8Xx9SrhJ0J1PP17R9KpDZmKqjTiMEEtIiSNXZRoKCr3RFDIWTK0TMq1LzqtmL9gMUNAy /EnA== X-Forwarded-Encrypted: i=1; AJvYcCW7WRsbvkTvK0R9xmhSE+GF1opCrzT6rZ5eHdqszx90YLMarw6vzgPYMt0eDJ2geAEhPq4F2CEOu1/ymmA=@vger.kernel.org X-Gm-Message-State: AOJu0YyP3/vCtvEsCKgkw/GFGPuW20fPZf3uGymlRHp1MLoEhQecURRM D7L9uSApGmuko9UGMiHVfVrV/W6VtsMvCBpA03kT0ChCspcFI6mPa8c1nufPqa0= X-Gm-Gg: ASbGnctoX4ZvvrTbIfCH6Ot1HdTmIiJr6vbXyt14ptgEMlfPjuHl6imaleJmvGIkYLl OEl1msjw9lSEhBROASAGNosEb5pf6UFZgYQljc9HFzI+vED+CXruVursEHVi9TueAEBWUJokfgZ e13Ni9kpZUE/ZwtDb44AxEATFUqUS9E7Y0Ql6Y6BAwqo+HBxF1fQ3tK3iqwyzzen3bIj50v2RWS kMSs3eTDNMLR8DAFkl1/0UBfb4LK/ig4zOquVTgnmfoseeJuhICdF/H5r7jBM031EEnxA== X-Google-Smtp-Source: AGHT+IHCQ6qV+IZREHZOksM8g070R45gqC24v2Ey2b78fnINPv3h7b/5YKzuEF3OHMLV4KVWpbWi3w== X-Received: by 2002:a17:902:c941:b0:216:7cbf:951f with SMTP id d9443c01a7336-21a83f4f096mr419065225ad.21.1736895528131; Tue, 14 Jan 2025 14:58:48 -0800 (PST) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21a9f10df7asm71746105ad.47.2025.01.14.14.58.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jan 2025 14:58:47 -0800 (PST) From: Atish Patra Date: Tue, 14 Jan 2025 14:57:42 -0800 Subject: [PATCH v2 17/21] RISC-V: perf: Add legacy event encodings via sysfs Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250114-counter_delegation-v2-17-8ba74cdb851b@rivosinc.com> References: <20250114-counter_delegation-v2-0-8ba74cdb851b@rivosinc.com> In-Reply-To: <20250114-counter_delegation-v2-0-8ba74cdb851b@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, Palmer Dabbelt , 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-13183 Define sysfs details for the legacy events so that any tool can parse these to understand the minimum set of legacy events supported by the platform. The sysfs entry will describe both event encoding and corresponding counter map so that an perf event can be programmed accordingly. Signed-off-by: Atish Patra --- drivers/perf/riscv_pmu_dev.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/drivers/perf/riscv_pmu_dev.c b/drivers/perf/riscv_pmu_dev.c index 8c5e2474fb7d..8c5598253af0 100644 --- a/drivers/perf/riscv_pmu_dev.c +++ b/drivers/perf/riscv_pmu_dev.c @@ -122,7 +122,20 @@ static struct attribute_group riscv_cdeleg_pmu_format_= group =3D { .attrs =3D riscv_cdeleg_pmu_formats_attr, }; =20 +#define RVPMU_EVENT_ATTR_RESOLVE(m) #m +#define RVPMU_EVENT_CMASK_ATTR(_name, _var, config, mask) \ + PMU_EVENT_ATTR_STRING(_name, rvpmu_event_attr_##_var, \ + "event=3D" RVPMU_EVENT_ATTR_RESOLVE(config) \ + ",counterid_mask=3D" RVPMU_EVENT_ATTR_RESOLVE(mask) "\n") + +#define RVPMU_EVENT_ATTR_PTR(name) (&rvpmu_event_attr_##name.attr.attr) + +static struct attribute_group riscv_cdeleg_pmu_event_group __ro_after_init= =3D { + .name =3D "events", +}; + static const struct attribute_group *riscv_cdeleg_pmu_attr_groups[] =3D { + &riscv_cdeleg_pmu_event_group, &riscv_cdeleg_pmu_format_group, NULL, }; @@ -362,11 +375,14 @@ struct riscv_vendor_pmu_events { const struct riscv_pmu_event *hw_event_map; const struct riscv_pmu_event (*cache_event_map)[PERF_COUNT_HW_CACHE_OP_MA= X] [PERF_COUNT_HW_CACHE_RESULT_MAX]; + struct attribute **attrs_events; }; =20 -#define RISCV_VENDOR_PMU_EVENTS(_vendorid, _archid, _implid, _hw_event_map= , _cache_event_map) \ +#define RISCV_VENDOR_PMU_EVENTS(_vendorid, _archid, _implid, _hw_event_map= , \ + _cache_event_map, _attrs) \ { .vendorid =3D _vendorid, .archid =3D _archid, .implid =3D _implid, \ - .hw_event_map =3D _hw_event_map, .cache_event_map =3D _cache_event_map = }, + .hw_event_map =3D _hw_event_map, .cache_event_map =3D _cache_event_map,= \ + .attrs_events =3D _attrs }, =20 static struct riscv_vendor_pmu_events pmu_vendor_events_table[] =3D { }; @@ -388,6 +404,8 @@ static void rvpmu_vendor_register_events(void) pmu_vendor_events_table[i].archid =3D=3D arch_id) { current_pmu_hw_event_map =3D pmu_vendor_events_table[i].hw_event_map; current_pmu_cache_event_map =3D pmu_vendor_events_table[i].cache_event_= map; + riscv_cdeleg_pmu_event_group.attrs =3D + pmu_vendor_events_table[i].attrs_events; break; } } --=20 2.34.1