mbox series

[v7,00/25] coresight: allow to build coresight as modules

Message ID 20200805025458.2978-1-tingwei@codeaurora.org (mailing list archive)
Headers show
Series coresight: allow to build coresight as modules | expand

Message

Tingwei Zhang Aug. 5, 2020, 2:54 a.m. UTC
Allow to build coresight as modules. This gives developers the feasibility to
test their code without reboot.

This series is based on below two series.

 - "coresight: allow to build components as modules"
   https://lkml.org/lkml/2018/6/5/989
 - "coresight: make drivers modular"
   https://lkml.org/lkml/2020/1/17/468

Change from v6:
Correct module description for CATU (Mike)
Check ect_ret equals 0 and set ect_enabled flag (Mike)
Add Tested-by and Reviewed-by from Mike

Change from v5:
Add below CTI clean up change from Mike into series
 -https://lists.linaro.org/pipermail/coresight/2020-July/004349.html
Increase module reference count when enabling CTI device (Mike)

Change from v4:
Fix error handling in coresight_grab_devicei() (Greg)
Add coresight: cti: Fix remove sysfs link error from Mike
 -https://lists.linaro.org/pipermail/coresight/2020-July/004275.html
Move cti_remove_conn_xrefs() into cti_remove() (Mike)
Align patch subject to coresight: <component>: <description> (Mike)

Change from v3:
Rebase to coresight-next (Mike and Mathieu)
Reorder try_get_module() (Suzuki)
Clean up etmdrvdata[] in device remote path (Mike)
Move cti_remove_conn_xrefs to cti_remove (Mike)

Change from v2:
Rebase to 5.8-rc5. Export coresight_add_sysfs_link and
coresight_remove_sysfs_link
Fix one cut and paste error on MODULE_DESCRIPTION of CTI

Change from v1:
Use try_module_get() to avoid module to be unloaded when device is used
in active trace session. (Mathieu P)

Change from above two series.
This series adds the support to dynamically remove module when the device in
that module is enabled and used by some trace path. It disables all trace
paths with that device and release the trace path.

Kim Phillips (7):
  coresight: use IS_ENABLED for CONFIGs that may be modules
  coresight: etm3x: allow etm3x to be built as a module
  coresight: etm4x: allow etm4x to be built as a module
  coresight: etb: allow etb to be built as a module
  coresight: tpiu: allow tpiu to be built as a module
  coresight: tmc: allow tmc to be built as a module
  coresight: allow funnel and replicator drivers to be built as modules

Mian Yousaf Kaukab (4):
  coresight: export global symbols
  coresight: funnel: remove multiple init calls from funnel driver
  coresight: replicator: remove multiple init calls
  coresight: tmc-etr: add function to register catu ops

Mike Leach (1):
  coresight: cti: Fix remove sysfs link error

Tingwei Zhang (13):
  coresight: cpu_debug: add module name in Kconfig
  coresight: cpu_debug: define MODULE_DEVICE_TABLE
  coresight: add coresight prefix to barrier_pkt
  coresight: add try_get_module() in coresight_grab_device()
  coresight: stm: allow to build coresight-stm as a module
  coresight: etm: perf: Fix warning caused by etm_setup_aux failure
  coresight: cti: add function to register cti associate ops
  coresight: cti: Fix bug clearing sysfs links on callback
  coresight: cti: don't disable ect device if it's not enabled
  coresight: cti: increase reference count when enabling cti
  coresight: cti: allow cti to be built as a module
  coresight: catu: allow catu drivers to be built as modules
  coresight: allow the coresight core driver to be built as a module

 drivers/hwtracing/coresight/Kconfig           |  54 +++++--
 drivers/hwtracing/coresight/Makefile          |  22 +--
 drivers/hwtracing/coresight/coresight-catu.c  |  37 ++++-
 drivers/hwtracing/coresight/coresight-catu.h  |   2 -
 .../{coresight.c => coresight-core.c}         | 134 +++++++++++++++---
 .../hwtracing/coresight/coresight-cpu-debug.c |   2 +
 .../{coresight-cti.c => coresight-cti-core.c} |  62 ++++++--
 drivers/hwtracing/coresight/coresight-etb10.c |  22 ++-
 .../hwtracing/coresight/coresight-etm-perf.c  |  13 +-
 .../hwtracing/coresight/coresight-etm-perf.h  |   5 +-
 ...resight-etm3x.c => coresight-etm3x-core.c} |  27 +++-
 ...resight-etm4x.c => coresight-etm4x-core.c} |  26 +++-
 .../hwtracing/coresight/coresight-funnel.c    |  62 +++++++-
 .../hwtracing/coresight/coresight-platform.c  |   1 +
 drivers/hwtracing/coresight/coresight-priv.h  |  24 ++--
 .../coresight/coresight-replicator.c          |  63 +++++++-
 drivers/hwtracing/coresight/coresight-stm.c   |  20 ++-
 drivers/hwtracing/coresight/coresight-sysfs.c |   2 +
 .../{coresight-tmc.c => coresight-tmc-core.c} |  19 ++-
 .../hwtracing/coresight/coresight-tmc-etf.c   |   2 +-
 .../hwtracing/coresight/coresight-tmc-etr.c   |  21 ++-
 drivers/hwtracing/coresight/coresight-tmc.h   |   3 +
 drivers/hwtracing/coresight/coresight-tpiu.c  |  19 ++-
 include/linux/coresight.h                     |   3 +-
 24 files changed, 559 insertions(+), 86 deletions(-)
 rename drivers/hwtracing/coresight/{coresight.c => coresight-core.c} (93%)
 rename drivers/hwtracing/coresight/{coresight-cti.c => coresight-cti-core.c} (94%)
 rename drivers/hwtracing/coresight/{coresight-etm3x.c => coresight-etm3x-core.c} (97%)
 rename drivers/hwtracing/coresight/{coresight-etm4x.c => coresight-etm4x-core.c} (98%)
 rename drivers/hwtracing/coresight/{coresight-tmc.c => coresight-tmc-core.c} (96%)

Comments

Suzuki K Poulose Aug. 5, 2020, 5:17 p.m. UTC | #1
On 08/05/2020 03:54 AM, Tingwei Zhang wrote:
> Allow to build coresight as modules. This gives developers the feasibility to
> test their code without reboot.
> 

I ran this on my Juno and modules are auto loaded. However:

root@juno-server:~# lsmod
Module                  Size  Used by
coresight_tmc          40960  -2
coresight_etm4x        61440  -2
coresight_funnel       20480  -2
coresight_stm          24576  -2
coresight_replicator    20480  -2
coresight_cpu_debug    20480  -2
coresight_tpiu         20480  -2
coresight              45056  -2


The used by count is -2 for all of them. Does anyone hit this ?
I am unable to remove the modules.

Suzuki
Mike Leach Aug. 5, 2020, 7:39 p.m. UTC | #2
I had no issues on Juno, though I was manually insmod / rmmod them
Mike

On Wed, 5 Aug 2020 at 18:12, Suzuki K Poulose <suzuki.poulose@arm.com> wrote:
>
> On 08/05/2020 03:54 AM, Tingwei Zhang wrote:
> > Allow to build coresight as modules. This gives developers the feasibility to
> > test their code without reboot.
> >
>
> I ran this on my Juno and modules are auto loaded. However:
>
> root@juno-server:~# lsmod
> Module                  Size  Used by
> coresight_tmc          40960  -2
> coresight_etm4x        61440  -2
> coresight_funnel       20480  -2
> coresight_stm          24576  -2
> coresight_replicator    20480  -2
> coresight_cpu_debug    20480  -2
> coresight_tpiu         20480  -2
> coresight              45056  -2
>
>
> The used by count is -2 for all of them. Does anyone hit this ?
> I am unable to remove the modules.
>
> Suzuki
Tingwei Zhang Aug. 6, 2020, 3:06 a.m. UTC | #3
On Thu, Aug 06, 2020 at 01:17:23AM +0800, Suzuki K Poulose wrote:
> On 08/05/2020 03:54 AM, Tingwei Zhang wrote:
> >Allow to build coresight as modules. This gives developers the
> feasibility to
> >test their code without reboot.
> >
> 
> I ran this on my Juno and modules are auto loaded. However:
> 
> root@juno-server:~# lsmod
> Module                  Size  Used by
> coresight_tmc          40960  -2
> coresight_etm4x        61440  -2
> coresight_funnel       20480  -2
> coresight_stm          24576  -2
> coresight_replicator    20480  -2
> coresight_cpu_debug    20480  -2
> coresight_tpiu         20480  -2
> coresight              45056  -2
> 
> 
> The used by count is -2 for all of them. Does anyone hit this ?
> I am unable to remove the modules.
> 
I tested on db845c and modules are auto loaded.
I didn't see this issue. Module can be removed.

Thanks,
Tingwei

> Suzuki
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Mike Leach Aug. 6, 2020, 9:38 a.m. UTC | #4
Just tried autoload on DB410 - all good.

Mike

On Thu, 6 Aug 2020 at 04:06, Tingwei Zhang <tingweiz@codeaurora.org> wrote:
>
> On Thu, Aug 06, 2020 at 01:17:23AM +0800, Suzuki K Poulose wrote:
> > On 08/05/2020 03:54 AM, Tingwei Zhang wrote:
> > >Allow to build coresight as modules. This gives developers the
> > feasibility to
> > >test their code without reboot.
> > >
> >
> > I ran this on my Juno and modules are auto loaded. However:
> >
> > root@juno-server:~# lsmod
> > Module                  Size  Used by
> > coresight_tmc          40960  -2
> > coresight_etm4x        61440  -2
> > coresight_funnel       20480  -2
> > coresight_stm          24576  -2
> > coresight_replicator    20480  -2
> > coresight_cpu_debug    20480  -2
> > coresight_tpiu         20480  -2
> > coresight              45056  -2
> >
> >
> > The used by count is -2 for all of them. Does anyone hit this ?
> > I am unable to remove the modules.
> >
> I tested on db845c and modules are auto loaded.
> I didn't see this issue. Module can be removed.
>
> Thanks,
> Tingwei
>
> > Suzuki
> >
> > _______________________________________________
> > linux-arm-kernel mailing list
> > linux-arm-kernel@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Suzuki K Poulose Aug. 6, 2020, 11:23 a.m. UTC | #5
On 08/06/2020 10:38 AM, Mike Leach wrote:
> Just tried autoload on DB410 - all good.
> 
> Mike
> 
> On Thu, 6 Aug 2020 at 04:06, Tingwei Zhang <tingweiz@codeaurora.org> wrote:
>>
>> On Thu, Aug 06, 2020 at 01:17:23AM +0800, Suzuki K Poulose wrote:
>>> On 08/05/2020 03:54 AM, Tingwei Zhang wrote:
>>>> Allow to build coresight as modules. This gives developers the
>>> feasibility to
>>>> test their code without reboot.
>>>>
>>>
>>> I ran this on my Juno and modules are auto loaded. However:
>>>
>>> root@juno-server:~# lsmod
>>> Module                  Size  Used by
>>> coresight_tmc          40960  -2
>>> coresight_etm4x        61440  -2
>>> coresight_funnel       20480  -2
>>> coresight_stm          24576  -2
>>> coresight_replicator    20480  -2
>>> coresight_cpu_debug    20480  -2
>>> coresight_tpiu         20480  -2
>>> coresight              45056  -2
>>>
>>>
>>> The used by count is -2 for all of them. Does anyone hit this ?
>>> I am unable to remove the modules.

Apologies, it was my mistake. It had the module_unload disabled in
config. It is all normal now. I will test the misc_device race

Cheers
Suzuki