From nobody Sat Oct 4 21:05:28 2025 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2078.outbound.protection.outlook.com [40.107.92.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BFEBF2E1C79; Tue, 12 Aug 2025 23:38:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.78 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755041889; cv=fail; b=VuWqNJoWigQVIZlEgDjbNThEXqFiiLDykfGAQD/6GM5LXBWip0os+7V9DgIjxFJGLW5CSHR7RgFReIuxhu10D+UoKX7yWfvqlEry363v6rIP5KZ3aK4CPPBBa8JymRRMeeTKISvRagBo3BHGZyOPueUtQRrX4ZdAecRcL9jKZPo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755041889; c=relaxed/simple; bh=JcxksGImgFvJ2OJcQTFq1VRHz5MVcnanz5V0p4mp29U=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=iQQigvMcNCS2jptoQ+s0dihdAldULje6hTEKMqxdUbprDG5ATvGMMMcrnEKpOujkj7VmoUbWGpU6ThOm/ML3EoaUDwvLGikg72LrFHjiJmaQwDT/YlS/Ly6OFfrJMRC+Pqtj1WjMudAFzb6AbbUTUQdAoUJRvcqJE1wTXWo8x20= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=R88Jlz9b; arc=fail smtp.client-ip=40.107.92.78 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="R88Jlz9b" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kzKxjJn/cfUPbMQ0Qavt5Q8p/wA6zXVWpmD/oZ/c9ZSPfthvBOgXd/h4lhJK/J2BiqlOO48K1RnFnW0dyfqRpoUhUhKd3ZzWy7Oby5hAr/ZZaICq2mt5u5EV9bIRnIGsssyUjTep1tUwanKTv7hkFUnh5YcF7T5IZGkie98rT87mBXOAQPSpCWqOhNmNv5nOI0FzwRzi1RJjuLI5xn62qTiJIICEdjnktId7JCwQe/erwl59Hm0gyCC0AxmnkYtnC6JR7VhWCWzQbGcHqH5dyzL5CgS50wVhc8Kj5YmFGvGJq4FNXnVqPeRuCaA6kb883VYc90sFB6/HSCGcgCI2HA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TEs3pZaBMklhh+NrYbwXmuYb6QQTIhWhkZHo5K/d/DI=; b=k9W3eRwxBWrcC8PxtBpt9LiGEMNAQIRwCMEZFMjYUI/EamcRBs4Ws2RFbWyPbWzcRzoweUjjI7ANDI9/sk69QAjm77deWiZo34Ej3k6FNDChoQuKnDJTQvpKhF5//Z86NJUeRXc5RI7PNx8blR/q/5JcUhiKt6XddBHanFI5tLCNE9gM0WqXSDefEHu6AtTz1e8kIgFOoDQsPj5b4KLrE+83BjS/4gRQ7CkCVlYs38C2z2tbkS1KDJ8vCzFMGC1R2BQMer1yd72ixdZKM1X3FDHsB5dMxgmSYedtazTtMJxGA6d74gp0vfNwZBvmlUC0MdLMCmlf6XkpiUm/gPMMWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TEs3pZaBMklhh+NrYbwXmuYb6QQTIhWhkZHo5K/d/DI=; b=R88Jlz9bokDg+LAKdRazFa+Lsflp5W91UPr5dZYnxi3v9rRMlv0ijgJR5QEpUFHJATiKRfAyqDmTRXNkzjuISsA/1Dr6cIJ9zNi+XEUTPlxGsOzLQvku9PnyHa1a8/qh0k1sKJDad98I07xyzYViDlgMujrUYOPA7NkCf7S8XelsT9fo1nFQiq4GBcGzx5gW0UHRn37cOrl/D84EABwN5MDLdCCxnm/Ng4oYfaGNnAOciCBf3btog0v8dMWaJxl5kbJXM2mWi+2rEGg7AnOUqso9pLA1K6GvM4Az73wVVJmmEUzPgStN/bI36jbY8+jyVJIoAuC4VHv6+BaCZ+P1Sg== Received: from SN7PR04CA0191.namprd04.prod.outlook.com (2603:10b6:806:126::16) by SJ2PR12MB8806.namprd12.prod.outlook.com (2603:10b6:a03:4d0::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Tue, 12 Aug 2025 23:38:01 +0000 Received: from SA2PEPF00001509.namprd04.prod.outlook.com (2603:10b6:806:126:cafe::5b) by SN7PR04CA0191.outlook.office365.com (2603:10b6:806:126::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.22 via Frontend Transport; Tue, 12 Aug 2025 23:38:01 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by SA2PEPF00001509.mail.protection.outlook.com (10.167.242.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.11 via Frontend Transport; Tue, 12 Aug 2025 23:38:01 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Tue, 12 Aug 2025 16:37:57 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Tue, 12 Aug 2025 16:37:57 -0700 Received: from build-bwicaksono-focal-20241114.internal (10.127.8.12) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Tue, 12 Aug 2025 16:37:57 -0700 From: Besar Wicaksono To: CC: , , , , , , , , , , , , "Besar Wicaksono" Subject: [PATCH 1/5] perf/arm_cspmu: Export arm_cspmu_apmt_node Date: Tue, 12 Aug 2025 23:34:07 +0000 Message-ID: <20250812233411.1694012-2-bwicaksono@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250812233411.1694012-1-bwicaksono@nvidia.com> References: <20250812233411.1694012-1-bwicaksono@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF00001509:EE_|SJ2PR12MB8806:EE_ X-MS-Office365-Filtering-Correlation-Id: 3f5a8fd9-29fc-4950-d5b9-08ddd9f946d3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?T/T3L2g+C+fJM412stfGr+mnlCtKjE2Tu2jIl0aGKA827WYF9QJV2Eqk/PBc?= =?us-ascii?Q?2aST0DID0jn8ZpD8uirm2o5smNa7QbJMI3H7dxTFlAfwOMEOvowXkDo3lNm8?= =?us-ascii?Q?7/fvq5k0f+9v3QPsxUdy5G58S56pM0c3QIikzazGVIYmFfQC02IvEv/xD054?= =?us-ascii?Q?qaEH8/PiyvT/VXZpaydk2QOheDOrdQhLeesgPcbM+gJ8QNrEIgjkcajPDQAh?= =?us-ascii?Q?IbsshagFx2oHP/tHnvz/l2QrS0OtGGLk+e/iGxnSkRiQhDaPcnQsmqIbpYMY?= =?us-ascii?Q?pYdV9KIvc6diuR9ZI9DYEgDyUXddlH3KwU5zfhmMMLCVnO2GtFJUuRXldydz?= =?us-ascii?Q?tD850I327I6/ZT9KHRh6aXWnFT6owDz0dpNd8xG/QRTdKsEMXD6D1gBubl42?= =?us-ascii?Q?2bZ8PLv2n/5nKRXoEPBIfxNMcx4lX2AvrGHtS/yBR01CC6HtXz8xsrstWNWN?= =?us-ascii?Q?pVugW/Yl/uPlv02305RGZzIyiNVXJMH49G/R23gzHlSfmtdUsiUCAJ4V3mxG?= =?us-ascii?Q?kd6F7Tuz/oM6Get/t0+WqH3ieVqjiT21Mz7wDDxlXiWm2mAujDa+/qkiA4Uo?= =?us-ascii?Q?kUOioF21CIaP2nqzh6IphFtiJ7JycOdIkgXk2PhABPK66IZbgHqHKzVUWKpj?= =?us-ascii?Q?RGxgxUhbU4382tLRaYMdlryz3AyShcQz8HXJsyA4Z8Tf8CtdRdJVnIUfIgeQ?= =?us-ascii?Q?sI1Ovx5x7fZV0OpERk7Ho1pSz49tIdbDKNeHltUMFA6vT1K/CfGByPXL/Go5?= =?us-ascii?Q?JW5OSfSTD0/88f0Dxe5ILUfBOA02ExLBab7z5jh53VnbAUAfVU1QcrNV5fi+?= =?us-ascii?Q?voVFipechfGWtvFJlttd1l0txBMe1p89XE96RjnFRBpXP02EG7Dw0yF2TnjB?= =?us-ascii?Q?Oci4B+SF2J9Mn26YeNJMbahYbCJtlkNGlBHaAZuLkqZ+hoP/746g3kiMYuaY?= =?us-ascii?Q?vLXxD9NAXNEab1CD2qVTQQVlB/BrzLr63x4XZ4rEjZGAbTwIrPywWHTklFmw?= =?us-ascii?Q?2YaOHZcrhsGebyFIzM7duBaCfQPHeRN86uLu0X1L7GDhvEcFy9ULOIBix23J?= =?us-ascii?Q?hXVjE7fM4FqwXt7Gbj2TzWFQuwLL6KAWMjjBGaYk4+M8m9qGLt9Aoou8jPxQ?= =?us-ascii?Q?fxUYRumV0pW5qq1wp63TJGeZhYlpCY/4g9YBhiMpPbs4/wXrUPcgSikf3hTq?= =?us-ascii?Q?KWP71KqvrLgCSHC+NE5it0cpnKPk8e8VnmEzFDWB6VImCQa2e6kt/oQRmBAo?= =?us-ascii?Q?OpUm0en42G9QFltaEfYy88IuTq52R/2gyj57rv813P4ePyUNwjKmcWgmsKo7?= =?us-ascii?Q?zFS9ashG3FAYrza1m2rlVNanSfT91pvZH8orQoufH2aBtUY7NJ7/ozBCZ2WL?= =?us-ascii?Q?Vg5ig2LHNbTtorDBCueR/DyvsBS4ZXJCWC8F2DWoWdkZOxAB7kF2maoC+rSj?= =?us-ascii?Q?rYlGn2oqC5uwm9n8BNFcdyO2TrRVSmys/OryRXQh5U33IsONKaxf8p4sFfHT?= =?us-ascii?Q?E/ll33as+nnnEHAcrdTGeDPIB0U1O6euDh3D?= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 23:38:01.3577 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3f5a8fd9-29fc-4950-d5b9-08ddd9f946d3 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF00001509.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8806 Content-Type: text/plain; charset="utf-8" Make arm_cspmu_apmt_node API accessible to vendor driver. Signed-off-by: Besar Wicaksono --- drivers/perf/arm_cspmu/arm_cspmu.c | 3 ++- drivers/perf/arm_cspmu/arm_cspmu.h | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/ar= m_cspmu.c index efa9b229e701..e4b98cfa606c 100644 --- a/drivers/perf/arm_cspmu/arm_cspmu.c +++ b/drivers/perf/arm_cspmu/arm_cspmu.c @@ -70,12 +70,13 @@ static void arm_cspmu_set_ev_filter(struct arm_cspmu *c= spmu, static void arm_cspmu_set_cc_filter(struct arm_cspmu *cspmu, const struct perf_event *event); =20 -static struct acpi_apmt_node *arm_cspmu_apmt_node(struct device *dev) +struct acpi_apmt_node *arm_cspmu_apmt_node(struct device *dev) { struct acpi_apmt_node **ptr =3D dev_get_platdata(dev); =20 return ptr ? *ptr : NULL; } +EXPORT_SYMBOL_GPL(arm_cspmu_apmt_node); =20 /* * In CoreSight PMU architecture, all of the MMIO registers are 32-bit exc= ept diff --git a/drivers/perf/arm_cspmu/arm_cspmu.h b/drivers/perf/arm_cspmu/ar= m_cspmu.h index 19684b76bd96..36c1dcce33d6 100644 --- a/drivers/perf/arm_cspmu/arm_cspmu.h +++ b/drivers/perf/arm_cspmu/arm_cspmu.h @@ -8,6 +8,7 @@ #ifndef __ARM_CSPMU_H__ #define __ARM_CSPMU_H__ =20 +#include #include #include #include @@ -222,4 +223,7 @@ int arm_cspmu_impl_register(const struct arm_cspmu_impl= _match *impl_match); /* Unregister vendor backend. */ void arm_cspmu_impl_unregister(const struct arm_cspmu_impl_match *impl_mat= ch); =20 +/* Get ACPI APMT node. */ +struct acpi_apmt_node *arm_cspmu_apmt_node(struct device *dev); + #endif /* __ARM_CSPMU_H__ */ --=20 2.47.0 From nobody Sat Oct 4 21:05:28 2025 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2044.outbound.protection.outlook.com [40.107.102.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D391A2874F0; Tue, 12 Aug 2025 23:38:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.102.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755041908; cv=fail; b=tk2ZhVsz+/mtTy2hGWPG7SO8xzyvhMhkIhilk+IRCQMZ264ht/euZ2nZefOHmp2d8PdrUYSq5cHmFoXDJvZdwpOoyZ2Q7PC7Q7zoMqXx3cCwocxmMms92vM05wykrck2Mh5Oq37NjHESDDHRACsZj2WEZdGYV/+hTJjuS1+d7oc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755041908; c=relaxed/simple; bh=/Ytx/vrznCFwcwIM3KDLKoCSXhekVzIt67Ym7Aa03CU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=eMiaLWQRp0YuTDzc2h0lJS9Q+Y4J2KqBWY5K/09VbDhBjsCfvp5FyCX/rNOQ2kCCJCQWxQzW6lJphqnaR963ja7iBlTroRU1rU3AquLYGF5fUh9T1V2LaQL+3KK5nBObAoyJmf0E2LIj2mqivDadN75AilH2O+PN/0yuRzB2LQo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Imh6cHGV; arc=fail smtp.client-ip=40.107.102.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Imh6cHGV" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=g0lDQTFcJdUu1d3kZFPdXd6ezbGZMLjFXBFb6XTUo0uCo1o+2FfAasu5QnQrkrIJwpOFLZ9M5CXClo10fY4UtBoSWnwjqYU+teupmXSwi6cKrzY1Sv6VzJ691+hvSufGhPP4I62jZoEh0YvSm+Cyss9J4mB/NsB4TUtr2ou+PwhBPfGeLJ32s2V73j8aJyWpO79rPmSJx6InS8bVSq/ft2MmgvQ4nz0gIolMn7sHb4HHmMQB0GuJYwIw1SL4h4yIxIp05T6hBHopjphAyibNLuMzoyYjkHb8j6PtM8XqqR9hCLIyZp3HyyyB0ln0G5NnclLILYEgBNGr7v2KmT6Gkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pzXeE6fbJG4if83P2sUDSzaFmYJrNDbe/dcvCaRJdqs=; b=J03y8OjuhnE4jtJZ13V832BzZ5vYtCrrPLiYTfCtOa6+9wZ65F8v7EoMnYKaIgnCZGG3P3Mp1UcEnSqlPwUBuxRveuj25OtAGyP6Ud8eAjZXE6SDqYe1nMSYrVLJ4cHK9bLhUNAFyYFagCuH0jrsjutCOx0noeh0menxIpaEhXoRb7idsxLTJArEzKhyQ7KdYktJaGZ/K1E34Te16ImoZXuXOAm1LSemryWQxcP/4JGOEqmSohUv9xj79xcj/DDn122qpRn7h4ogVVfTgirV9Ej7XTSOuOwLXg4xlr4wa9bxgx1eCiPoNOLfbd7UGfXvjDVYNjkwmTtcOAfgB3aCdg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pzXeE6fbJG4if83P2sUDSzaFmYJrNDbe/dcvCaRJdqs=; b=Imh6cHGVs/ujYo7AkzYrzcHuVICMEQMXrPPXdEmhTHGgih1+B50ioagbUhFY8Ef7zIOTe8Hisoz/7I5CxDUI48eXwQZm2vYktjG2fbYfmljol/zX/XfPvd44En74rAKeXGBrfkZyvRuXVwHjBoAeLeUQdOyF/x7pk9jCnFTf8T6PjwSyPzPTgJrUs4EK8QACIo2gTOzwze2CuTneWAcvzCv55lTqX6kU4wZ6TJ+f7XPFfdXW/6MPMWdFMBfATE7Asjes24gQgdPmmS6fBZJTcStKYQ4ysv1rJfkEOZd0tBgKmm2gjOWWhi14V8fowyAxwI/6w7xL+csoq4X5kVINaQ== Received: from MW4PR04CA0330.namprd04.prod.outlook.com (2603:10b6:303:82::35) by DS7PR12MB6142.namprd12.prod.outlook.com (2603:10b6:8:9a::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.13; Tue, 12 Aug 2025 23:38:21 +0000 Received: from MWH0EPF000971E8.namprd02.prod.outlook.com (2603:10b6:303:82:cafe::a2) by MW4PR04CA0330.outlook.office365.com (2603:10b6:303:82::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.15 via Frontend Transport; Tue, 12 Aug 2025 23:38:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by MWH0EPF000971E8.mail.protection.outlook.com (10.167.243.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.11 via Frontend Transport; Tue, 12 Aug 2025 23:38:20 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Tue, 12 Aug 2025 16:38:07 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Tue, 12 Aug 2025 16:38:06 -0700 Received: from build-bwicaksono-focal-20241114.internal (10.127.8.12) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Tue, 12 Aug 2025 16:38:06 -0700 From: Besar Wicaksono To: CC: , , , , , , , , , , , , "Besar Wicaksono" Subject: [PATCH 2/5] perf/arm_cspmu: Add callback to reset filter config Date: Tue, 12 Aug 2025 23:34:08 +0000 Message-ID: <20250812233411.1694012-3-bwicaksono@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250812233411.1694012-1-bwicaksono@nvidia.com> References: <20250812233411.1694012-1-bwicaksono@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000971E8:EE_|DS7PR12MB6142:EE_ X-MS-Office365-Filtering-Correlation-Id: f12e630d-07f7-4451-5787-08ddd9f9526c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Exq5TMNuoy3C0+4WH93q9guVM6azv0cSNTduBZRMODNIDOtfuhvyyMfbWYRi?= =?us-ascii?Q?sMLAMty+3vZLkd3SiYvIGs/Ys3ZDqugz4WGPLxe23+qOdrApWFT324VW4kFb?= =?us-ascii?Q?90s00BwNQeQWhrMAF/aBMcdOJKQppeyytYVwX9pNLXTfS4ba2EEpsnqQNdG2?= =?us-ascii?Q?pDrlFOoviPaF31yIHM3kSttM3XKuZ4+embOFb1njqocTrfImJifpn/2zDtDg?= =?us-ascii?Q?6RR2FwPRrZ1ZMusxDte38wRXACsOix+h1VCoG3WV63j0DgemYfqsXJ4ztsGZ?= =?us-ascii?Q?x7hJ0mODsEjLqoBYtJj0Y8wPgm0vy9QGu4v1wqZQ65wAlmzkc5WpyhFJuFK4?= =?us-ascii?Q?2ciTbWDSjcjO2rQ1ujdovnFJk63K9HDckIIjF3KMxnsh0qRr7JQtirYijsSG?= =?us-ascii?Q?A9PIeb+EDgVKbAE4adbQ1QxRk6AVIs9GXXB5yhwKq3GYA2zc/fRdEC9eqenz?= =?us-ascii?Q?EECZpaBY6jP5tNPr+ZjGIGBwHXX0tT98IY/hmWBAXBZIu5d3Kkf1fO63WqGk?= =?us-ascii?Q?ZcJ13s7siII5tkpOH8nYcOF8nXqdDhxGibhKEXPl5AHip5NH8+FUY5moj+Ag?= =?us-ascii?Q?/PMT7Wx1kbjNrtH+P6WFJEqAmXJPHWEX95RDBj+eUT+YZTj/ItX2TtIXhmHs?= =?us-ascii?Q?Gaqw7pbjDoNP3bWHo2PfKUV2tcylbS5ZQ8agQ6ilu5Q74W4j4M36RtXN0VLR?= =?us-ascii?Q?RbcYrBoC6FJU29EzaY8f82lQtnA4zfxn4Cmx3O843s1m7nIW4KKVrgGa2VrR?= =?us-ascii?Q?9Pc+KWjfxGL8NkO1UMX7RqlAjb1RQIZfDyOvbliHfq8wXrxAUWFbKPC05xkC?= =?us-ascii?Q?Pc5tw+/yXgGV/PHcHpvh9kNiQe+l0nw8tO49Ur2r5Zm83yYrCghfwYbOJ9AF?= =?us-ascii?Q?QXVNvVcW5/iOvrNRHDRJzgRION3XPtCiHjzC8uPNRwdQhaKwaY8BPFG0oWrN?= =?us-ascii?Q?aQIeSYgWV7+gc+7xXkitNDYHoIe2hM6l6bKhHhVIODW3mF2gM/VD0v2sY8tl?= =?us-ascii?Q?3AFPAZkgJKpOXeRU6+GGCEoFjK6AeodxzC6JVuoCFHp/K8+LKQRGWyEsraCX?= =?us-ascii?Q?pZhJm8PwnL0rgUJnu1PNWzcqubj45IYUuBS48WONFp0XQ7B1N4PXXJVoV7bb?= =?us-ascii?Q?df+4NyXxnepc4s7QnQp0/7/x03Q3/ppdxCOpC1roofQ14hHLIpk6zwAwt0GL?= =?us-ascii?Q?pr0KvRWHEMkaomcPQkH1k78exQgt0g5KsUgUIpfC9lL/PQg7FJnVPaHjkJq6?= =?us-ascii?Q?ZaCcco5VUy549LCnLjrjUpC1+OEg16GJiMRMCxXlXNSmWor8djWyL9yORt8V?= =?us-ascii?Q?pwnrinXyXBQ0027hDfHD6IjSqHDOA05P5/nbmPMQER4FNtshGYvQqWh4OCob?= =?us-ascii?Q?9iLWF5JdemE+xKbgH6Um8kHsSrdNv9AiPI4Ar51Cf4aqNuDJ/K8CM20dCWTz?= =?us-ascii?Q?LLUdm+c6f/hUpgtN4gXASZoc1BJ6Rke3JfvzrRP28QiH/ZPVBw7pedB4U7rw?= =?us-ascii?Q?89xOMXjo7qg8XU+PM1Hrznktj3dbqu/9Ahre?= X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 23:38:20.8532 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f12e630d-07f7-4451-5787-08ddd9f9526c X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000971E8.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6142 Content-Type: text/plain; charset="utf-8" Implementer may need to reset a filter config when stopping a counter, thus adding a callback for this. Signed-off-by: Besar Wicaksono --- drivers/perf/arm_cspmu/arm_cspmu.c | 4 ++++ drivers/perf/arm_cspmu/arm_cspmu.h | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/ar= m_cspmu.c index e4b98cfa606c..595e4bdd0b4b 100644 --- a/drivers/perf/arm_cspmu/arm_cspmu.c +++ b/drivers/perf/arm_cspmu/arm_cspmu.c @@ -816,6 +816,10 @@ static void arm_cspmu_stop(struct perf_event *event, i= nt pmu_flags) return; =20 arm_cspmu_disable_counter(cspmu, hwc->idx); + + if (cspmu->impl.ops.reset_ev_filter) + cspmu->impl.ops.reset_ev_filter(cspmu, event); + arm_cspmu_event_update(event); =20 hwc->state |=3D PERF_HES_STOPPED | PERF_HES_UPTODATE; diff --git a/drivers/perf/arm_cspmu/arm_cspmu.h b/drivers/perf/arm_cspmu/ar= m_cspmu.h index 36c1dcce33d6..e3a4dd068805 100644 --- a/drivers/perf/arm_cspmu/arm_cspmu.h +++ b/drivers/perf/arm_cspmu/arm_cspmu.h @@ -153,11 +153,13 @@ struct arm_cspmu_impl_ops { bool (*is_cycle_counter_event)(const struct perf_event *event); /* Decode event type/id from configs */ u32 (*event_type)(const struct perf_event *event); - /* Set event filters */ + /* Set/reset event filters */ void (*set_cc_filter)(struct arm_cspmu *cspmu, const struct perf_event *event); void (*set_ev_filter)(struct arm_cspmu *cspmu, const struct perf_event *event); + void (*reset_ev_filter)(struct arm_cspmu *cspmu, + const struct perf_event *event); /* Implementation specific event validation */ int (*validate_event)(struct arm_cspmu *cspmu, struct perf_event *event); --=20 2.47.0 From nobody Sat Oct 4 21:05:28 2025 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2045.outbound.protection.outlook.com [40.107.243.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E4B352D7817; Tue, 12 Aug 2025 23:38:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755041910; cv=fail; b=RHhg/GXLXFNLfrEh4fvxElmJ6cugLs6Dla4WzSjAlxvk3MaXxIOLnHZq/yqZY+9nAoSVdn6+Vdb7burmzUgH8YD/6XrUwc/PXymwELEMc5ocviLR3k+AK0LRu3kegL2F8UvDUTszngBd+DIomPDote0nju9BV+i5uCsyURG9nD8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755041910; c=relaxed/simple; bh=tRMMbliGRt3qDWq9qcYj6mPpINF4OEINWRm5l/ijz5w=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=kavTk+Dpjuo18AWQ27zkoPXD93KvgBXtkKfzgOhod6IKTTdcpaZZk4Jv36tmWj3sNnXq7VQBZyFDo1qd5GVbhDj0cJRPEE9OP4rLz4MQh5+nxftA3wJebvjHNaH3FujDEaf0uGIKs/6RqSWQL7tIl+yWDzSE1RXo7zJzNIJgYnU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=XAGwfr2N; arc=fail smtp.client-ip=40.107.243.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="XAGwfr2N" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qV+LQnTVy9A/ajjWVkKeX8z9CJWidUugKjnmEhsSKS1hNdpa47Olv5Kp0CYwywSEi1fdEHk+TxtSnelL3wc2Wd0qGs9F7xu4JpnGwfYPaX1Ewv6bB6mmGHUrQLTQt12MRbJjCh1USm+cF+bRIZV6TwPEwy0syFOk59t44lWJcCaVY22DDb3cwZErrBPpBwWWuBCImQ+lH/DRxupxnwCM6jV/e6s5KBhBw0ekrgnVjWfInEMCkJ772eWdz5vuMM2gQXtpwCtxxEwoCOr2FVD/LbV+be0rWnt2Tr2HI2qXbxErfnjX4c3gpSD9BZQkL948GUbAs3dtV/5jegdmMijCLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UzDzDJeBZoAP8HwBpIf/Koyyztj9/rRxu1JuawWohfM=; b=yld0cg9eVYy2TxJcAlNfKdouyeWAe8ZquFiO/WuOKTXrXlJY0FzOOx2y3vSZAWqsOtbHHJw/C3t0A663S7L32Wn9L4kHojhbiZYhrB2jDr2zIQKwOlDQCIRBtAbUrjQNFoY7hdA2u/j33h+8sM+89gvFFmlu6blDxFtgVE+5fSuAxHUaSDwHDRx4R4vv+r8j8K7cRkSQt1389il29hv15/8uliqyPY7lxGRK/a0CcFYou2+QV4+udCHoYace0oZA++rjaaEFuabUepsLjoGS8g0i0c3OzZfkyQmPXaXu+bGvGOvsf0Cxp3x/krrGgBaQxN7qbWiVrSBH7BZgGWRLgA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UzDzDJeBZoAP8HwBpIf/Koyyztj9/rRxu1JuawWohfM=; b=XAGwfr2NjKrLyxCn1G728wJGFUERVZ7DKLmVkyYtmnNyNlfQvW/y1vhl1fOwNtGl0miaeId2d0tQWfy265V8fGRXvVYHhaJUu01wDRviPZkftc7AGpdxtjGO2ODRbjDRHqcQmII+Y2BvBQD8ZFiv8HqXZeCbv/OVYdfEgC1Wfs9TlBAqfXRNOYtCGEpu6y9ZmWt3UszI5TGMMhb78JDn9u98IDuOBZQc4YEzKbA/MgxverHkva0ukGLohSzLeyYDXKgdhQ0olLsl2wQgqZCsUICd0nvxVilmsF7W0C/WJlK1wynU1YfiL+GiefMCmJASaDV9713E0vO2mvhqYYbN7g== Received: from MW4PR04CA0307.namprd04.prod.outlook.com (2603:10b6:303:82::12) by BL4PR12MB9722.namprd12.prod.outlook.com (2603:10b6:208:4ed::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.13; Tue, 12 Aug 2025 23:38:25 +0000 Received: from MWH0EPF000971E8.namprd02.prod.outlook.com (2603:10b6:303:82:cafe::71) by MW4PR04CA0307.outlook.office365.com (2603:10b6:303:82::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.14 via Frontend Transport; Tue, 12 Aug 2025 23:38:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by MWH0EPF000971E8.mail.protection.outlook.com (10.167.243.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.11 via Frontend Transport; Tue, 12 Aug 2025 23:38:25 +0000 Received: from drhqmail202.nvidia.com (10.126.190.181) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Tue, 12 Aug 2025 16:38:11 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail202.nvidia.com (10.126.190.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Tue, 12 Aug 2025 16:38:10 -0700 Received: from build-bwicaksono-focal-20241114.internal (10.127.8.12) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Tue, 12 Aug 2025 16:38:10 -0700 From: Besar Wicaksono To: CC: , , , , , , , , , , , , "Besar Wicaksono" Subject: [PATCH 3/5] perf/arm_cspmu: Add pmpidr support Date: Tue, 12 Aug 2025 23:34:09 +0000 Message-ID: <20250812233411.1694012-4-bwicaksono@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250812233411.1694012-1-bwicaksono@nvidia.com> References: <20250812233411.1694012-1-bwicaksono@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000971E8:EE_|BL4PR12MB9722:EE_ X-MS-Office365-Filtering-Correlation-Id: e2d32f47-b23c-4cb7-06f9-08ddd9f95522 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?iTWCoNWErRZDfcAUXn0v39OdWspv7AowONHf0GylEpCj1Q52NPdO8eYs/pyF?= =?us-ascii?Q?T6c0nKoOTPAqHlW8Xmxz/35tLVncFrBF3T/v93gC5ZBVnPXghl4GTEhYhM6v?= =?us-ascii?Q?SaJCPxXUGn/Jy59lwVGwg0tqGIp6oZ/1ht8XcmJAPPZPsN+dkiAlSctBwh1n?= =?us-ascii?Q?V/uM9k4jP+CxR1VIK8vbly66pnhXUlzSY6iXHXouWK2/8NEaHzQ8dsCNtVUh?= =?us-ascii?Q?OWI1P6x/u8He5kIVcusnADM98lURmEUn14DlenzSfk52wdGy6Kfl/9p8ydNJ?= =?us-ascii?Q?/5/yo2BHnHiXz9oTgs7lxLol4YwG5NBSgLTut4AMwkpdY7lkSGu9tkLarfN1?= =?us-ascii?Q?VwsHs2OL9FLPlgllLcwvzFPa89WRv3vcWKbcp7c5mEHzV25nWi1HvIHYGJoc?= =?us-ascii?Q?AeRb9jMoH9w+0TzJtV4+9NP5y+rVx1KkttckdNd92YKxX3irXohN0LA1tny8?= =?us-ascii?Q?MSqRotwR8yeX8k4jLcKh4Jg+ToO7JEWYqtmiY3M3pakAqlofjaGLuTNpd978?= =?us-ascii?Q?miVuqsKIC3seORUOQP/ndBbFmBRODmVVx/wFESxN239Msj7v+6sjC+L4EJho?= =?us-ascii?Q?7y5qeWEVzGaJpVelPvQ+n5gJXkfOn3QhodHG4bPYdxm72ZQ5/ctbrl/vB4I4?= =?us-ascii?Q?W917ErtbPvGTYHALFXoOLC/15ETiUd1BQ/jjECupxjlr3KVXI8s8DMbs6GKd?= =?us-ascii?Q?mtA+jyrDI6DMdu/rc0BoEi+ocM6iB/6ZL+1q6Eur2HPt04ajXEIHdYJrnlWl?= =?us-ascii?Q?JlyyLUTQJ9/K0GKfBglmsW6jZ2xdXZoQWTDSMWZsnysK5+QnObRe/YANjbGo?= =?us-ascii?Q?WcPW9sNgCD4Uy7eP/UJshfG6xe9N9dNUcLzOKqcreaTHBu+J3ewCbT+tcIBs?= =?us-ascii?Q?9RLl7YmSrD3iZF/wrfdPBYuXxzbBnrHvro0SwOW9HcZKqZ6MG3X4Nat+en4t?= =?us-ascii?Q?pj5KwdGU/QSqunjGkEUXwX9Ns2gp2UNYaa6JcwNYLEwEYbKIvdLZPi7xSzK8?= =?us-ascii?Q?78/cNsZ8a9ApU3vwRgQo6qE+2gdq3yYdyoe2ltCisC9evAZ2hhYhGouLUYUV?= =?us-ascii?Q?GjAFPYhB2kOziWMkEFnns1vorq4XwpMZ0Dd53k4Mrkd9bLBI2lOPg/YLKMgy?= =?us-ascii?Q?dda4cekIHIXKB2P0QahD8jjd5rBg2s8BGHq8+LDMKicvfyL8nnZJPTvy9a25?= =?us-ascii?Q?7Ydn4psYqM0V7oy1hrdEN7raY71Ce7DhRwXGs83gTbcPyw0QbqFPIpya2RMV?= =?us-ascii?Q?akqsMR0ojKYyH8G/91o9p/G519JNtx0nUfrJEHIJ0Ofh/HePLOX2Ha/21R6v?= =?us-ascii?Q?Mh0aUbDBh9oiQbghIlaXZ0e+gZm+usGYq7d9Iqug61pwJTLqIVq+sTSYGmuN?= =?us-ascii?Q?UzLEjGNe0/f/ITS3c1972ALNVvI4rtiERKTa1mplS0Vq07zasR9Y2b+2vLPc?= =?us-ascii?Q?59GJB8sFqwmwg5X9Lrk/noaliP3fLBzhZGUpkDXN6EzGdYt7TR04qQDmmXhh?= =?us-ascii?Q?IrK3fhHj1RxgTt3emNb34Sf9YFIOpER8vQf8?= X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 23:38:25.3843 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e2d32f47-b23c-4cb7-06f9-08ddd9f95522 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000971E8.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR12MB9722 Content-Type: text/plain; charset="utf-8" The PMIIDR value is composed by the values in PMPIDR registers. We can use PMPIDR registers as alternative for device identification for systems that do not implement PMIIDR. Signed-off-by: Besar Wicaksono Reviewed-by: Ilkka Koskinen --- drivers/perf/arm_cspmu/arm_cspmu.c | 44 +++++++++++++++++++++++++-- drivers/perf/arm_cspmu/arm_cspmu.h | 35 +++++++++++++++++++-- drivers/perf/arm_cspmu/nvidia_cspmu.c | 2 +- 3 files changed, 75 insertions(+), 6 deletions(-) diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/ar= m_cspmu.c index 595e4bdd0b4b..347aefbd1704 100644 --- a/drivers/perf/arm_cspmu/arm_cspmu.c +++ b/drivers/perf/arm_cspmu/arm_cspmu.c @@ -323,14 +323,14 @@ static struct arm_cspmu_impl_match impl_match[] =3D { { .module_name =3D "nvidia_cspmu", .pmiidr_val =3D ARM_CSPMU_IMPL_ID_NVIDIA, - .pmiidr_mask =3D ARM_CSPMU_PMIIDR_IMPLEMENTER, + .pmiidr_mask =3D PMIIDR_IMPLEMENTER, .module =3D NULL, .impl_init_ops =3D NULL, }, { .module_name =3D "ampere_cspmu", .pmiidr_val =3D ARM_CSPMU_IMPL_ID_AMPERE, - .pmiidr_mask =3D ARM_CSPMU_PMIIDR_IMPLEMENTER, + .pmiidr_mask =3D PMIIDR_IMPLEMENTER, .module =3D NULL, .impl_init_ops =3D NULL, }, @@ -352,6 +352,44 @@ static struct arm_cspmu_impl_match *arm_cspmu_impl_mat= ch_get(u32 pmiidr) return NULL; } =20 +static u32 arm_cspmu_get_pmiidr(struct arm_cspmu *cspmu) +{ + u32 pmiidr, pmpidr; + + pmiidr =3D readl(cspmu->base0 + PMIIDR); + + if (pmiidr !=3D 0) + return pmiidr; + + /* Construct PMIIDR value from PMPIDRs. */ + + pmpidr =3D readl(cspmu->base0 + PMPIDR0); + pmiidr |=3D FIELD_PREP(PMIIDR_PRODUCTID_PART_0, + FIELD_GET(PMPIDR0_PART_0, pmpidr)); + + pmpidr =3D readl(cspmu->base0 + PMPIDR1); + pmiidr |=3D FIELD_PREP(PMIIDR_PRODUCTID_PART_1, + FIELD_GET(PMPIDR1_PART_1, pmpidr)); + pmiidr |=3D FIELD_PREP(PMIIDR_IMPLEMENTER_DES_0, + FIELD_GET(PMPIDR1_DES_0, pmpidr)); + + pmpidr =3D readl(cspmu->base0 + PMPIDR2); + pmiidr |=3D FIELD_PREP(PMIIDR_VARIANT, + FIELD_GET(PMPIDR2_REVISION, pmpidr)); + pmiidr |=3D FIELD_PREP(PMIIDR_IMPLEMENTER_DES_1, + FIELD_GET(PMPIDR2_DES_1, pmpidr)); + + pmpidr =3D readl(cspmu->base0 + PMPIDR3); + pmiidr |=3D FIELD_PREP(PMIIDR_REVISION, + FIELD_GET(PMPIDR3_REVAND, pmpidr)); + + pmpidr =3D readl(cspmu->base0 + PMPIDR4); + pmiidr |=3D FIELD_PREP(PMIIDR_IMPLEMENTER_DES_2, + FIELD_GET(PMPIDR4_DES_2, pmpidr)); + + return pmiidr; +} + #define DEFAULT_IMPL_OP(name) .name =3D arm_cspmu_##name =20 static int arm_cspmu_init_impl_ops(struct arm_cspmu *cspmu) @@ -362,7 +400,7 @@ static int arm_cspmu_init_impl_ops(struct arm_cspmu *cs= pmu) =20 /* Start with a default PMU implementation */ cspmu->impl.module =3D THIS_MODULE; - cspmu->impl.pmiidr =3D readl(cspmu->base0 + PMIIDR); + cspmu->impl.pmiidr =3D arm_cspmu_get_pmiidr(cspmu); cspmu->impl.ops =3D (struct arm_cspmu_impl_ops) { DEFAULT_IMPL_OP(get_event_attrs), DEFAULT_IMPL_OP(get_format_attrs), diff --git a/drivers/perf/arm_cspmu/arm_cspmu.h b/drivers/perf/arm_cspmu/ar= m_cspmu.h index e3a4dd068805..7eb150abc3b7 100644 --- a/drivers/perf/arm_cspmu/arm_cspmu.h +++ b/drivers/perf/arm_cspmu/arm_cspmu.h @@ -87,6 +87,11 @@ #define PMCFGR 0xE00 #define PMCR 0xE04 #define PMIIDR 0xE08 +#define PMPIDR0 0xFE0 +#define PMPIDR1 0xFE4 +#define PMPIDR2 0xFE8 +#define PMPIDR3 0xFEC +#define PMPIDR4 0xFD0 =20 /* PMCFGR register field */ #define PMCFGR_NCG GENMASK(31, 28) @@ -116,8 +121,34 @@ #define PMCR_E BIT(0) =20 /* PMIIDR register field */ -#define ARM_CSPMU_PMIIDR_IMPLEMENTER GENMASK(11, 0) -#define ARM_CSPMU_PMIIDR_PRODUCTID GENMASK(31, 20) +#define PMIIDR_IMPLEMENTER GENMASK(11, 0) +#define PMIIDR_IMPLEMENTER_DES_0 GENMASK(3, 0) +#define PMIIDR_IMPLEMENTER_DES_1 GENMASK(6, 4) +#define PMIIDR_IMPLEMENTER_DES_2 GENMASK(11, 8) +#define PMIIDR_REVISION GENMASK(15, 12) +#define PMIIDR_VARIANT GENMASK(19, 16) +#define PMIIDR_PRODUCTID GENMASK(31, 20) +#define PMIIDR_PRODUCTID_PART_0 GENMASK(27, 20) +#define PMIIDR_PRODUCTID_PART_1 GENMASK(31, 28) + +/* PMPIDR0 register field */ +#define PMPIDR0_PART_0 GENMASK(7, 0) + +/* PMPIDR1 register field */ +#define PMPIDR1_DES_0 GENMASK(7, 4) +#define PMPIDR1_PART_1 GENMASK(3, 0) + +/* PMPIDR2 register field */ +#define PMPIDR2_REVISION GENMASK(7, 4) +#define PMPIDR2_DES_1 GENMASK(2, 0) + +/* PMPIDR3 register field */ +#define PMPIDR3_REVAND GENMASK(7, 4) +#define PMPIDR3_CMOD GENMASK(3, 0) + +/* PMPIDR4 register field */ +#define PMPIDR4_SIZE GENMASK(7, 4) +#define PMPIDR4_DES_2 GENMASK(3, 0) =20 /* JEDEC-assigned JEP106 identification code */ #define ARM_CSPMU_IMPL_ID_NVIDIA 0x36B diff --git a/drivers/perf/arm_cspmu/nvidia_cspmu.c b/drivers/perf/arm_cspmu= /nvidia_cspmu.c index dc6d4e3e2a1b..b6cec351a142 100644 --- a/drivers/perf/arm_cspmu/nvidia_cspmu.c +++ b/drivers/perf/arm_cspmu/nvidia_cspmu.c @@ -322,7 +322,7 @@ static int nv_cspmu_init_ops(struct arm_cspmu *cspmu) if (!ctx) return -ENOMEM; =20 - prodid =3D FIELD_GET(ARM_CSPMU_PMIIDR_PRODUCTID, cspmu->impl.pmiidr); + prodid =3D FIELD_GET(PMIIDR_PRODUCTID, cspmu->impl.pmiidr); =20 /* Find matching PMU. */ for (; match->prodid; match++) { --=20 2.47.0 From nobody Sat Oct 4 21:05:28 2025 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2071.outbound.protection.outlook.com [40.107.236.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 967232E2841; Tue, 12 Aug 2025 23:38:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.71 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755041919; cv=fail; b=HNOsXyTyUR1hLkVG/CsQAiYZcWCEfUTnxqu63tBPcKIXeFgDL5KjzZmwgl2dk1+7RvavSnbBScoV3u/BoPHFBaRdMoEmGOb4TI2BuzU/SMp1y9LjZHBcIoFL5hdr8ZP5KeIYkFbV/biz+Mfu4CFZxF1NFsm07xhLiS/Af6VDinE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755041919; c=relaxed/simple; bh=ofRgUBVyGEA2F5IfZd6c5rpxQ8fHhTIdOmodKP80trA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=gS0WhtOjIsM5R+okkRavhsF7e394tbD0HeicyZapUjfsUUsArmNfdt9TG4jpqxKkhUvJ2zVi9gD2Yyklib3bIs36KHzGI0C8oGk/2yPxY73feVD8o3nAjXvtA7fNMtbgMQOFiaJ50Jv9FQ/MrKoHwIJOjY93qi6cHTH4lEb4wnM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=RlxhnSpB; arc=fail smtp.client-ip=40.107.236.71 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="RlxhnSpB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=o3ks3NTP/+e5p8jtpJkaEZTzXK3KHoq1du9q+0WxRuqmkOK3gppVy0Jt3v6lErFQFN6b57xfUMh5ICN/saI6TEyzMZqG8npjl8veFfrWZNEvYj5+tUWVk/2CbK3P2xOXl+j/wYalHxxiBDpkMJwkFXFG0xiU9qhdDkfHdyewJSZ+zvxnF6ZfIGVYYzixzbFHR86UbWbILD8nW9iSJEKquk3K0ty1o9IWRV9iCOPCSnNr4i0HD+vbZFSO0kDzYAcPyYIbFeLAXcMX+m5dntVajmBG5dr/OpR/NIIM+v7DALn900vizhNRj8PPvaTM5ohQPnxIwHtBW3+d7rrv/8JjMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NdUp20CwHo0CxEW1RUJltgWW6FBhD3qOFzZIfSD7jvY=; b=as0SZCTMGmj/ig9AKwy1bIVsmUkDKfspIdtQ4i749ArWaaKMnsxX9Dy1amGvxaLLgZhEWqdYBdQR7J6pOa++7E3BPjqh75cAh2RArSdSynr2N5aaEzX3IeZV1iruxr/n7NEDwUG/QYMaTC9jdSC/RFNl42JtLifvkcxkXyB5YaOCKUtmQ3TR9Z0G+dnCUVnuO47+uFKkwXLwHTKxcbvwnf/DJxCm3LQAVD9EzFbBRYt+Myuqw8y3d2XibZf6GzKyNgMoKyPjAvJKYqpW7j15kJBt9JJQfYaubnTyPf0qnu20n4xcJnVA1qipDi4ZcXKFycziT2HvJbnmvH1DnfJxbA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NdUp20CwHo0CxEW1RUJltgWW6FBhD3qOFzZIfSD7jvY=; b=RlxhnSpBfUSRjqAVsTA5cqB/sNBWEUdP2Wb1ByrCXOvs3v219J1ecosAK1E+ZbKOCaN8KfVjbROf6MF0DHNsJj2PdoFtOP3QChy5qr8vG4EPJ1q/GtrILs7lz+63r6svumo3A2sW1IySjI/qlbhp/7R7HaRKKlxZVjxDpINoN0b0V1QtK7o7Spohy1Z3t6yJTaRZ6Mer+RBjQvczCPKeTVE6/n+xoy9F3v5wI/87aCCoIn7i9rwLaf/khcOcDn5bhwopIiSv9LumxlinS9l0mVWlqMvesgCngLHASpoI9uBwDrHpQyiVjLbzviOuJAvKbe29hkHoFbxRxDDyBCbMBw== Received: from MW4PR04CA0314.namprd04.prod.outlook.com (2603:10b6:303:82::19) by SJ5PPF6375781D1.namprd12.prod.outlook.com (2603:10b6:a0f:fc02::995) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.20; Tue, 12 Aug 2025 23:38:27 +0000 Received: from MWH0EPF000971E8.namprd02.prod.outlook.com (2603:10b6:303:82:cafe::f9) by MW4PR04CA0314.outlook.office365.com (2603:10b6:303:82::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.14 via Frontend Transport; Tue, 12 Aug 2025 23:38:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by MWH0EPF000971E8.mail.protection.outlook.com (10.167.243.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.11 via Frontend Transport; Tue, 12 Aug 2025 23:38:27 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Tue, 12 Aug 2025 16:38:13 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Tue, 12 Aug 2025 16:38:13 -0700 Received: from build-bwicaksono-focal-20241114.internal (10.127.8.12) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Tue, 12 Aug 2025 16:38:13 -0700 From: Besar Wicaksono To: CC: , , , , , , , , , , , , "Besar Wicaksono" Subject: [PATCH 4/5] perf/arm_cspmu: nvidia: Add revision id matching Date: Tue, 12 Aug 2025 23:34:10 +0000 Message-ID: <20250812233411.1694012-5-bwicaksono@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250812233411.1694012-1-bwicaksono@nvidia.com> References: <20250812233411.1694012-1-bwicaksono@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000971E8:EE_|SJ5PPF6375781D1:EE_ X-MS-Office365-Filtering-Correlation-Id: 1484f458-7248-493a-8133-08ddd9f9565a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?61Bx7bUUdob2hcz6dY3DZBUeUQ4/qL9jZ0R6YAC93R4MbHO7d6E+mzPPhB99?= =?us-ascii?Q?WbhGtIjP85DF1ZzPnqUZZCIMeBJcVCGRuRnhUWniNjVFgB/7TdLHP1qP4jJd?= =?us-ascii?Q?eoNw7rFre2BRRsA/jFvhMmeZOJele/okHxIP9NohcxtHPgB4GtGTPU607WAq?= =?us-ascii?Q?otAF/GWqPqJatl9qyskwWsGdl7OfTdg882+cyJqWWHiKeVqd9MSBqXc2YSTY?= =?us-ascii?Q?079XKucGhJCq5stI+V8XxM7H35YBKSMTzwb9Zqcw1NUzD/D/5w9o+1of1jEz?= =?us-ascii?Q?rspidohe5HXG4Sx6oYAWWC4Eoah9Sd4e7LoxWgEOm07UuV6Bu3ZVFCnoqeHE?= =?us-ascii?Q?7xtqkU4WVOJKPCw2j3+B96lM/ne/eqUK/F225tQa/KMJ5GnexY/CK1CcBBwA?= =?us-ascii?Q?cI7zoFpSByDPz0Gni44uQXQq4kS6cyRwSXdsw2EkdcjEKXbI4sTPQKBn7DvH?= =?us-ascii?Q?xQIpumocZJNjTvKwj+2Ode8k7yWiasdVc/fwN4m8Tk1YBixsrm0phBA+dLIx?= =?us-ascii?Q?bhU5GQ/y4b9FIQSn3znJOmbPFCeRyQSGgoPnNaXK98GexZvFMb+UxyP4PUXs?= =?us-ascii?Q?ZIe4qVUtYGnqCnw50KDjJyp1HUAi+N3FFlnvDHPuriNPd1XwUpcTJs0vxE9o?= =?us-ascii?Q?e9clRg8HTx3zOhUXS/HdeaA/S7xbeFDCp/UtOTEdI0Jq3olljB3ZlH+0MbY0?= =?us-ascii?Q?LHj5W6Xm/GT7KOZgnUeDtXMSSxSRfhJ2IJxWBkgrZCtQPBMO9rDQwSeWPFY6?= =?us-ascii?Q?YFcgPTiCaUoBfbXgue0P995qjz3q0j8z21jzKNscy6pxojF/xnsi/1MR7BP/?= =?us-ascii?Q?066TnDYXenAHS6A2g5IzVRLE4R4r/dviWPdGrr4ae4/Tg/WpUZmnmsErkFVe?= =?us-ascii?Q?GDmwg2Exipy8kTl4pfCNYOtTaa9EmOr41gDh4P8SzQI7+dXi56CYO/TRcfjm?= =?us-ascii?Q?W7G1A0Xa2zWEViVJxv4vpDrxUGTyqJQdoPh9A7GCXvNAqVGBRjGiqorgXEv0?= =?us-ascii?Q?Cf3jg7PoZv3by4/jPiofLpBd3Y2GZ39TlGwDEmtc1uI9B8AgZ8OHN9psRvO9?= =?us-ascii?Q?kXCzrXd1+rZ+1TPckpDce9OkrMSdfx2rx8mb5O3QipMUKAyZxObnMx+QpGmO?= =?us-ascii?Q?uZQdYyfuXcjblXNDsW2uwy08Lyul97WkCS9Tn9eUtg5JiRJxGfmVgvSjHIgT?= =?us-ascii?Q?UJMwJEXTMnBYuzxcs6bm2PK2KDYXdiFYS2U8sm97gJRhk9fs2RWBEJvhKH2r?= =?us-ascii?Q?9GBazR/vhYa23e6GowTGPP3T1axcV+/ra/NTV7+Zuxhlkd53FZ3VWwCxIktv?= =?us-ascii?Q?4MwP+zUUxQqsElvUxSVP1Kuv6CRm/qp2W82kLfpOmVo0zHo1YoUXYEO5szYj?= =?us-ascii?Q?zbsy5q121I9vtfp6H2l+cksNnFC/hAOhmhHb0V7rT6jnDGSgD+0asaAMkn9C?= =?us-ascii?Q?2FaKyh8nEXsrVgsUWaxOXbQeCLnonraQwCsvmvNDVJzyopJLtAaZKE4DPd4p?= =?us-ascii?Q?ZcW1ACUauLgMZGEtcpsTSbm5fH1orUQVUNbp?= X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 23:38:27.4470 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1484f458-7248-493a-8133-08ddd9f9565a X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000971E8.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF6375781D1 Content-Type: text/plain; charset="utf-8" Distinguish NVIDIA devices by revision and variant bits in PMIIDR register in addition to product id. Signed-off-by: Besar Wicaksono Reviewed-by: Ilkka Koskinen --- drivers/perf/arm_cspmu/nvidia_cspmu.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/perf/arm_cspmu/nvidia_cspmu.c b/drivers/perf/arm_cspmu= /nvidia_cspmu.c index b6cec351a142..ac91dc46501d 100644 --- a/drivers/perf/arm_cspmu/nvidia_cspmu.c +++ b/drivers/perf/arm_cspmu/nvidia_cspmu.c @@ -23,7 +23,7 @@ =20 #define NV_GENERIC_FILTER_ID_MASK GENMASK_ULL(31, 0) =20 -#define NV_PRODID_MASK GENMASK(31, 0) +#define NV_PRODID_MASK (PMIIDR_PRODUCTID | PMIIDR_VARIANT | PMIIDR_REVISIO= N) =20 #define NV_FORMAT_NAME_GENERIC 0 =20 @@ -220,7 +220,7 @@ struct nv_cspmu_match { =20 static const struct nv_cspmu_match nv_cspmu_match[] =3D { { - .prodid =3D 0x103, + .prodid =3D 0x10300000, .prodid_mask =3D NV_PRODID_MASK, .filter_mask =3D NV_PCIE_FILTER_ID_MASK, .filter_default_val =3D NV_PCIE_FILTER_ID_MASK, @@ -230,7 +230,7 @@ static const struct nv_cspmu_match nv_cspmu_match[] =3D= { .format_attr =3D pcie_pmu_format_attrs }, { - .prodid =3D 0x104, + .prodid =3D 0x10400000, .prodid_mask =3D NV_PRODID_MASK, .filter_mask =3D NV_NVL_C2C_FILTER_ID_MASK, .filter_default_val =3D NV_NVL_C2C_FILTER_ID_MASK, @@ -240,7 +240,7 @@ static const struct nv_cspmu_match nv_cspmu_match[] =3D= { .format_attr =3D nvlink_c2c_pmu_format_attrs }, { - .prodid =3D 0x105, + .prodid =3D 0x10500000, .prodid_mask =3D NV_PRODID_MASK, .filter_mask =3D NV_NVL_C2C_FILTER_ID_MASK, .filter_default_val =3D NV_NVL_C2C_FILTER_ID_MASK, @@ -250,7 +250,7 @@ static const struct nv_cspmu_match nv_cspmu_match[] =3D= { .format_attr =3D nvlink_c2c_pmu_format_attrs }, { - .prodid =3D 0x106, + .prodid =3D 0x10600000, .prodid_mask =3D NV_PRODID_MASK, .filter_mask =3D NV_CNVL_FILTER_ID_MASK, .filter_default_val =3D NV_CNVL_FILTER_ID_MASK, @@ -260,7 +260,7 @@ static const struct nv_cspmu_match nv_cspmu_match[] =3D= { .format_attr =3D cnvlink_pmu_format_attrs }, { - .prodid =3D 0x2CF, + .prodid =3D 0x2CF00000, .prodid_mask =3D NV_PRODID_MASK, .filter_mask =3D 0x0, .filter_default_val =3D 0x0, @@ -312,7 +312,6 @@ static char *nv_cspmu_format_name(const struct arm_cspm= u *cspmu, =20 static int nv_cspmu_init_ops(struct arm_cspmu *cspmu) { - u32 prodid; struct nv_cspmu_ctx *ctx; struct device *dev =3D cspmu->dev; struct arm_cspmu_impl_ops *impl_ops =3D &cspmu->impl.ops; @@ -322,13 +321,12 @@ static int nv_cspmu_init_ops(struct arm_cspmu *cspmu) if (!ctx) return -ENOMEM; =20 - prodid =3D FIELD_GET(PMIIDR_PRODUCTID, cspmu->impl.pmiidr); - /* Find matching PMU. */ for (; match->prodid; match++) { const u32 prodid_mask =3D match->prodid_mask; =20 - if ((match->prodid & prodid_mask) =3D=3D (prodid & prodid_mask)) + if ((match->prodid & prodid_mask) =3D=3D + (cspmu->impl.pmiidr & prodid_mask)) break; } =20 --=20 2.47.0 From nobody Sat Oct 4 21:05:28 2025 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2053.outbound.protection.outlook.com [40.107.93.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4F1D12E284F; Tue, 12 Aug 2025 23:38:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755041917; cv=fail; b=FB+P198hxSDvrfiDoYJsHpf3M025Qfz+YroegyYTcyRaOwO6skA4MwRIkT1N5yvSKYtEQOnQ+Vzjbj6TOUOsSYqJWmQpm95GuCFBnOIXG+ui5y/SstmBFXmFNLzBHBE6Wtfx3c45m7FBiVG7TwjM2d8q95HnZBJK/siYwkcL2hs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755041917; c=relaxed/simple; bh=xhOubbpUQLz3Y/SDTa36Ypd8wE0Ldxke9IWsJ5ycwzE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=WUSQXk85zrv+HpZYF0l2/9xHtRD1zSY/EiYdlq8tOPvfucsMWYnsKy/25tHo0MBFuKtQRvVovPBty8jasyAfq6c/BqNzFumnfd0srJxJtnvXK2i6wTOXWj9rBIYdACcKLFwB0svyG/cHVNIPI5AYvobAUdfoAdWsik5lsLHgcAQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=a7pY77NV; arc=fail smtp.client-ip=40.107.93.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="a7pY77NV" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eUi7xjiYH7533Oig9+AuOy3h//uoZAscKBuuc44dFh/alq3zXUQ/py8Ow8r1eX1D7xUkICqzNgKFJGPkrpdzXupipWOWfEVPh5XM64H5gsRVvm57imfV8VPtpmL1+4u3FlMCpm9I1Heaxd71xLo8D48SVLTLhI2N6M1Y8nl9+wRpNAMuWKAN3Z9JkqZZ1L72JlwkmqVTak5+CK1r4H+OijDLl+1L8Ee+Z3QYWS/SbXtc2wjrCkDw8QbXyVx3lAUkOAy4+6Kj7t/f5voiTrlV7NkhIvMRxAx/I6GorwsIGTu1pTS/3G95N2bApwrmZzcRjyG+V+RNo6MjgvVWTme8RQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=VRVTO5TYKLQpXiJhmRSHeF6dodri11gdX5oSZiEhqSg=; b=K9OpGsVLwIRRnyxnbQNm1wtx5KRbD8Htt2Hao4L3rv2TmkM0JK+ufhJUGkcLbBfY+k5ArdjtYBerSAJurdOZNx58RoUUtwTZdWvxQQz+JUR2SOS2BXkJjJQQ2d+fqVbOGLrioV064x39slBiuDz0MhXhbTt9W4UnMcCm4/olILUOzVmqUZJvDxOiAkkRLr3DJiI+/6Ilg2sduz6N5cY2WwqLvbjSYLYJXlp2z7g74+Yt/xvXPl7nhcTulbH5B57UnBy5GWmJ3kNxpsGNz3j5P1VzC+HBzZwMlJ6m0puoGy/n5ehlQ1z6jUvCYAO+y7jZ3TDyG0OaSC6Hxo9HaWiOSA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VRVTO5TYKLQpXiJhmRSHeF6dodri11gdX5oSZiEhqSg=; b=a7pY77NVFMxKVpMEhYtAx6bkwQkQO60XwqB8qmziSsFG0t0vkrTfslcKnY9kfoR7qaFVEW+mvMU1IMyeWK9q3cBFzUMPinf0aVnAM1CZWhc/Q0wLBgHI3PbjkknNcYrUsySIAs7S9qyBbqNav96iA2Uk2kcs/j5a4gEVZoSnJjwOWDUuB4ZBCu0b+vtqH/LQohw8Tsm985meJC4sjk1vFWCVBsluQefDV1859768LBvxjZ3uvGfizz4hoqy+oF9JLzelIkmdcjIV8UbB93dZAUY0Q2To77taMvQK4ArQ3yziRjEdo+CXu8EbmsAPMOu1cL0PhhNooxA6F0NpB/5jmw== Received: from MW4PR04CA0323.namprd04.prod.outlook.com (2603:10b6:303:82::28) by DM4PR12MB8569.namprd12.prod.outlook.com (2603:10b6:8:18a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.18; Tue, 12 Aug 2025 23:38:31 +0000 Received: from MWH0EPF000971E8.namprd02.prod.outlook.com (2603:10b6:303:82:cafe::52) by MW4PR04CA0323.outlook.office365.com (2603:10b6:303:82::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.14 via Frontend Transport; Tue, 12 Aug 2025 23:38:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by MWH0EPF000971E8.mail.protection.outlook.com (10.167.243.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.11 via Frontend Transport; Tue, 12 Aug 2025 23:38:30 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Tue, 12 Aug 2025 16:38:16 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Tue, 12 Aug 2025 16:38:16 -0700 Received: from build-bwicaksono-focal-20241114.internal (10.127.8.12) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Tue, 12 Aug 2025 16:38:16 -0700 From: Besar Wicaksono To: CC: , , , , , , , , , , , , "Besar Wicaksono" Subject: [PATCH 5/5] perf/arm_cspmu: nvidia: Add pmevfiltr2 support Date: Tue, 12 Aug 2025 23:34:11 +0000 Message-ID: <20250812233411.1694012-6-bwicaksono@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250812233411.1694012-1-bwicaksono@nvidia.com> References: <20250812233411.1694012-1-bwicaksono@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000971E8:EE_|DM4PR12MB8569:EE_ X-MS-Office365-Filtering-Correlation-Id: cfd6033c-1df6-4382-a6b4-08ddd9f95846 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?IwCaLgg/yKAxuK+uUvGGFNP9Jut+yddtmmcC0YR4064jXJJZEHdLkmnWBHEW?= =?us-ascii?Q?mC3NIoFqqcFgGKO4jLhf2kYRrcPYfsiIS0usYJnpOFZCob0hZeM9/mpmBLcT?= =?us-ascii?Q?SRIdrtnValFR3f22M8vjWGJ03yza38lTeZZ32+I0CoyoNW0Iv2k/SPS2agbS?= =?us-ascii?Q?pyor9X6ASdcIfvr767dD0FS0n5a+YmTT4HZUdAto+Wjl+1hKDSl2OEtXFalY?= =?us-ascii?Q?WEoQytT+2j74lWWbiFcTuaHt8j4VusG9/O1geXhXsNOFBJy6mXdD7UkP7D4r?= =?us-ascii?Q?FrvJdnSl3KRDtER4dpXI7duUgpGs11Dh5+D0/Q4s57oLjVCiJovPyCx6P8yX?= =?us-ascii?Q?A/n1TfYDI7zOx1V0zRVXlEKDAR76oPco1IdnPwoM3HQnTYpfcqowx1Fm0tdJ?= =?us-ascii?Q?K84DsLvahD7lfqd0o7ToThFkZAn2q3OvrWCcnSBvds1EesuqOHtaL1+NisXz?= =?us-ascii?Q?mpq5bn4gs8kd9wj/MwIbYsOiyTt3+gWCTC+LOUpNE6vEJoO4hDKi9bB3eU50?= =?us-ascii?Q?36SXFhTFzeCNRsbYKQf4j7ApLY4MzwVfiN3OsNgQa1734jFA+bV5yQSC+WST?= =?us-ascii?Q?cJa8IInotjKxuRztzYVWy0KNOi0RxHB7xbZDo1U8dZ0FiIA9ti8szzdspcb5?= =?us-ascii?Q?m8Z7uRy4tS2xDU1PJ/BfgBBrXKF1m6k2qDudAtcHrVeCNFvAdBWD1X7VSfgo?= =?us-ascii?Q?uHpRmKGecGDI2bYcrrxqusjHEHxMrRD0Dfs4OftH5Bo3dKtzQUBZIidoLQ5I?= =?us-ascii?Q?5pOi5FU9oxYT1t1dfndfEtkaM7C9G73Fok31yXhuTn8aavoXdyxl7zhsUwOC?= =?us-ascii?Q?94WFpxsBD7UhfdeuKm6SGnlux5AL4PuR/qSXLSQftcV2ftFcz9ayNQ2/K3WK?= =?us-ascii?Q?/r607dEC1W1Z75VQdimahFkHckihYI0OzDCubOBO8zNu5lZ4k+u5BKmzvVLb?= =?us-ascii?Q?YWaeM+g/H6JCqx2u7WqFwUEx5NVUDnALJhx1puwaNertpLuWi/KY+asAqv7e?= =?us-ascii?Q?sSvZWN/uSmTleGf8mjoPiLOOUFYgm54QrWwHTah5oLwPJurfWQ6nzpJk8Kpd?= =?us-ascii?Q?CXMnKpyXGwzm3TFajycBuNel/KRsOBwaeOf2V+THx/jrQMKo0gjORH1Bcgrb?= =?us-ascii?Q?6peM45ni1j060mNRP3C2l8Oh2ZQj5bokL6vap4cAznx0chVL8gKOhAkseHOd?= =?us-ascii?Q?v2UW2hF7tJXQOh5rczx36mE/y64m8tI8ht0um1aHmiauP7oq/6Y2Jkwv+kQi?= =?us-ascii?Q?WwbkBD+29sJMCRtGbH4jrlGVLswpA8pXtgHjR5ZXPbJ1rjxTJgM9W4NkbQUV?= =?us-ascii?Q?tv9G2NSteTznjY69ejCSwx59pGC0KvpfRZ+lPDBt0WW6JBEDvFl4r5CTtAnS?= =?us-ascii?Q?jlL2VOu3O0UAED0GRm3/tLYyM4qerFSNDkOoQV7zgAca7ThfasmWlElfOCZm?= =?us-ascii?Q?eKOt9T1CQ1fxDN2vtbTi65uRCfPR3u0XRxOJAagPROP05oiBLQ65zyoYbjZD?= =?us-ascii?Q?wbNYNOKldxZdcJ8sFSkhJ3CNFXx2ond9SGjA?= X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 23:38:30.7283 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cfd6033c-1df6-4382-a6b4-08ddd9f95846 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000971E8.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8569 Content-Type: text/plain; charset="utf-8" Support NVIDIA PMU that utilizes the optional event filter2 register. Signed-off-by: Besar Wicaksono --- drivers/perf/arm_cspmu/nvidia_cspmu.c | 176 +++++++++++++++++++------- 1 file changed, 133 insertions(+), 43 deletions(-) diff --git a/drivers/perf/arm_cspmu/nvidia_cspmu.c b/drivers/perf/arm_cspmu= /nvidia_cspmu.c index ac91dc46501d..e06a06d3407b 100644 --- a/drivers/perf/arm_cspmu/nvidia_cspmu.c +++ b/drivers/perf/arm_cspmu/nvidia_cspmu.c @@ -40,10 +40,21 @@ =20 struct nv_cspmu_ctx { const char *name; - u32 filter_mask; - u32 filter_default_val; + struct attribute **event_attr; struct attribute **format_attr; + + u32 filter_mask; + u32 filter_default_val; + u32 filter2_mask; + u32 filter2_default_val; + + u32 (*get_filter)(const struct perf_event *event); + u32 (*get_filter2)(const struct perf_event *event); + + void *data; + + int (*init_data)(struct arm_cspmu *cspmu); }; =20 static struct attribute *scf_pmu_event_attrs[] =3D { @@ -144,6 +155,7 @@ static struct attribute *cnvlink_pmu_format_attrs[] =3D= { static struct attribute *generic_pmu_format_attrs[] =3D { ARM_CSPMU_FORMAT_EVENT_ATTR, ARM_CSPMU_FORMAT_FILTER_ATTR, + ARM_CSPMU_FORMAT_FILTER2_ATTR, NULL, }; =20 @@ -184,13 +196,36 @@ static u32 nv_cspmu_event_filter(const struct perf_ev= ent *event) return filter_val; } =20 +static u32 nv_cspmu_event_filter2(const struct perf_event *event) +{ + const struct nv_cspmu_ctx *ctx =3D + to_nv_cspmu_ctx(to_arm_cspmu(event->pmu)); + + const u32 filter_val =3D event->attr.config2 & ctx->filter2_mask; + + if (filter_val =3D=3D 0) + return ctx->filter2_default_val; + + return filter_val; +} + static void nv_cspmu_set_ev_filter(struct arm_cspmu *cspmu, const struct perf_event *event) { - u32 filter =3D nv_cspmu_event_filter(event); - u32 offset =3D PMEVFILTR + (4 * event->hw.idx); + u32 filter, offset; + const struct nv_cspmu_ctx *ctx =3D + to_nv_cspmu_ctx(to_arm_cspmu(event->pmu)); + offset =3D 4 * event->hw.idx; =20 - writel(filter, cspmu->base0 + offset); + if (ctx->get_filter) { + filter =3D ctx->get_filter(event); + writel(filter, cspmu->base0 + PMEVFILTR + offset); + } + + if (ctx->get_filter2) { + filter =3D ctx->get_filter2(event); + writel(filter, cspmu->base0 + PMEVFILT2R + offset); + } } =20 static void nv_cspmu_set_cc_filter(struct arm_cspmu *cspmu, @@ -210,74 +245,120 @@ enum nv_cspmu_name_fmt { struct nv_cspmu_match { u32 prodid; u32 prodid_mask; - u64 filter_mask; - u32 filter_default_val; const char *name_pattern; enum nv_cspmu_name_fmt name_fmt; - struct attribute **event_attr; - struct attribute **format_attr; + struct nv_cspmu_ctx template_ctx; + struct arm_cspmu_impl_ops ops; }; =20 static const struct nv_cspmu_match nv_cspmu_match[] =3D { { .prodid =3D 0x10300000, .prodid_mask =3D NV_PRODID_MASK, - .filter_mask =3D NV_PCIE_FILTER_ID_MASK, - .filter_default_val =3D NV_PCIE_FILTER_ID_MASK, .name_pattern =3D "nvidia_pcie_pmu_%u", .name_fmt =3D NAME_FMT_SOCKET, - .event_attr =3D mcf_pmu_event_attrs, - .format_attr =3D pcie_pmu_format_attrs + .template_ctx =3D { + .event_attr =3D mcf_pmu_event_attrs, + .format_attr =3D pcie_pmu_format_attrs, + .filter_mask =3D NV_PCIE_FILTER_ID_MASK, + .filter_default_val =3D NV_PCIE_FILTER_ID_MASK, + .filter2_mask =3D 0x0, + .filter2_default_val =3D 0x0, + .get_filter =3D nv_cspmu_event_filter, + .get_filter2 =3D NULL, + .data =3D NULL, + .init_data =3D NULL + }, }, { .prodid =3D 0x10400000, .prodid_mask =3D NV_PRODID_MASK, - .filter_mask =3D NV_NVL_C2C_FILTER_ID_MASK, - .filter_default_val =3D NV_NVL_C2C_FILTER_ID_MASK, .name_pattern =3D "nvidia_nvlink_c2c1_pmu_%u", .name_fmt =3D NAME_FMT_SOCKET, - .event_attr =3D mcf_pmu_event_attrs, - .format_attr =3D nvlink_c2c_pmu_format_attrs + .template_ctx =3D { + .event_attr =3D mcf_pmu_event_attrs, + .format_attr =3D nvlink_c2c_pmu_format_attrs, + .filter_mask =3D NV_NVL_C2C_FILTER_ID_MASK, + .filter_default_val =3D NV_NVL_C2C_FILTER_ID_MASK, + .filter2_mask =3D 0x0, + .filter2_default_val =3D 0x0, + .get_filter =3D nv_cspmu_event_filter, + .get_filter2 =3D NULL, + .data =3D NULL, + .init_data =3D NULL + }, }, { .prodid =3D 0x10500000, .prodid_mask =3D NV_PRODID_MASK, - .filter_mask =3D NV_NVL_C2C_FILTER_ID_MASK, - .filter_default_val =3D NV_NVL_C2C_FILTER_ID_MASK, .name_pattern =3D "nvidia_nvlink_c2c0_pmu_%u", .name_fmt =3D NAME_FMT_SOCKET, - .event_attr =3D mcf_pmu_event_attrs, - .format_attr =3D nvlink_c2c_pmu_format_attrs + .template_ctx =3D { + .event_attr =3D mcf_pmu_event_attrs, + .format_attr =3D nvlink_c2c_pmu_format_attrs, + .filter_mask =3D NV_NVL_C2C_FILTER_ID_MASK, + .filter_default_val =3D NV_NVL_C2C_FILTER_ID_MASK, + .filter2_mask =3D 0x0, + .filter2_default_val =3D 0x0, + .get_filter =3D nv_cspmu_event_filter, + .get_filter2 =3D NULL, + .data =3D NULL, + .init_data =3D NULL + }, }, { .prodid =3D 0x10600000, .prodid_mask =3D NV_PRODID_MASK, - .filter_mask =3D NV_CNVL_FILTER_ID_MASK, - .filter_default_val =3D NV_CNVL_FILTER_ID_MASK, .name_pattern =3D "nvidia_cnvlink_pmu_%u", .name_fmt =3D NAME_FMT_SOCKET, - .event_attr =3D mcf_pmu_event_attrs, - .format_attr =3D cnvlink_pmu_format_attrs + .template_ctx =3D { + .event_attr =3D mcf_pmu_event_attrs, + .format_attr =3D cnvlink_pmu_format_attrs, + .filter_mask =3D NV_CNVL_FILTER_ID_MASK, + .filter_default_val =3D NV_CNVL_FILTER_ID_MASK, + .filter2_mask =3D 0x0, + .filter2_default_val =3D 0x0, + .get_filter =3D nv_cspmu_event_filter, + .get_filter2 =3D NULL, + .data =3D NULL, + .init_data =3D NULL + }, }, { .prodid =3D 0x2CF00000, .prodid_mask =3D NV_PRODID_MASK, - .filter_mask =3D 0x0, - .filter_default_val =3D 0x0, .name_pattern =3D "nvidia_scf_pmu_%u", .name_fmt =3D NAME_FMT_SOCKET, - .event_attr =3D scf_pmu_event_attrs, - .format_attr =3D scf_pmu_format_attrs + .template_ctx =3D { + .event_attr =3D scf_pmu_event_attrs, + .format_attr =3D scf_pmu_format_attrs, + .filter_mask =3D 0x0, + .filter_default_val =3D 0x0, + .filter2_mask =3D 0x0, + .filter2_default_val =3D 0x0, + .get_filter =3D nv_cspmu_event_filter, + .get_filter2 =3D NULL, + .data =3D NULL, + .init_data =3D NULL + }, }, { .prodid =3D 0, .prodid_mask =3D 0, - .filter_mask =3D NV_GENERIC_FILTER_ID_MASK, - .filter_default_val =3D NV_GENERIC_FILTER_ID_MASK, .name_pattern =3D "nvidia_uncore_pmu_%u", .name_fmt =3D NAME_FMT_GENERIC, - .event_attr =3D generic_pmu_event_attrs, - .format_attr =3D generic_pmu_format_attrs + .template_ctx =3D { + .event_attr =3D generic_pmu_event_attrs, + .format_attr =3D generic_pmu_format_attrs, + .filter_mask =3D NV_GENERIC_FILTER_ID_MASK, + .filter_default_val =3D NV_GENERIC_FILTER_ID_MASK, + .filter2_mask =3D NV_GENERIC_FILTER_ID_MASK, + .filter2_default_val =3D NV_GENERIC_FILTER_ID_MASK, + .get_filter =3D nv_cspmu_event_filter, + .get_filter2 =3D nv_cspmu_event_filter2, + .data =3D NULL, + .init_data =3D NULL + }, }, }; =20 @@ -310,6 +391,14 @@ static char *nv_cspmu_format_name(const struct arm_csp= mu *cspmu, return name; } =20 +#define SET_OP(name, impl, match, default_op) \ + do { \ + if (match->ops.name) \ + impl->name =3D match->ops.name; \ + else if (default_op !=3D NULL) \ + impl->name =3D default_op; \ + } while (false) + static int nv_cspmu_init_ops(struct arm_cspmu *cspmu) { struct nv_cspmu_ctx *ctx; @@ -330,20 +419,21 @@ static int nv_cspmu_init_ops(struct arm_cspmu *cspmu) break; } =20 - ctx->name =3D nv_cspmu_format_name(cspmu, match); - ctx->filter_mask =3D match->filter_mask; - ctx->filter_default_val =3D match->filter_default_val; - ctx->event_attr =3D match->event_attr; - ctx->format_attr =3D match->format_attr; + /* Initialize the context with the matched template. */ + memcpy(ctx, &match->template_ctx, sizeof(struct nv_cspmu_ctx)); + ctx->name =3D nv_cspmu_format_name(cspmu, match); =20 cspmu->impl.ctx =3D ctx; =20 /* NVIDIA specific callbacks. */ - impl_ops->set_cc_filter =3D nv_cspmu_set_cc_filter; - impl_ops->set_ev_filter =3D nv_cspmu_set_ev_filter; - impl_ops->get_event_attrs =3D nv_cspmu_get_event_attrs; - impl_ops->get_format_attrs =3D nv_cspmu_get_format_attrs; - impl_ops->get_name =3D nv_cspmu_get_name; + SET_OP(set_cc_filter, impl_ops, match, nv_cspmu_set_cc_filter); + SET_OP(set_ev_filter, impl_ops, match, nv_cspmu_set_ev_filter); + SET_OP(get_event_attrs, impl_ops, match, nv_cspmu_get_event_attrs); + SET_OP(get_format_attrs, impl_ops, match, nv_cspmu_get_format_attrs); + SET_OP(get_name, impl_ops, match, nv_cspmu_get_name); + + if (ctx->init_data) + return ctx->init_data(cspmu); =20 return 0; } --=20 2.47.0