[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