On 11 July 2017 at 09:25, Etemadi, Mohammad mohammad.etemadi@intel.com wrote:
Hello Mathew
In our platform we have a few clusters each has its own funnel and ETF. There is no ETR. Each cluster has 4 ETMs.
How can I enable the trace for all the clusters? Does the following commands only enables the trace in one cluster?
How can I enable trace for all the clusters?
perf record -e cs_etm/@8008010000.etf/ --per-thread uname
perf record -e cs_etm/@8008030000.etf/ --per-thread uname
perf record -e cs_etm/@8008050000.etf/ --per-thread uname
perf record -e cs_etm/@8008070000.etf/ --per-thread uname
Hi Reza,
I'm adding the CoreSight mailing list, there is a lot of knowledgeable people on there that can help you if I'm not around or don't know the answer to your questions. I suggest you CC the list when you need information.
From the above description I deduce the platform doesn't have a common
sink for all the tracers available on the board - instead it has an ETF for each cluster. When I wrote the CS drivers I could foresee this kind of topology would show up one day but simply didn't have any HW to test on. As such it was written with the assumption that all tracers have a common sink. Yours is the second platform I'm being told about where my initial assumptions don't hold anymore.
Unfortunately there is no way to enable traces for all clusters with the current implementation. I have plans to work on it though... For now you will need to use the taskset utility to confine an application to specific processors. So something like:
# perf record -e cs_etm/@8008010000.etf/ --per-thread taskset 0x($MASK) uname
will do the trick.
Thanks, Mathieu
Regards, Reza