Re: [PATCH v2 0/9] coresight: change some driver' spinlock type to raw_spinlock_t
From: Yeo Reum Yun <hidden>
Date: 2024-12-18 15:22:55
Also in:
linux-rt-devel, lkml
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 <redacted> Sent: 18 December 2024 13:44 To: Yeo Reum Yun Cc: Suzuki Poulose; james.clark@linaro.org; alexander.shishkin@linux.intel.com; bigeasy@linutronix.de; clrkwllms@kernel.org; rostedt@goodmis.org; coresight@lists.linaro.org; linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; linux-rt-devel@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 [off-list ref] 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@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