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

Yeoreum Yun yeoreum.yun at arm.com
Thu Jul 16 12:24:32 PDT 2026


On Thu, Jul 16, 2026 at 01:48:15PM +0100, Suzuki K Poulose wrote:
> 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

Okay. but the fix which based on the cleanup wouldn't be top of it.
I'll deploy below patches first:

  coresight: etm3x: change drvdata->spinlock type to raw_spin_lock_t
  coresight: etm4x: fix leaked trace id
  coresight: etm4x: fix underflow for usage of (nrseqstate - 1)
  coresight: etm4x: fix wrong check of etm4x_sspcicrn_present()

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

Thanks for your review!

> 
> 
> > 
> > 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(-)
> > 
> 

-- 
Sincerely,
Yeoreum Yun



More information about the linux-arm-kernel mailing list