[PATCH v8 00/13] fix several inconsistencies with sysfs configuration in etmX

Suzuki K Poulose suzuki.poulose at arm.com
Thu Jul 16 05:48:15 PDT 2026


On 29/06/2026 09:59, Yeoreum Yun wrote:
> The current ETMx configuration via sysfs can lead to the following
> inconsistencies:
> 
>    - If a configuration is modified via sysfs while a perf session is
>      active, the running configuration may differ between before
>      a sched-out and after a subsequent sched-in.
> 
>    - If a perf session and sysfs session tries to enable concurrently,
>      configuration from configfs could be corrupted (etm4).
> 
>    - There is chance to corrupt drvdata->config if perf session tries
>      to enabled among handling cscfg_csdev_disable_active_config()
>      in etm4_disable_sysfs() (etm4).
> 
> To resolve these inconsistencies, the configuration should be separated into:
> 
>    - active_config, which is applied configuration for the current session
>    - config, which stores the settings configured via sysfs.
> 
> and apply configuration from configfs after taking a mode.
> 
> Also, This patch set includes some small fixes:
>    - missing trace id release in etm4x.
>    - underflow issue for nrseqstate.
>    - wrong check in etm4x_sspcicrn_present().
>    - missing call of cscfg_csdev_disable_active_config()
> 
> This patch based on coresight tree's next


Please could you move all the "Fixes" to the top of the series, that way
it is cleaner to backport for the stable kernels

I have some minor comments, please could you address them. Otherwise,
looks good to me. Thanks for the cleanup

Suzuki


> 
> Patch History
> =============
> from v7 to v8:
>    - accept @Leo Yan' suggestion to handle error.
>    - small minor fixes following @Suzuki' suggestion.
>    - https://lore.kernel.org/all/20260519154812.254884-1-yeoreum.yun@arm.com/
> 
> from v6 to v7:
>    - rebase on coresight/next
>    - add ETM_MAX_SEQ_TRANSITIONS define
>    - remove redundant patch relavent cpu-hotplug as coresight-pm patch
>      merged.
>    - https://lore.kernel.org/all/20260422132203.977549-1-yeoreum.yun@arm.com/
> 
> from v5 to v6:
>    - fix missing of calling cscfg_csdev_disable_active_config()
>    - add rb & fixes tags.
>    - add ss_status field in etm4x_drvdata to expose STATUS and PENDING bits.
>    - https://lore.kernel.org/all/20260415165528.3369607-1-yeoreum.yun@arm.com/
> 
> from v4 to v5:
>    - add rb-tag.
>    - fix underflow issue for nrseqstate.
>    - fix wrong check in etm4_sspcicrn_present().
>    - remove redundant fields on etmv4_save_state.
>    - rename caps->ss_status to ss_cmp.
>    - fix wrong location of etm4_release_trace_id.
>    - https://lore.kernel.org/all/20260413142003.3549310-1-yeoreum.yun@arm.com/
> 
> from v3 to v4:
>    - change etm_drvdata->spinlock type to raw_spin_lock_t
>    - remove redundant call etmX_enable_hw() with starting_cpu() callsback.
>    - fix missing trace id release.
>    - add missing docs.
>    - https://lore.kernel.org/all/20260412175506.412301-1-yeoreum.yun@arm.com/
> 
> from v2 to v3:
>    - fix build error for etm3x.
>    - fix checkpatch warning.
>    - https://lore.kernel.org/all/20260410074310.2693385-1-yeoreum.yun@arm.com/
> 
> from v1 to v2
>    - rebased to v7.0-rc7.
>    - introduce etmX_caps structure to save etmX's capabilities.
>    - remove ss_status from etmv4_config.
>    - modify active_config after taking a mode (perf/sysfs).
>    - https://lore.kernel.org/all/20260317181705.2456271-1-yeoreum.yun@arm.com/
> 
> 
> Yeoreum Yun (13):
>    coresight: etm4x: fix wrong check of etm4x_sspcicrn_present()
>    coresight: etm4x: fix underflow for usage of (nrseqstate - 1)
>    coresight: etm4x: introduce struct etm4_caps
>    coresight: etm4x: exclude ss_status from drvdata->config
>    coresight: etm4x: remove s_ex_level from config
>    coresight: etm4x: remove redundant fields in etmv4_save_state
>    coresight: etm4x: fix leaked trace id
>    coresight: etm4x: fix inconsistencies with sysfs configuration
>    coresight: etm4x: missing cscfg_csdev_disable_active_config() in perf
>      enable
>    coresight: etm3x: change drvdata->spinlock type to raw_spin_lock_t
>    coresight: etm3x: introduce struct etm_caps
>    coresight: etm3x: fix inconsistencies with sysfs configuration
>    coresight: etm3x: remove redundant cpu online check on
>      etm_enable_sysfs()
> 
>   drivers/hwtracing/coresight/coresight-etm.h   |  46 +-
>   .../coresight/coresight-etm3x-core.c          |  96 ++--
>   .../coresight/coresight-etm3x-sysfs.c         | 159 +++---
>   .../hwtracing/coresight/coresight-etm4x-cfg.c |   5 +-
>   .../coresight/coresight-etm4x-core.c          | 454 ++++++++++--------
>   .../coresight/coresight-etm4x-sysfs.c         | 204 ++++----
>   drivers/hwtracing/coresight/coresight-etm4x.h | 202 ++++----
>   7 files changed, 639 insertions(+), 527 deletions(-)
> 




More information about the linux-arm-kernel mailing list