On Wed, Nov 26, 2025 at 10:54:29AM +0000, James Clark wrote:
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@linaro.org
Tested on Juno-r2 board (though all timestamps are zeros but it still can record timestamp packets):
# perf record -e cs_etm/timestamp=15/ -- ls # perf script -D | grep I_TIMESTAMP | wc 1324 11916 84561
# perf record -e cs_etm/timestamp=14/ -- ls # perf script -D | grep I_TIMESTAMP | wc 2415 21735 154205
# perf record -e cs_etm/timestamp=1/ -- ls # perf script -D | grep I_TIMESTAMP | wc 130743 1176687 8359898
# perf record -e cs_etm/timestamp=0/ -- ls # perf script -D | grep I_TIMESTAMP | wc 0 0 0
Tested-by: Leo Yan leo.yan@arm.com