From nobody Tue Dec 2 02:29:12 2025 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (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 A3D6B364EBF for ; Wed, 19 Nov 2025 16:18:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763569107; cv=none; b=rtkrE6dweOjeYnsJMtPHtZznQBgJ/56q3eyc/0yBdvG2fDYXZbFd2XqK6kHVnLxUP1tiQDsbnhHTlPIuGrAWBlEeQtIBrq87qM0DQuduvFo87PWgp50X6+5sa5jXq7rSFBA9c1krCzTBj9A8606x4idtvAfo9wMtUG/4g2ZBRsI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763569107; c=relaxed/simple; bh=y0uH2JIsR1ckKfT5XvBYCwc/pjH6dlHjIQGHKnw4WtE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=apH1qVz5G9G6UxqQE1swGYIrz1RTaWUSdHfkz95+IVAOvgPESDaFb3xalnkq3gz89QoAyyX0YxjA050+6gmemksv5V88DTBZbgRRa+gQ/CkldGY+Xjkuxr05vDqr4PYZdYU95AiYv38OWlG0whpo3oG7EWNMbfaAv4tVO8pMyy0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=YODsY75K; arc=none smtp.client-ip=209.85.128.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="YODsY75K" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-47755a7652eso47014455e9.0 for ; Wed, 19 Nov 2025 08:18:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1763569103; x=1764173903; 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=cJnX1IssBDUYwxbPMQpT21RQj6R52sfQCZ+gQVVjaes=; b=YODsY75K5zP2S95alPsqWdFJwU6Io4NGPA0G4uQOq9pf3CrtvoTXSRZJtWnyk3MYPD Cz4TrVnO7gHBMwHThbiiSwntLmohXsSwlBWhN/Ba2ojNBXoB7HM5fgo/wnzynBLB3FQN 8yWxc98z1qFwqRKYG7dImDj5RHXDzS4Rp1N4V/PuOD+w5j+0/n0MtTy8yiAGFCB5XY8l DaYF5Y5XoyYlj4VRGID34LDHUp3/AyJSNdbc4zb8KnM3IZrshAKZvR3cHsqOixsSXxJS l8OtIKbTTj72VNKMkNTEN2yvp3Tey6vSCt/sFeQ+Pp6VWpJ+y0I/O7i9xtaU7H5EADdG 4G+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763569103; x=1764173903; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=cJnX1IssBDUYwxbPMQpT21RQj6R52sfQCZ+gQVVjaes=; b=nPGUqW7BXSIUaEaCW/xpKXZX2mqvLWFr1B5t/c27s110/4rVWPpxOEe0TV4Sn2AiFJ T+zL5baMB7pyTm2P8wdsb1yJD+AChwQIQEOU5lrfEz78ael962hNUvbYMyLAFamXo853 GiTjgECQ6jFsbFz1QprTXCMGJjA+I9XI/c/TsonGrE0oJ5VfTAimKbA1KrneYUzPNWt9 M+cq02vdAFC5vgmWSmRfJQURa1jrikieJ65gxTUc+gaLXUGpA5eO3y3vDkDo93pBrD0n ljJdgS/BqSt3Y6Ug3at4RpqLyfI3FzDKbdtS6EwyFB0Yw6+Q+GkTgRVfMZ7eoIdlM2Zv g2mQ== X-Forwarded-Encrypted: i=1; AJvYcCW18I43PlL4sXhNhmyXbxe4vr/u1otjCuA8RsCDnhVcCOUOytsHUaT0qikpMERGiQZn/hS+4AttqW7EL94=@vger.kernel.org X-Gm-Message-State: AOJu0YzU5r1jMJR4v1LOaqvbsVk7dnXMZG/FPUGmeCgSAm14uWXC0hx6 hCUqrezB2Op8tYVR19bct41RbpQFRl7n41bnzLTTPYNFjG869p0U4MzUAmMGA0/fg1I= X-Gm-Gg: ASbGncsHUuk6/WLz5NJalpvEWF7OE6PrQmex0hhcypIMhDM+1BqpxrO8QxMzckf4tGg nuvPUC+4aVzpr6/oBumgkFNk7S1fzu+ARxzU2nRmMOUTP8PfgNCShfxLqkeyyNyQMv9iTbKHx0M /2O89h8qkjonhc7vkVK96BIXxdWjkd5FUkopGTXIp+EQ3yykGgn1G2gESEDidmr/w1U7Qoe8dSi XrbGjQ2BdpkLHdlkmuEL6LW67IKvcU2minX9Jm6qYfOKTBrb1QB51IHQG5fqtRQNmaYCSZl2mt2 cs1vYGWNDhfe8YclLLs3SvW99NgxJUpVIBJ3S/Lg/HWUTxyi7l9cnIM9pqlFw3ex324AyWgj+RN rad7rld2kHccg6bnPRz1UAotPTYYlrkwLkNoOu3cq75KGNrbGVi2Y/g5OqpNEBkqlnsjfQLjYP9 4FKQZxOaVhe8Zn6vr1Y9QhY/NKbtGmH1w= X-Google-Smtp-Source: AGHT+IERG1RqFDP/vomohLBpJJq4UxABCONp2aW0eCI+GJF8HXVx2/qdo6JpRsSGCuMFRUh2amzmJA== X-Received: by 2002:a05:600c:3105:b0:477:569c:34e9 with SMTP id 5b1f17b1804b1-4778fe95ff8mr203233935e9.23.1763569102729; Wed, 19 Nov 2025 08:18:22 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-477b10142d3sm63205425e9.5.2025.11.19.08.18.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Nov 2025 08:18:22 -0800 (PST) From: James Clark Date: Wed, 19 Nov 2025 16:18:00 +0000 Subject: [PATCH v6 04/13] coresight: Hide unused ETMv3 format attributes 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: <20251119-james-cs-syncfreq-v6-4-740d24a29e51@linaro.org> References: <20251119-james-cs-syncfreq-v6-0-740d24a29e51@linaro.org> In-Reply-To: <20251119-james-cs-syncfreq-v6-0-740d24a29e51@linaro.org> To: Suzuki K Poulose , Mike Leach , Alexander Shishkin , Jonathan Corbet , Leo Yan , Randy Dunlap Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 ETMv3 only has a few attributes, and setting unused ones results in an error, so hide them to begin with. Signed-off-by: James Clark --- drivers/hwtracing/coresight/coresight-etm-perf.c | 37 +++++++++++++-------= ---- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.c b/drivers/hwt= racing/coresight/coresight-etm-perf.c index 17afa0f4cdee..3805282b97e8 100644 --- a/drivers/hwtracing/coresight/coresight-etm-perf.c +++ b/drivers/hwtracing/coresight/coresight-etm-perf.c @@ -50,27 +50,23 @@ struct etm_ctxt { static DEFINE_PER_CPU(struct etm_ctxt, etm_ctxt); static DEFINE_PER_CPU(struct coresight_device *, csdev_src); =20 -/* - * The PMU formats were orignally for ETMv3.5/PTM's ETMCR 'config'; - * now take them as general formats and apply on all ETMs. - */ -PMU_FORMAT_ATTR(branch_broadcast, "config:"__stringify(ETM_OPT_BRANCH_BROA= DCAST)); PMU_FORMAT_ATTR(cycacc, "config:" __stringify(ETM_OPT_CYCACC)); -/* contextid1 enables tracing CONTEXTIDR_EL1 for ETMv4 */ -PMU_FORMAT_ATTR(contextid1, "config:" __stringify(ETM_OPT_CTXTID)); -/* contextid2 enables tracing CONTEXTIDR_EL2 for ETMv4 */ -PMU_FORMAT_ATTR(contextid2, "config:" __stringify(ETM_OPT_CTXTID2)); PMU_FORMAT_ATTR(timestamp, "config:" __stringify(ETM_OPT_TS)); PMU_FORMAT_ATTR(retstack, "config:" __stringify(ETM_OPT_RETSTK)); +PMU_FORMAT_ATTR(sinkid, "config2:0-31"); + +#if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) +PMU_FORMAT_ATTR(branch_broadcast, "config:"__stringify(ETM_OPT_BRANCH_BROA= DCAST)); +/* contextid1 enables tracing CONTEXTIDR_EL1*/ +PMU_FORMAT_ATTR(contextid1, "config:" __stringify(ETM_OPT_CTXTID)); +/* contextid2 enables tracing CONTEXTIDR_EL2*/ +PMU_FORMAT_ATTR(contextid2, "config:" __stringify(ETM_OPT_CTXTID2)); /* preset - if sink ID is used as a configuration selector */ PMU_FORMAT_ATTR(preset, "config:0-3"); -/* Sink ID - same for all ETMs */ -PMU_FORMAT_ATTR(sinkid, "config2:0-31"); /* config ID - set if a system configuration is selected */ PMU_FORMAT_ATTR(configid, "config2:32-63"); PMU_FORMAT_ATTR(cc_threshold, "config3:0-11"); =20 - /* * contextid always traces the "PID". The PID is in CONTEXTIDR_EL1 * when the kernel is running at EL1; when the kernel is at EL2, @@ -82,27 +78,34 @@ static ssize_t format_attr_contextid_show(struct device= *dev, { int pid_fmt =3D ETM_OPT_CTXTID; =20 -#if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) pid_fmt =3D is_kernel_in_hyp_mode() ? ETM_OPT_CTXTID2 : ETM_OPT_CTXTID; -#endif return sprintf(page, "config:%d\n", pid_fmt); } =20 static struct device_attribute format_attr_contextid =3D __ATTR(contextid, 0444, format_attr_contextid_show, NULL); +#endif =20 +/* + * ETMv3 only uses the first 3 attributes for programming itself (see + * ETM3X_SUPPORTED_OPTIONS). Sink ID is also supported for selecting a + * sink in both, but not used for configuring the ETM. The remaining + * attributes are ETMv4 specific. + */ static struct attribute *etm_config_formats_attr[] =3D { &format_attr_cycacc.attr, - &format_attr_contextid.attr, - &format_attr_contextid1.attr, - &format_attr_contextid2.attr, &format_attr_timestamp.attr, &format_attr_retstack.attr, &format_attr_sinkid.attr, +#if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) + &format_attr_contextid.attr, + &format_attr_contextid1.attr, + &format_attr_contextid2.attr, &format_attr_preset.attr, &format_attr_configid.attr, &format_attr_branch_broadcast.attr, &format_attr_cc_threshold.attr, +#endif NULL, }; =20 --=20 2.34.1