[RFC 02/11] coresight: etm-perf: Allow an event to use different sinks

Suzuki K Poulose suzuki.poulose at arm.com
Thu Nov 12 06:09:49 EST 2020


On 11/12/20 10:37 AM, Linu Cherian wrote:
> Hi Suzuki,
> 
> On Thu, Nov 12, 2020 at 2:51 PM Suzuki K Poulose <suzuki.poulose at arm.com> wrote:
>>
>> Hi Linu,
>>
>> Please could you test this slightly modified version and give us
>> a Tested-by tag if you are happy with the results ?
>>
>> Suzuki
>>
>>
>> On 11/10/20 12:45 PM, Anshuman Khandual wrote:
>>> From: Suzuki K Poulose <suzuki.poulose at arm.com>
>>>
>>> When there are multiple sinks on the system, in the absence
>>> of a specified sink, it is quite possible that a default sink
>>> for an ETM could be different from that of another ETM. However
>>> we do not support having multiple sinks for an event yet. This
>>> patch allows the event to use the default sinks on the ETMs
>>> where they are scheduled as long as the sinks are of the same
>>> type.
>>>
>>> e.g, if we have 1x1 topology with per-CPU ETRs, the event can
>>> use the per-CPU ETR for the session. However, if the sinks
>>> are of different type, e.g TMC-ETR on one and a custom sink
>>> on another, the event will only trace on the first detected
>>> sink.
>>>
>>> Signed-off-by: Suzuki K Poulose <suzuki.poulose at arm.com>
>>> Signed-off-by: Anshuman Khandual <anshuman.khandual at arm.com>
>>> ---


>>> @@ -284,7 +307,12 @@ static void *etm_setup_aux(struct perf_event *event, void **pages,
>>>        if (!sink_ops(sink)->alloc_buffer || !sink_ops(sink)->free_buffer)
>>>                goto err;
>>>
>>> -     /* Allocate the sink buffer for this session */
>>> +     /*
>>> +      * Allocate the sink buffer for this session. All the sinks
>>> +      * where this event can be scheduled are ensured to be of the
>>> +      * same type. Thus the same sink configuration is used by the
>>> +      * sinks.
>>> +      */
>>>        event_data->snk_config =
>>>                        sink_ops(sink)->alloc_buffer(sink, event, pages,
>>>                                                     nr_pages, overwrite);
>>>
>>
> 
> Perf record and report worked fine with this as well, with formatting
> related opencsd hacks.
> 
> Tested-by : Linu Cherian <lcherian at marvell.com>

Thanks Linu, much appreciated.

Suzuki



More information about the linux-arm-kernel mailing list