On Thu, 25 Sept 2025 at 17:04, Leo Yan leo.yan@arm.com wrote:
On Thu, Sep 25, 2025 at 11:10:51AM +0100, James Clark wrote:
I would suggest in the csdev (coresight_device) structure itself. We already have some sink specific data in here e.g. perf_sink_id_map.
[...]
I think this data is specific to the session we are enabling the device(s) in. e.g., we keep the trace-id in the path. So, I don't mind having this in the path structure. Instead of modifying csdev with additional locking from "etm-perf" it is always cleaner to handle this in the path.
Yeah, and perf_sink_id_map only "needs" to be in the csdev because it controls sharing IDs between multiple paths which can't be accomplished by storing it in the path.
This is a bit off-topic: do we really need to maintain an id_map in every sink device, or could we simply use a global id_map?
I might miss some info; anyway, consolidating trace IDs is a low priority for me and not critical to this thread. But this might be benefit for later refactoring.
Thanks, Leo
There is a limit to the number of IDs that can be used - using ID map per sink means that IDs can be re-used in different sinks.
This was added to overcome this problem in large multi-core systems where there are more PEs than Available IDs.
Mike