From: Yeoreum Yun <yeoreum.yun@arm.com>
To: Mike Leach <mike.leach@linaro.org>
Cc: suzuki.poulose@arm.com, 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
Subject: Re: [PATCH v3 0/9] coresight: change some driver' spinlock type to raw_spinlock_t
Date: Fri, 20 Dec 2024 10:06:27 +0000 [thread overview]
Message-ID: <Z2VBoxu/pAnkiWMh@e129823.arm.com> (raw)
In-Reply-To: <CAJ9a7VhxG_8R6j5uRCzOhLpy4ZmzyVvyW0+ryCcd4w7wqpZ2ew@mail.gmail.com>
Hi Mike,
> Hi,
>
> On Mon, 16 Dec 2024 at 11:50, Yeoreum Yun <yeoreum.yun@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@linaro.org>
> >
> > v2 to v3:
> > - Fix build error
> >
> > v1 to v2:
> > - seperate patchsets to change locktype and apply gurad API.
> >
> > Yeoreum 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 | 8 +-
> > .../hwtracing/coresight/coresight-config.h | 2 +-
> > drivers/hwtracing/coresight/coresight-core.c | 2 +-
> > .../hwtracing/coresight/coresight-cti-core.c | 44 +--
> > .../hwtracing/coresight/coresight-cti-sysfs.c | 76 +++---
> > drivers/hwtracing/coresight/coresight-cti.h | 2 +-
> > drivers/hwtracing/coresight/coresight-etb10.c | 26 +-
> > .../coresight/coresight-etm4x-core.c | 18 +-
> > .../coresight/coresight-etm4x-sysfs.c | 250 +++++++++---------
> > drivers/hwtracing/coresight/coresight-etm4x.h | 2 +-
> > .../hwtracing/coresight/coresight-funnel.c | 12 +-
> > .../coresight/coresight-replicator.c | 12 +-
> > .../hwtracing/coresight/coresight-syscfg.c | 26 +-
> > .../hwtracing/coresight/coresight-tmc-core.c | 6 +-
> > .../hwtracing/coresight/coresight-tmc-etf.c | 48 ++--
> > .../hwtracing/coresight/coresight-tmc-etr.c | 40 +--
> > drivers/hwtracing/coresight/coresight-tmc.h | 2 +-
> > .../hwtracing/coresight/coresight-trace-id.c | 22 +-
> > drivers/hwtracing/coresight/ultrasoc-smb.c | 12 +-
> > drivers/hwtracing/coresight/ultrasoc-smb.h | 2 +-
> > include/linux/coresight.h | 4 +-
> > 21 files changed, 308 insertions(+), 308 deletions(-)
> >
> > --
> > LEVI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7}
> >
>
> Notably missing is the same changes for the etm3x driver. The ETMv3.x
> and PTM1.x are supported by this driver, and these trace source
> variants are also supported in perf in the cs_etm.c code.
>
> STM is also missing, though this is not directly enabled via perf -
> but could perhaps run concurrently as it can be a target output for
> ftrace.
>
> Regards
Thanks for review. okay I'll back with new patch set including etm3 /
stm.
Thanks!
> --
> Mike Leach
> Principal Engineer, ARM Ltd.
> Manchester Design Centre. UK
next prev parent reply other threads:[~2024-12-20 10:18 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-16 11:49 [PATCH v3 0/9] coresight: change some driver' spinlock type to raw_spinlock_t Yeoreum Yun
2024-12-16 11:49 ` [PATCH v3 1/9] coresight: change coresight_device lock " Yeoreum Yun
2024-12-19 12:23 ` Mike Leach
2024-12-16 11:49 ` [PATCH v3 2/9] coresight-etm4x: change etmv4_drvdata spinlock " Yeoreum Yun
2024-12-19 12:24 ` Mike Leach
2024-12-20 10:13 ` Yeoreum Yun
2024-12-16 11:50 ` [PATCH v3 3/9] coresight: change coresight_trace_id_map's lock " Yeoreum Yun
2024-12-19 12:24 ` Mike Leach
2024-12-16 11:50 ` [PATCH v3 4/9] coresight-cti: change cti_drvdata spinlock's " Yeoreum Yun
2024-12-19 12:24 ` Mike Leach
2024-12-16 11:50 ` [PATCH v3 5/9] coresight-etb10: change etb_drvdata " Yeoreum Yun
2024-12-19 12:24 ` Mike Leach
2024-12-16 11:50 ` [PATCH v3 6/9] coresight-funnel: change funnel_drvdata " Yeoreum Yun
2024-12-19 12:24 ` Mike Leach
2024-12-16 11:50 ` [PATCH v3 7/9] coresight-replicator: change replicator_drvdata " Yeoreum Yun
2024-12-19 12:24 ` Mike Leach
2024-12-16 11:50 ` [PATCH v3 8/9] coresight-tmc: change tmc_drvdata " Yeoreum Yun
2024-12-19 12:23 ` Mike Leach
2024-12-16 11:50 ` [PATCH v3 9/9] coresight/ultrasoc: change cti_drvdata " Yeoreum Yun
2024-12-19 12:24 ` Mike Leach
2024-12-20 10:07 ` Yeoreum Yun
2024-12-19 12:27 ` [PATCH v3 0/9] coresight: change some driver' spinlock " Mike Leach
2024-12-20 10:06 ` Yeoreum Yun [this message]
2024-12-20 10:38 ` Yeoreum Yun
2024-12-20 11:35 ` Suzuki K Poulose
2024-12-20 11:39 ` Yeoreum Yun
2024-12-20 11:48 ` Suzuki K Poulose
2024-12-20 11:50 ` Yeoreum Yun
2024-12-21 17:02 ` Yeoreum Yun
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z2VBoxu/pAnkiWMh@e129823.arm.com \
--to=yeoreum.yun@arm.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=bigeasy@linutronix.de \
--cc=clrkwllms@kernel.org \
--cc=coresight@lists.linaro.org \
--cc=james.clark@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rt-devel@lists.linux.dev \
--cc=mike.leach@linaro.org \
--cc=rostedt@goodmis.org \
--cc=suzuki.poulose@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.