[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20251112-james-cs-syncfreq-v4-0-165ba21401dc@linaro.org>
Date: Wed, 12 Nov 2025 15:22:06 +0000
From: James Clark <james.clark@...aro.org>
To: Suzuki K Poulose <suzuki.poulose@....com>,
Mike Leach <mike.leach@...aro.org>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Jonathan Corbet <corbet@....net>, Leo Yan <leo.yan@....com>
Cc: coresight@...ts.linaro.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, linux-doc@...r.kernel.org,
James Clark <james.clark@...aro.org>
Subject: [PATCH v4 00/13] coresight: Update timestamp attribute to be an
interval instead of bool
Do some cleanups then expand the timestamp format attribute from 1 bit
to 4 bits for ETMv4 in Perf mode. The current interval is too high for
most use cases, and particularly on the FVP the number of timestamps
generated is excessive. This change not only still allows disabling or
enabling timestamps, but also allows the interval to be configured.
The old bit is kept deprecated and undocumented for now. There are known
broken versions of Perf that don't read the format attribute positions
from sysfs and instead hard code the timestamp bit. We can leave the old
bit in the driver until we need the bit for another feature or enough
time has passed that these old Perfs are unlikely to be used.
The interval option is added as an event format attribute, rather than a
Coresight config because it's something that the driver is already
configuring automatically in Perf mode using any unused counter, so it's
not possible to modify this with a config.
Applies to coresight/next
Signed-off-by: James Clark <james.clark@...aro.org>
---
Changes in v4:
- Add #defines for true and false resources ETM_RES_SEL_TRUE/FALSE
- Reword comment about finding a counter to say if there are no
resources there are no counters.
- Extend existing timestamp format attribute instead of adding a new one
- Refactor all the config definitions and parsing to use
GEN_PMU_FORMAT_ATTR()/ATTR_CFG_GET_FLD() so we can see where the
unused bits are.
- Link to v3: https://lore.kernel.org/r/20251002-james-cs-syncfreq-v3-0-fe5df2bf91d1@linaro.org
Changes in v3:
- Move the format attr definitions to coresight-etm-perf.h we can
compile on arm32 without #ifdefs - (Leo)
- Convert the new #ifdefs to a single one in an is_visible() function so
that the code is cleaner - (Leo)
- Drop the change to remove the holes in struct etmv4_config as they
were grouped by function - (Mike)
- Link to v2: https://lore.kernel.org/r/20250814-james-cs-syncfreq-v2-0-c76fcb87696d@linaro.org
Changes in v2:
- Only show the attribute for ETMv4 to improve usability and fix the
arm32 build error. Wrapping everything in
IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) isn't ideal, but the -perf.c
file is shared between ETMv3 and ETMv4, and there is already precedent
for doing it this way.
- Link to v1: https://lore.kernel.org/r/20250811-james-cs-syncfreq-v1-0-b001cd6e3404@linaro.org
---
James Clark (13):
coresight: Change syncfreq to be a u8
coresight: Repack struct etmv4_drvdata
coresight: Refactor etm4_config_timestamp_event()
coresight: Hide unused ETMv3 format attributes
coresight: Define format attributes with GEN_PMU_FORMAT_ATTR()
coresight: Interpret ETMv3 config with ATTR_CFG_GET_FLD()
coresight: Don't reject unrecognized ETMv3 format attributes
coresight: Interpret perf config with ATTR_CFG_GET_FLD()
coresight: Interpret ETMv4 config with ATTR_CFG_GET_FLD()
coresight: Remove misleading definitions
coresight: Extend width of timestamp format attribute
coresight: Allow setting the timestamp interval
coresight: docs: Document etm4x timestamp interval option
Documentation/trace/coresight/coresight.rst | 15 +-
drivers/hwtracing/coresight/coresight-etm-perf.c | 59 +++++---
drivers/hwtracing/coresight/coresight-etm-perf.h | 39 +++++
drivers/hwtracing/coresight/coresight-etm3x-core.c | 36 ++---
drivers/hwtracing/coresight/coresight-etm4x-core.c | 164 +++++++++++++--------
drivers/hwtracing/coresight/coresight-etm4x.h | 62 +++++---
include/linux/coresight-pmu.h | 24 ---
7 files changed, 247 insertions(+), 152 deletions(-)
---
base-commit: efdccf6a511891db037e08f1351e72eaa101021e
change-id: 20250724-james-cs-syncfreq-7c2257a38ed3
Best regards,
--
James Clark <james.clark@...aro.org>
Powered by blists - more mailing lists