mbox series

[v4,00/20] coresight: allow to build coresight as modules

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

Message

Tingwei Zhang July 23, 2020, 4:27 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 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: allow etm3x to be built as a module
  coresight: allow etm4x to be built as a module
  coresight: allow etb to be built as a module
  coresight: allow tpiu to be built as a module
  coresight: 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: remove multiple init calls from funnel driver
  coresight: remove multiple init calls from replicator driver
  coresight: tmc-etr: add function to register catu ops

Tingwei Zhang (9):
  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()
  allow to build coresight-stm as a module, for ease of development.
  coresight: cti: add function to register cti associate ops
  coresight: allow cti to be built as a module
  coresight: 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}         | 102 ++++++++++++++----
 .../hwtracing/coresight/coresight-cpu-debug.c |   2 +
 .../{coresight-cti.c => coresight-cti-core.c} |  51 ++++++++-
 drivers/hwtracing/coresight/coresight-etb10.c |  22 +++-
 .../hwtracing/coresight/coresight-etm-perf.c  |   9 +-
 .../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                     |   2 +-
 24 files changed, 520 insertions(+), 77 deletions(-)
 rename drivers/hwtracing/coresight/{coresight.c => coresight-core.c} (95%)
 rename drivers/hwtracing/coresight/{coresight-cti.c => coresight-cti-core.c} (96%)
 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

Mike Leach July 23, 2020, 11:03 a.m. UTC | #1
Hi Tingwei,

Minor Nit: can we get some consistency with the patch naming.
coresight: <component>: <description>
e.g. coresight: cti: allow build as module
where specific components are used. This makes identifying patches for
specific components a lot easier.

Also it would be good to add my patch [1] to this series as requested
by Mathieu - it will ensure that the patch set works as a complete
set.

Thanks and Regards

Mike

[1] https://lists.linaro.org/pipermail/coresight/2020-July/004275.html

On Thu, 23 Jul 2020 at 05:28, Tingwei Zhang <tingwei@codeaurora.org> wrote:
>
> 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 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: allow etm3x to be built as a module
>   coresight: allow etm4x to be built as a module
>   coresight: allow etb to be built as a module
>   coresight: allow tpiu to be built as a module
>   coresight: 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: remove multiple init calls from funnel driver
>   coresight: remove multiple init calls from replicator driver
>   coresight: tmc-etr: add function to register catu ops
>
> Tingwei Zhang (9):
>   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()
>   allow to build coresight-stm as a module, for ease of development.
>   coresight: cti: add function to register cti associate ops
>   coresight: allow cti to be built as a module
>   coresight: 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}         | 102 ++++++++++++++----
>  .../hwtracing/coresight/coresight-cpu-debug.c |   2 +
>  .../{coresight-cti.c => coresight-cti-core.c} |  51 ++++++++-
>  drivers/hwtracing/coresight/coresight-etb10.c |  22 +++-
>  .../hwtracing/coresight/coresight-etm-perf.c  |   9 +-
>  .../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                     |   2 +-
>  24 files changed, 520 insertions(+), 77 deletions(-)
>  rename drivers/hwtracing/coresight/{coresight.c => coresight-core.c} (95%)
>  rename drivers/hwtracing/coresight/{coresight-cti.c => coresight-cti-core.c} (96%)
>  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%)
>
> --
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
>
> _______________________________________________
> CoreSight mailing list
> CoreSight@lists.linaro.org
> https://lists.linaro.org/mailman/listinfo/coresight
Tingwei Zhang July 24, 2020, 12:37 a.m. UTC | #2
Thu, Jul 23, 2020 at 07:03:10PM +0800, Mike Leach wrote:
> Hi Tingwei,
> 
> Minor Nit: can we get some consistency with the patch naming.
> coresight: <component>: <description>
> e.g. coresight: cti: allow build as module
> where specific components are used. This makes identifying patches for
> specific components a lot easier.
Thanks for the advice.  I'll rename them in next revision.
> 
> Also it would be good to add my patch [1] to this series as requested
> by Mathieu - it will ensure that the patch set works as a complete
> set.

My fault.  I thought he was talking about the change you shared which
depends on my change. I'll add your patch in next revision.

> 
> Thanks and Regards
> 
> Mike
> 
> [1] https://lists.linaro.org/pipermail/coresight/2020-July/004275.html
> 
> On Thu, 23 Jul 2020 at 05:28, Tingwei Zhang <tingwei@codeaurora.org>
> wrote:
> >
> > 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 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: allow etm3x to be built as a module
> >   coresight: allow etm4x to be built as a module
> >   coresight: allow etb to be built as a module
> >   coresight: allow tpiu to be built as a module
> >   coresight: 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: remove multiple init calls from funnel driver
> >   coresight: remove multiple init calls from replicator driver
> >   coresight: tmc-etr: add function to register catu ops
> >
> > Tingwei Zhang (9):
> >   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()
> >   allow to build coresight-stm as a module, for ease of development.
> >   coresight: cti: add function to register cti associate ops
> >   coresight: allow cti to be built as a module
> >   coresight: 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}         | 102 ++++++++++++++----
> >  .../hwtracing/coresight/coresight-cpu-debug.c |   2 +
> >  .../{coresight-cti.c => coresight-cti-core.c} |  51 ++++++++-
> >  drivers/hwtracing/coresight/coresight-etb10.c |  22 +++-
> >  .../hwtracing/coresight/coresight-etm-perf.c  |   9 +-
> >  .../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                     |   2 +-
> >  24 files changed, 520 insertions(+), 77 deletions(-)
> >  rename drivers/hwtracing/coresight/{coresight.c => coresight-core.c}
> (95%)
> >  rename drivers/hwtracing/coresight/{coresight-cti.c =>
> coresight-cti-core.c} (96%)
> >  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%)
> >
> > --
> > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora
> Forum,
> > a Linux Foundation Collaborative Project
> >
> > _______________________________________________
> > CoreSight mailing list
> > CoreSight@lists.linaro.org
> > https://lists.linaro.org/mailman/listinfo/coresight
> 
> 
> 
> -- 
> Mike Leach
> Principal Engineer, ARM Ltd.
> Manchester Design Centre. UK
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel