[PATCH 00/17] coresight: Use per-sink trace ID maps for Perf sessions

James Clark james.clark at arm.com
Tue May 7 03:01:07 PDT 2024



On 03/05/2024 21:23, Arnaldo Carvalho de Melo wrote:
> On Mon, Apr 29, 2024 at 04:21:45PM +0100, James Clark wrote:
>> This will allow sessions with more than CORESIGHT_TRACE_IDS_MAX ETMs
>> as long as there are fewer than that many ETMs connected to each sink.
>>
>> Each sink owns its own trace ID map, and any Perf session connecting to
>> that sink will allocate from it, even if the sink is currently in use by
>> other users. This is similar to the existing behavior where the dynamic
>> trace IDs are constant as long as there is any concurrent Perf session
>> active. It's not completely optimal because slightly more IDs will be
>> used than necessary, but the optimal solution involves tracking the PIDs
>> of each session and allocating ID maps based on the session owner. This
>> is difficult to do with the combination of per-thread and per-cpu modes
>> and some scheduling issues. The complexity of this isn't likely to worth
>> it because even with multiple users they'd just see a difference in the
>> ordering of ID allocations rather than hitting any limits (unless the
>> hardware does have too many ETMs connected to one sink).
>>
>> Per-thread mode works but only until there are any overlapping IDs, at
>> which point Perf will error out. Both per-thread mode and sysfs mode are
>> left to future changes, but both can be added on top of this initial
>> implementation and only sysfs mode requires further driver changes.
>>
>> The HW_ID version field hasn't been bumped in order to not break Perf
>> which already has an error condition for other values of that field.
>> Instead a new minor version has been added which signifies that there
>> are new fields but the old fields are backwards compatible.
> 
> I guess I can pick the tooling part now, right? Further reviewing would
> be nice tho.
> 
> - Arnaldo

Is it ok if we wait for the driver changes to be merged first? There
might some review comments which need a format change to the packets and
then a re-write of the tool changes.

You could take 1 and 2 though because they're unrelated.

Thanks
James



More information about the linux-arm-kernel mailing list