[PATCH v2 0/9] coresight: change some driver' spinlock type to raw_spinlock_t
Yeo Reum Yun
YeoReum.Yun at arm.com
Wed Dec 18 07:22:33 PST 2024
Hi Mike.
> etm3x - which provides support for ETMv3 and PTM, both of which are
> valid trace sources in the cs_etm handling code.
> stm - can be integrated into the kernel STM via configfs providing a
> MIPI source for ftrace.
about etm3x, I have a the same opinion with James.
But, In case of STM, Is it enabled via perf interface?
The cs devices which could be called in perf patch were changed but not for cs devices which never used via perf.
Am I missing?
Thanks.
________________________________________
From: Mike Leach <mike.leach at linaro.org>
Sent: 18 December 2024 13:44
To: Yeo Reum Yun
Cc: Suzuki Poulose; james.clark at linaro.org; alexander.shishkin at linux.intel.com; bigeasy at linutronix.de; clrkwllms at kernel.org; rostedt at goodmis.org; coresight at lists.linaro.org; linux-arm-kernel at lists.infradead.org; linux-kernel at vger.kernel.org; linux-rt-devel at lists.linux.dev; nd
Subject: Re: [PATCH v2 0/9] coresight: change some driver' spinlock type to raw_spinlock_t
This change seems to omit devices:
etm3x - which provides support for ETMv3 and PTM, both of which are
valid trace sources in the cs_etm handling code.
stm - can be integrated into the kernel STM via configfs providing a
MIPI source for ftrace.
Mike
On Tue, 3 Dec 2024 at 11:49, Yeoreum Yun <yeoreum.yun at arm.com> wrote:
>
> In some coresight drivers, drvdata->spinlock can be held during __schedule()
> by perf_event_task_sched_out()/in().
>
> Since drvdata->spinlock type is spinlock_t and
> perf_event_task_sched_out()/in() is called after acquiring rq_lock,
> which is raw_spinlock_t (an unsleepable lock),
> this poses an issue in PREEMPT_RT kernel where spinlock_t is sleepable.
>
> To address this,change type drvdata->spinlock in some coresight drivers,
> which can be called by perf_event_task_sched_out()/in(),
> from spinlock_t to raw_spinlock_t.
>
> Reviewed-by: James Clark <james.clark at linaro.org>
>
> v1 to v2:
> - seperate patchsets to change locktype and apply gurad API.
>
> Levi Yun (9):
> coresight: change coresight_device lock type to raw_spinlock_t
> coresight-etm4x: change etmv4_drvdata spinlock type to raw_spinlock_t
> coresight: change coresight_trace_id_map's lock type to raw_spinlock_t
> coresight-cti: change cti_drvdata spinlock's type to raw_spinlock_t
> coresight-etb10: change etb_drvdata spinlock's type to raw_spinlock_t
> coresight-funnel: change funnel_drvdata spinlock's type to
> raw_spinlock_t
> coresight-replicator: change replicator_drvdata spinlock's type to
> raw_spinlock_t
> coresight-tmc: change tmc_drvdata spinlock's type to raw_spinlock_t
> coresight/ultrasoc: change cti_drvdata spinlock's type to
> raw_spinlock_t
>
> .../hwtracing/coresight/coresight-config.c | 21 +-
> .../hwtracing/coresight/coresight-config.h | 2 +-
> drivers/hwtracing/coresight/coresight-core.c | 2 +-
> .../hwtracing/coresight/coresight-cti-core.c | 65 +-
> .../hwtracing/coresight/coresight-cti-sysfs.c | 135 +++--
> drivers/hwtracing/coresight/coresight-cti.h | 2 +-
> drivers/hwtracing/coresight/coresight-etb10.c | 62 +-
> .../coresight/coresight-etm4x-core.c | 71 ++-
> .../coresight/coresight-etm4x-sysfs.c | 566 +++++++++---------
> drivers/hwtracing/coresight/coresight-etm4x.h | 2 +-
> .../hwtracing/coresight/coresight-funnel.c | 34 +-
> .../coresight/coresight-replicator.c | 36 +-
> .../hwtracing/coresight/coresight-syscfg.c | 75 ++-
> .../hwtracing/coresight/coresight-tmc-core.c | 9 +-
> .../hwtracing/coresight/coresight-tmc-etf.c | 195 +++---
> .../hwtracing/coresight/coresight-tmc-etr.c | 199 +++---
> drivers/hwtracing/coresight/coresight-tmc.h | 2 +-
> .../hwtracing/coresight/coresight-trace-id.c | 93 ++-
> drivers/hwtracing/coresight/ultrasoc-smb.c | 12 +-
> drivers/hwtracing/coresight/ultrasoc-smb.h | 2 +-
> include/linux/coresight.h | 4 +-
> 21 files changed, 751 insertions(+), 838 deletions(-)
>
> --
> LEVI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7}
>
--
Mike Leach
Principal Engineer, ARM Ltd.
Manchester Design Centre. UK
More information about the linux-arm-kernel
mailing list