[PATCH v6 00/13] fix several inconsistencies with sysfs configuration in etmX
Yeoreum Yun
yeoreum.yun at arm.com
Fri May 1 05:55:46 PDT 2026
Gentle ping in case of forgotten.
> 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 v7.0
>
> Patch History
> =============
> 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 nrseqstate
> coresight: etm4x: introduce struct etm4_caps
> coresight: etm4x: exclude ss_status from drvdata->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: remove redundant call etm4_enable_hw() with hotplug
> 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 call etm_enable_hw() with hotplug
>
> drivers/hwtracing/coresight/coresight-etm.h | 46 ++-
> .../coresight/coresight-etm3x-core.c | 101 ++---
> .../coresight/coresight-etm3x-sysfs.c | 159 +++----
> .../hwtracing/coresight/coresight-etm4x-cfg.c | 3 +-
> .../coresight/coresight-etm4x-core.c | 388 ++++++++++--------
> .../coresight/coresight-etm4x-sysfs.c | 202 +++++----
> drivers/hwtracing/coresight/coresight-etm4x.h | 190 +++++----
> 7 files changed, 606 insertions(+), 483 deletions(-)
>
>
> base-commit: 028ef9c96e96197026887c0f092424679298aae8
> --
> LEVI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7}
>
--
Sincerely,
Yeoreum Yun
More information about the linux-arm-kernel
mailing list