[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