From nobody Mon Dec 1 22:35:07 2025 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (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 E07B7327BE0 for ; Fri, 28 Nov 2025 11:55:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330958; cv=none; b=o/pwwGmIVAvYLUQAd+Kt3fi4oZS3sF/uEnYyS2QQn7UAL5N/TkFt1xlo8+jkJgsJEZNnu6nFqmrKUjueMv8WENBFwhJNtB5x+1KpQO4mYWcwTTHAtpYLeXRZS6RSWCuYLWBiG8jQdN47gWmHPPF6vfOM51QnZn522aCTQzcfB9M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330958; c=relaxed/simple; bh=GdnbucpMituGxk2oV8w7k+/3o/1bQSLSJQJgL5Aed1g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jYENFpQTp64ohMED0L/ffkExpZhg980jL100/x+Y22immrDIllyMl+hP8jfhP3WkAilmIohQ+HiK25gw0vsJl2OoSPKXt5Pp+kxb7TaYZNkCPxHZjzT+qk26C+Bm9SBPlFTuJrK9KdqVm3e6CRGlZc14HRXlw95Ka0TpTZJJ3Ew= 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=bNY+BTLN; arc=none smtp.client-ip=209.85.128.54 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="bNY+BTLN" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-4775895d69cso7727215e9.0 for ; Fri, 28 Nov 2025 03:55:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764330954; x=1764935754; 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=Pr4nDdci8UOVifXcpprI4H7jqJCIQKXg1zzthB2SzVs=; b=bNY+BTLNcXQ+a4U9QKSn6D3RMKlrUxLWZD2YOnSuFIR30q4OhN+ualsQmyFIF6m879 J1d8kFPIX7dfSFiwSCID+gmmO3H+Sn5ruAN6sQzC9LGDPiAp199crp/DszzNvabxXXPc E7FtN1cotZPfok8R2bEFjVaG8TJm9r6gEseWNcFCVK2R4f/1KbBIwsvAf9lO0PpluCGi EW1oep/hyZXmV4I/liWlKC3kzoq4OsBmAMLb3yNV3Aatk6RWB4o/TXUtP7FYxvXetLB8 NRjpkJ+vAhbZxmJkjue8pvNN08Dn2/NpWO8pMbfEJ39nJHGTHl9wdqm7lBruVBTfqxIO AsKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330954; x=1764935754; 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=Pr4nDdci8UOVifXcpprI4H7jqJCIQKXg1zzthB2SzVs=; b=o7BAhc31nGEOwvT2d+ZY8QonGb8uHPCz3T9QuKWYlmGe8p6YVTYcX407EY2ARWhHj/ AVetLM3EDlId7u1NLseW36caB07gQemth5Jyxn4lsOWhGMeyrbq6DxF6S+cMH0H6Za/p wFdcISd8Of95T4b9pCpfzWn+0dzbuK2dO0uQ/CQ//bQB9EEmNOq0Tibcgr3pAN1II7EN 9YPVRVuLvaGVa+Zc69V378ETJ2lc9reYQSBvY0hqBa/WYZMeEh+8Y4spdV/NjwHMe+a2 ib9nLDTsij5sqeMe4lqX5lutb2YK3TNiadv1sKgk1TPCJ8hPjn0z6ZWrunmbpw+xlf3i fb6w== X-Forwarded-Encrypted: i=1; AJvYcCVsQ3JwQtCWmwpgxAs6JUOM1zLbTSJH5wNeY1Y1VeX9Ih+QshM7SgU6LDAKquCwVdeBHh4RiE+Dh/rlsLI=@vger.kernel.org X-Gm-Message-State: AOJu0YxZMaY9BBDks+YsCH3eo1JOJb+8+snkld7F0Nn5iadjrzVGQ5uC BNLetmAJ4emvPDjgUJttia370xWWAxgv6RJ6kvEqhzmS7yS8+kHkpwvXJxY17v2w8/hnOiexzJ0 j2vBS X-Gm-Gg: ASbGncvziXmqZvXOCd9nDb1LKMc6zGUdNDTe242cpTh5K86LAh9MFNj9XClcAfTuMlh eZYar4iN9v4SOFD6SD0Z12voL0o6WGFD3t/z9jRKAm0kGZbU7/V5g2SfUK5ye+xSQ3Y1LqjV0YG v+iBX7iU5XQtVmZJ8YDO0IOPYNS9rTS5RtxFbX4B0ydfSSWgpkhO44Zi2ghVxNymYK9IIYUwJC2 RSNxdKY6WD6ifS/l9OATkMeM+3SkEh4RbR8KLPJBqS8M0cG+anWpNZh3CaYPS/AYH4XaSj3hk7s 5tvYfLKJhHcamis/s0YhARRJs/4QiaZIt484ZOpQUcQDomBBqoMPE6EtrMFUXItPc4yfZxavlne kJ4G4KMB7EyzkhXx+ciijWPATpnhIyj/BhHcZbjat3J+vx5+lJG9Jg1xbArBCtCExC/bMqxKhW4 gopWq9V/flQ8NI5tbtRi+tZ9JX3xI+KD0= X-Google-Smtp-Source: AGHT+IH/3XpT4A1WSZceDWrLpY0kj8ZW7oDMztvnIeSaGTU3X3bJPn/FUVhbtHZa44BblazZTcRyrQ== X-Received: by 2002:a05:600c:1c19:b0:477:7bca:8b3c with SMTP id 5b1f17b1804b1-47904b10379mr190183005e9.19.1764330954175; Fri, 28 Nov 2025 03:55:54 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4790adc8bc7sm158974465e9.1.2025.11.28.03.55.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:55:53 -0800 (PST) From: James Clark Date: Fri, 28 Nov 2025 11:55:17 +0000 Subject: [PATCH v8 05/13] coresight: Define format attributes with GEN_PMU_FORMAT_ATTR() 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: <20251128-james-cs-syncfreq-v8-5-4d319764cc58@linaro.org> References: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> In-Reply-To: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@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 This allows us to define and consume them in a unified way in later commits. A lot of the existing code has open coded bit shifts or direct usage of whole config values which is error prone and hides which bits are in use and which are free. Reviewed-by: Leo Yan Reviewed-by: Mike Leach Tested-by: Leo Yan Signed-off-by: James Clark --- drivers/hwtracing/coresight/coresight-etm-perf.c | 21 ++++++++-------- drivers/hwtracing/coresight/coresight-etm-perf.h | 31 ++++++++++++++++++++= ++++ 2 files changed, 42 insertions(+), 10 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.c b/drivers/hwt= racing/coresight/coresight-etm-perf.c index 3805282b97e8..bf4b105e0f41 100644 --- a/drivers/hwtracing/coresight/coresight-etm-perf.c +++ b/drivers/hwtracing/coresight/coresight-etm-perf.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -50,22 +51,22 @@ struct etm_ctxt { static DEFINE_PER_CPU(struct etm_ctxt, etm_ctxt); static DEFINE_PER_CPU(struct coresight_device *, csdev_src); =20 -PMU_FORMAT_ATTR(cycacc, "config:" __stringify(ETM_OPT_CYCACC)); -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"); +GEN_PMU_FORMAT_ATTR(cycacc); +GEN_PMU_FORMAT_ATTR(timestamp); +GEN_PMU_FORMAT_ATTR(retstack); +GEN_PMU_FORMAT_ATTR(sinkid); =20 #if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) -PMU_FORMAT_ATTR(branch_broadcast, "config:"__stringify(ETM_OPT_BRANCH_BROA= DCAST)); +GEN_PMU_FORMAT_ATTR(branch_broadcast); /* contextid1 enables tracing CONTEXTIDR_EL1*/ -PMU_FORMAT_ATTR(contextid1, "config:" __stringify(ETM_OPT_CTXTID)); +GEN_PMU_FORMAT_ATTR(contextid1); /* contextid2 enables tracing CONTEXTIDR_EL2*/ -PMU_FORMAT_ATTR(contextid2, "config:" __stringify(ETM_OPT_CTXTID2)); +GEN_PMU_FORMAT_ATTR(contextid2); /* preset - if sink ID is used as a configuration selector */ -PMU_FORMAT_ATTR(preset, "config:0-3"); +GEN_PMU_FORMAT_ATTR(preset); /* config ID - set if a system configuration is selected */ -PMU_FORMAT_ATTR(configid, "config2:32-63"); -PMU_FORMAT_ATTR(cc_threshold, "config3:0-11"); +GEN_PMU_FORMAT_ATTR(configid); +GEN_PMU_FORMAT_ATTR(cc_threshold); =20 /* * contextid always traces the "PID". The PID is in CONTEXTIDR_EL1 diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.h b/drivers/hwt= racing/coresight/coresight-etm-perf.h index 5febbcdb8696..c794087a0e99 100644 --- a/drivers/hwtracing/coresight/coresight-etm-perf.h +++ b/drivers/hwtracing/coresight/coresight-etm-perf.h @@ -20,6 +20,37 @@ struct cscfg_config_desc; */ #define ETM_ADDR_CMP_MAX 8 =20 +#define ATTR_CFG_FLD_preset_CFG config +#define ATTR_CFG_FLD_preset_LO 0 +#define ATTR_CFG_FLD_preset_HI 3 +#define ATTR_CFG_FLD_branch_broadcast_CFG config +#define ATTR_CFG_FLD_branch_broadcast_LO 8 +#define ATTR_CFG_FLD_branch_broadcast_HI 8 +#define ATTR_CFG_FLD_cycacc_CFG config +#define ATTR_CFG_FLD_cycacc_LO 12 +#define ATTR_CFG_FLD_cycacc_HI 12 +#define ATTR_CFG_FLD_contextid1_CFG config +#define ATTR_CFG_FLD_contextid1_LO 14 +#define ATTR_CFG_FLD_contextid1_HI 14 +#define ATTR_CFG_FLD_contextid2_CFG config +#define ATTR_CFG_FLD_contextid2_LO 15 +#define ATTR_CFG_FLD_contextid2_HI 15 +#define ATTR_CFG_FLD_timestamp_CFG config +#define ATTR_CFG_FLD_timestamp_LO 28 +#define ATTR_CFG_FLD_timestamp_HI 28 +#define ATTR_CFG_FLD_retstack_CFG config +#define ATTR_CFG_FLD_retstack_LO 29 +#define ATTR_CFG_FLD_retstack_HI 29 +#define ATTR_CFG_FLD_sinkid_CFG config2 +#define ATTR_CFG_FLD_sinkid_LO 0 +#define ATTR_CFG_FLD_sinkid_HI 31 +#define ATTR_CFG_FLD_configid_CFG config2 +#define ATTR_CFG_FLD_configid_LO 32 +#define ATTR_CFG_FLD_configid_HI 63 +#define ATTR_CFG_FLD_cc_threshold_CFG config3 +#define ATTR_CFG_FLD_cc_threshold_LO 0 +#define ATTR_CFG_FLD_cc_threshold_HI 11 + /** * struct etm_filter - single instruction range or start/stop configuratio= n. * @start_addr: The address to start tracing on. --=20 2.34.1