[PATCH v4 00/15] CoreSight: Refactor power management for CoreSight path
James Clark
james.clark at linaro.org
Mon Nov 10 07:33:35 PST 2025
On 04/11/2025 3:21 pm, Leo Yan wrote:
> This series is extracted from [1], focusing on CoreSight path power
> management.
>
> Compared to the previous version, this series is updated heavily for:
>
> 1) Dropped the global per CPU variable for saving path pointers.
> Instead, the activate path is now stored in the source device's
> structure. This allows fetching the path pointer naturally based on
> the source regardless of whether it is a per-CPU source or a system
> source (such as STM).
>
> This improvement addresses Mike's comment that, later we can polish
> coresight-sysfs.c to remove the tracer_path variables.
>
> 2) To simplify the series and make it easier to review, the CTI driver
> related fixes have been removed from this series and which will be
> sent out separately.
>
> 3) This series disables the path when a CPU is hot-plugged off but does
> not re-enable it when the CPU is subsequently hot-plugged in. This
> simplifies the implementation and keep it consistent with the perf
> session's behavior.
>
> It also improves security, as there is no risk of unintended tracing
> caused by a CPU being hot-plugged after a long period of inactivity.
>
> This series is dependent on ETM driver's PM improvement series [2] and
> has been verified on Juno-r2 and FVP RevC.
>
> [1] https://lore.kernel.org/linux-arm-kernel/20250915-arm_coresight_power_management_fix-v3-0-ea49e91124ec@arm.com/
> [2] https://lore.kernel.org/linux-arm-kernel/20251103-arm_coresight_power_management_fix-v5-0-f803c19aa153@arm.com/#t
>
> ---
> Changes in v4:
> - Changed to store path pointer in coresight_device, this is easier for
> fetching path pointer based on source device (Mike).
> - Dropped changes in CTI driver.
> - Only disabled path for CPU hot-plugged off but not enable path for
> hot-plugged in.
> - Removed James' test tags for modified patches.
> - Link to v3: https://lore.kernel.org/r/20250915-arm_coresight_power_management_fix-v3-0-ea49e91124ec@arm.com
>
> Signed-off-by: Leo Yan <leo.yan at arm.com>
>
Tested-by: James Clark <james.clark at linaro.org>
> ---
> Leo Yan (14):
> coresight: sysfs: Validate CPU online status for per-CPU sources
> coresight: Set per CPU source pointer
> coresight: Register CPU PM notifier in core layer
> coresight: etm4x: Hook CPU PM callbacks
> coresight: Add callback to determine if PM is needed
> coresight: etm4x: Remove redundant condition checks in save and restore
> coresight: syscfg: Use spinlock to protect active variables
> coresight: Introduce coresight_enable_source() helper
> coresight: Save activated path into source device
> coresight: Add 'in_idle' argument to enable/disable path functions
> coresight: Control path during CPU idle
> coresight: Add PM callbacks for percpu sink
> coresight: Take hotplug lock in enable_source_store() for Sysfs mode
> coresight: Move CPU hotplug callbacks to core layer
>
> Yabin Cui (1):
> coresight: trbe: Save and restore state across CPU low power state
>
> drivers/hwtracing/coresight/coresight-catu.c | 1 +
> drivers/hwtracing/coresight/coresight-core.c | 273 ++++++++++++++++++++-
> drivers/hwtracing/coresight/coresight-ctcu-core.c | 1 +
> drivers/hwtracing/coresight/coresight-cti-core.c | 1 +
> drivers/hwtracing/coresight/coresight-dummy.c | 1 +
> drivers/hwtracing/coresight/coresight-etb10.c | 1 +
> drivers/hwtracing/coresight/coresight-etm-perf.c | 2 +-
> drivers/hwtracing/coresight/coresight-etm3x-core.c | 1 +
> drivers/hwtracing/coresight/coresight-etm4x-core.c | 137 ++---------
> drivers/hwtracing/coresight/coresight-funnel.c | 1 +
> drivers/hwtracing/coresight/coresight-priv.h | 3 +
> drivers/hwtracing/coresight/coresight-replicator.c | 1 +
> drivers/hwtracing/coresight/coresight-stm.c | 1 +
> drivers/hwtracing/coresight/coresight-syscfg.c | 22 +-
> drivers/hwtracing/coresight/coresight-syscfg.h | 2 +
> drivers/hwtracing/coresight/coresight-sysfs.c | 12 +-
> drivers/hwtracing/coresight/coresight-tmc-core.c | 1 +
> drivers/hwtracing/coresight/coresight-tnoc.c | 2 +
> drivers/hwtracing/coresight/coresight-tpda.c | 1 +
> drivers/hwtracing/coresight/coresight-tpdm.c | 1 +
> drivers/hwtracing/coresight/coresight-tpiu.c | 1 +
> drivers/hwtracing/coresight/coresight-trbe.c | 85 ++++++-
> drivers/hwtracing/coresight/ultrasoc-smb.c | 1 +
> include/linux/coresight.h | 13 +
> 24 files changed, 425 insertions(+), 140 deletions(-)
> ---
> base-commit: f9ac95561513e18c2a2cf8905355dc5f0e030c46
> change-id: 20251104-arm_coresight_path_power_management_improvement-dab4966f8280
>
> Best regards,
More information about the linux-arm-kernel
mailing list