Dear Leo, Mike,
I found two import differences. 1. My device (phone) kernel version is 4.19.81, but above links is 5.8-rc2. 2. The second difference is my device is smart phone (Mi K30 5G).
Based on [1], I tried to compare the old version (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tag/?h=v4...), both of coresight source code are almost same. Based on [2], I guess the smartphone cannot support perf-coresight. because I can see the core-sight is working from dmesg, but I cannot used built-in perf to connect the coresight.
If you have any suggestions, please let me know. Thank you very much.
BRs, M.H.
Mike Leach mike.leach@linaro.org 於 2020年6月15日 週一 下午6:59寫道:
Hi,
On Mon, 15 Jun 2020 at 06:37, leo.yan@linaro.org wrote:
Hi Eric,
On Mon, Jun 15, 2020 at 10:44:52AM +0800, H MJ wrote:
# ls /sys/bus/coresight/devices/
[...]
coresight-funnel-dl-center coresight-tmc-etr
To be honest, I am a bit confused why the CoreSight device names have prefix 'coresight-', on my side, three platforms (Juno-r2/DB410c/Hikey620) don't output the device name with this format. On the other hand, the device name will be used the establish the hardware connection path from CoreSight source (e.g. etm) to sink (etf/etb/etr, etc). I prefer to firstly get clear why the CoreSight device naming has unexpected prefix 'coresight-' (and this might relevant with your current issue if it fails to find correct sink device).
Another way to move forward to dig into code (e.g. using printk) in the function etm_setup_aux() [1], one possibility is CoreSight perf drive fails to find corresponding, so at the line 299 in coresight-etm-perf.c (in function etm_setup_aux()) the pointer '*sink' is NULL and directly bail out. The failure might be caused by mismatching between user space passing sink name and in drive it fails to find corresponding sink device.
As well as the code Leo points out, you have said you are not seeing any entries in the cs_etm/sinks directory. I would recommend debugging the code where these are setup when coresight sink / link components are registered [1], in function [2]. Check also that the 'sinks' group [3] is correctly registered @ [4].
Regards
Mike
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/driv... [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/driv... [3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/driv... [4] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/driv...
Thanks, Leo
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/driv... _______________________________________________ CoreSight mailing list CoreSight@lists.linaro.org https://lists.linaro.org/mailman/listinfo/coresight
-- Mike Leach Principal Engineer, ARM Ltd. Manchester Design Centre. UK