[PATCH v3 08/20] coresight: allow etm4x to be built as a module
Sai Prakash Ranjan
saiprakash.ranjan at codeaurora.org
Tue Jul 21 03:03:39 EDT 2020
Hi Tingwei,
On 2020-07-20 12:28, Sai Prakash Ranjan wrote:
> 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:~#
>
I found that above warning is not due to your changes. If I add
"arm,coresight-loses-context-with-cpu" to SDM845 ETM nodes then
I don't see these warnings, so will add them since idle support
is present on sdm845.
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