[PATCH v3 08/20] coresight: allow etm4x to be built as a module

Sai Prakash Ranjan saiprakash.ranjan at codeaurora.org
Mon Jul 20 02:58:05 EDT 2020


Hi Tingwei,

On 2020-07-17 11:15, Tingwei Zhang wrote:
> From: Kim Phillips <kim.phillips at arm.com>
> 
> Allow to build coresight-etm4x as a module, for ease of development.
> 
> - Kconfig becomes a tristate, to allow =m
> - append -core to source file name to allow module to
>   be called coresight-etm4x by the Makefile
> - add an etm4_remove function, for module unload
> - add a MODULE_DEVICE_TABLE for autoloading on boot
> 
> Cc: Mathieu Poirier <mathieu.poirier at linaro.org>
> Cc: Leo Yan <leo.yan at linaro.org>
> Cc: Alexander Shishkin <alexander.shishkin at linux.intel.com>
> Cc: Randy Dunlap <rdunlap at infradead.org>
> Cc: Suzuki K Poulose <Suzuki.Poulose at arm.com>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> Cc: Russell King <linux at armlinux.org.uk>
> Signed-off-by: Kim Phillips <kim.phillips at arm.com>
> Signed-off-by: Tingwei Zhang <tingwei at codeaurora.org>
> ---
>  drivers/hwtracing/coresight/Kconfig           |  5 ++-
>  drivers/hwtracing/coresight/Makefile          |  4 +--
>  ...resight-etm4x.c => coresight-etm4x-core.c} | 31 ++++++++++++++++++-
>  3 files changed, 36 insertions(+), 4 deletions(-)
>  rename drivers/hwtracing/coresight/{coresight-etm4x.c =>
> coresight-etm4x-core.c} (98%)
> 

<snip>...

Thanks for adding this support. etm4_cpu_pm_unregister() is dropped now 
with change to ETM PM code.
You can base the patches on coresight-next - 
https://git.linaro.org/kernel/coresight.git/log/?h=next

Also I am trying this series on SDM845 MTP (5.8.0-rc5) with Debian 
distribution,
I see below warning when trying to disable ETM, logs below:

root at linaro-developer:~# lsmod
Module                  Size  Used by
cpufreq_powersave      16384  0
cpufreq_conservative    16384  0
msm                   856064  1
coresight_stm          24576  0
crct10dif_ce           20480  1
stm_core               28672  1 coresight_stm
i2c_qcom_geni          24576  0
qcom_rng               16384  0
coresight_tmc          40960  0
coresight_funnel       20480  0
coresight_etm4x        61440  0
coresight_replicator    20480  0
camcc_sdm845           49152  0
ath10k_snoc            53248  0
socinfo                20480  0
ip_tables              32768  0
x_tables               45056  1 ip_tables
ipv6                  458752  26
nf_defrag_ipv6         24576  1 ipv6
root at linaro-developer:~#
root at linaro-developer:~# echo 1 > 
/sys/bus/coresight/devices/tmc_etr0/enable_sink
root at linaro-developer:~# echo 1 > 
/sys/bus/coresight/devices/etm0/enable_source
root at linaro-developer:~# echo 0 > 
/sys/bus/coresight/devices/etm0/enable_source
[  332.855363] ------------[ cut here ]------------
[  332.860175] WARNING: CPU: 0 PID: 0 at 
drivers/hwtracing/coresight/coresight-core.c:227 
coresight_disclaim_device_unlocked+0x28/0x50
[  332.872177] Modules linked in: cpufreq_powersave cpufreq_conservative 
msm(+) coresight_stm crct10dif_ce stm_core i2c_qcom_geni qcom_rng coresi
ght_tmc coresight_funnel coresight_etm4x coresight_replicator 
camcc_sdm845 ath10k_snoc socinfo ip_tables x_tables ipv6 nf_defrag_ipv6
[  332.897043] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G      D W         
5.8.0-rc5-next-20200716-00040-g50ad3222c13f-dirty #80
[  332.908330] Hardware name: Qualcomm Technologies, Inc. SDM845 MTP 
(DT)
[  332.914969] pstate: 80400085 (Nzcv daIf +PAN -UAO BTYPE=--)
[  332.920643] pc : coresight_disclaim_device_unlocked+0x28/0x50
[  332.926543] lr : etm4_disable_hw+0xd8/0x128 [coresight_etm4x]
[  332.932391] sp : ffff800010003ed0
[  332.935775] x29: ffff800010003ed0 x28: ffffb05e1bd13980
[  332.941193] x27: 0000004d7fb06ef3 x26: ffff800010004000
[  332.946606] x25: 0000000000000000 x24: ffffb05e1bd03cc0
[  332.952022] x23: 0000000000000000 x22: 0000000000000000
[  332.957436] x21: ffff800010c73c00 x20: ffff000175547400
[  332.962851] x19: ffff8000103af000 x18: 0000000000000005
[  332.968267] x17: 0000000000000000 x16: ffffb05e1a875f38
[  332.973678] x15: 0000000000000000 x14: ffffb05e1bd13980
[  332.979093] x13: ffff4fa361082000 x12: 000000003474591d
[  332.984507] x11: 0000000000000000 x10: 0000000000001000
[  332.989920] x9 : ffffb05e19a81800 x8 : 000001b2b5503510
[  332.995336] x7 : 000000b2b5503510 x6 : 000000003fd5ea33
[  333.000749] x5 : 00ffffffffffffff x4 : 000000000000b2be
[  333.006162] x3 : ffff0001725c8150 x2 : ffff8000103af168
[  333.011574] x1 : 0000000000000000 x0 : ffff8000103affa4
[  333.016993] Call trace:
[  333.019516]  coresight_disclaim_device_unlocked+0x28/0x50
[  333.025035]  etm4_disable_hw+0xd8/0x128 [coresight_etm4x]
[  333.030552]  flush_smp_call_function_queue+0x154/0x250
[  333.035795]  generic_smp_call_function_single_interrupt+0x18/0x20
[  333.041999]  handle_IPI+0x32c/0x390
[  333.045569]  gic_handle_irq+0x15c/0x160
[  333.049489]  el1_irq+0xb8/0x180
[  333.052709]  cpuidle_enter_state+0xac/0x4e8
[  333.056983]  cpuidle_enter+0x3c/0x50
[  333.060646]  call_cpuidle+0x40/0x70
[  333.064210]  do_idle+0x20c/0x290
[  333.067516]  cpu_startup_entry+0x28/0x70
[  333.071528]  rest_init+0xdc/0xe8
[  333.074847]  arch_call_rest_init+0x14/0x1c
[  333.079027]  start_kernel+0x4e0/0x518
[  333.082764] ---[ end trace 162d5cef8c2b863b ]---
root at linaro-developer:~#

Thanks,
Sai

-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a 
member
of Code Aurora Forum, hosted by The Linux Foundation



More information about the linux-arm-kernel mailing list