[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2e51db24-5d37-7f3f-c306-adde5fbe0dff@arm.com>
Date: Thu, 12 Nov 2020 11:09:49 +0000
From: Suzuki K Poulose <suzuki.poulose@....com>
To: Linu Cherian <linuc.decode@...il.com>
Cc: Anshuman Khandual <anshuman.khandual@....com>,
linux-arm-kernel <linux-arm-kernel@...ts.infradead.org>,
Coresight ML <coresight@...ts.linaro.org>,
linux-kernel@...r.kernel.org,
Mathieu Poirier <mathieu.poirier@...aro.org>,
Mike Leach <mike.leach@...aro.org>,
Linu Cherian <lcherian@...vell.com>
Subject: Re: [RFC 02/11] coresight: etm-perf: Allow an event to use different
sinks
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@....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@....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@....com>
>>> Signed-off-by: Anshuman Khandual <anshuman.khandual@....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@...vell.com>
Thanks Linu, much appreciated.
Suzuki
Powered by blists - more mailing lists