From: Yicong Yang <yangyicong@hisilicon.com>
To: Leo Yan <leo.yan@linaro.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>,
<linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<coresight@lists.linaro.org>, <linux-pci@vger.kernel.org>,
<helgaas@kernel.org>, <gregkh@linuxfoundation.org>,
<lorenzo.pieralisi@arm.com>, <will@kernel.org>,
<mark.rutland@arm.com>, <mathieu.poirier@linaro.org>,
<suzuki.poulose@arm.com>, <mike.leach@linaro.org>,
<jonathan.cameron@huawei.com>, <song.bao.hua@hisilicon.com>,
<john.garry@huawei.com>, <prime.zeng@huawei.com>,
<liuqi115@huawei.com>, <zhangshaokun@hisilicon.com>,
<linuxarm@huawei.com>
Subject: Re: [PATCH RESEND 0/4] Add support for HiSilicon PCIe Tune and Trace device
Date: Thu, 22 Apr 2021 20:54:47 +0800 [thread overview]
Message-ID: <955f89c6-a330-fd64-f530-43435f5cafcb@hisilicon.com> (raw)
In-Reply-To: <20210422034929.GA13004@leoy-ThinkPad-X240s>
On 2021/4/22 11:49, Leo Yan wrote:
> On Mon, Apr 19, 2021 at 09:03:18PM +0800, Yicong Yang wrote:
>> On 2021/4/17 21:56, Alexander Shishkin wrote:
>>> Yicong Yang <yangyicong@hisilicon.com> writes:
>>>
>>>> The reason for not using perf is because there is no current support
>>>> for uncore tracing in the perf facilities.
>>>
>>> Not unless you count
>>>
>>> $ perf list|grep -ic uncore
>>> 77
>>>
>>
>> these are uncore events probably do not support sampling.
>>
>> I tried on x86:
>>
>> # ./perf record -e uncore_imc_0/cas_count_read/
>> Error:
>> The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (uncore_imc_0/cas_count_read/).
>> /bin/dmesg | grep -i perf may provide additional information.
>>
>> For HiSilicon uncore PMUs, we don't support uncore sampling:
>>
>> 'The current driver does not support sampling. So "perf record" is unsupported. ' [1]
>>
>> and also in another PMU:
>>
>> 'PMU doesn't support process specific events and cannot be used in sampling mode.' [2]
>>
>> [1] Documentation/admin-guide/perf/hisi-pmu.rst
>> [2] Documentation/admin-guide/perf/arm_dsu_pmu.rst
>
> I did some debugging for this, and yes, it's related with the event
> doesn't support sampling for these x86 uncore events.
>
> So I can use below commands for the uncore event
> 'uncore_imc/data_reads/' in my experiment:
>
> # perf record -e 'uncore_imc/data_reads/' --no-samples -- ls
> # perf stat -e 'uncore_imc/data_reads/' -- ls
>
> For your case, I think you need to write the callback
> pmu::event_init(), it should not forbid any tracing even if set
> sampling, just like other perf event drive for support AUX tracing.
>
thanks for the hint! I didn't know much about perf so I only do
the basic test. will further investigate on this.
>>>> We have our own format
>>>> of data and don't need perf doing the parsing.
>>>
>>> Perf has AUX buffers, which are used for all kinds of own formats.
>>>
>>
>> ok. we thought perf will break the data format but AUX buffers seems won't.
>> do we need to add full support for tracing as well as parsing or it's ok for
>> not parsing it through perf?
>
> IMHO, this could divide into two parts. The first part is to enable
> perf drive with support AUX tracing, and perf tool can capture the trace
> data. The second part is to add the decoder in the perf tool so that
> the developers can *consume* the trace data; for the decoder, you
> could refer the codes:
>
> tools/perf/util/intel-pt-decoder/
> tools/perf/util/cs-etm-decoder/
>
> Or Arm SPE case:
>
> tools/perf/util/arm-spe-decoder/
>
will refer to these implementation to see how to add the decoder for our
traced data. very detailed guidance!
>>>> A similar approach for implementing this function is ETM, which use
>>>> sysfs for configuring and a character device for dumping data.
>>>
>>> And also perf. One reason ETM has a sysfs interface is because the
>>> driver predates perf's AUX buffers. Can't say if it's the only
>>> reason. I'm assuming you're talking about Coresight ETM.
>
> I am not the best person to give background for this. Mathieu or Mike
> could give more info for this. From my undersanding, Sysfs nodes can
> be used as knobs for configuration, but it's difficult for profiling.
>
as explained by the maintainers that there are some historical reasons for
having sysfs interfaces for ETM as there is no perf AUX buffers at
beginning. I thought sysfs interface as an option but perf AUX buffer
is better as suggested.
> Let's think about for the profiling, if one developer uses the Sysfs
> for the setting and read out the trace data, these informations are
> discrete. If another developer wants to review the profiling result,
> then all these info need to be shared together.
>
ok. make sense to me.
> So we can benefit much from the perf tool for the usage, since all the
> profiling context will be gathered (DSOs, hardware configuration which
> can be saved into metadata), so the final profiling file can be easily
> shared and more friendly for reviewing.
>
ok. it will be beneficial if we use perf for both tracing and decoding,
as we'll also get addition information attached to the trace data.
Considering we have two functions: tracing and tuning. For tracing we
can make use of perf AUX buffer but for tuning, I still cannot see how to
make use of perf. So probably we can make tuning go through sysfs?
And Daniel suggested so.
Appreciate for the suggestion and guidance!
Regards,
Yicong
> Thanks,
> Leo
>
> .
>
next prev parent reply other threads:[~2021-04-22 12:54 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-17 10:17 [PATCH RESEND 0/4] Add support for HiSilicon PCIe Tune and Trace device Yicong Yang
2021-04-17 10:17 ` [PATCH RESEND 1/4] hwtracing: Add trace function " Yicong Yang
2021-04-17 10:17 ` [PATCH RESEND 2/4] hwtracing: Add tune " Yicong Yang
2021-04-17 10:17 ` [PATCH RESEND 3/4] docs: Add HiSilicon PTT device driver documentation Yicong Yang
2021-04-19 9:07 ` Daniel Thompson
2021-04-19 13:12 ` Yicong Yang
2021-04-17 10:17 ` [PATCH RESEND 4/4] MAINTAINERS: Add maintainer for HiSilicon PTT driver Yicong Yang
2021-04-17 13:56 ` [PATCH RESEND 0/4] Add support for HiSilicon PCIe Tune and Trace device Alexander Shishkin
2021-04-19 13:03 ` Yicong Yang
2021-04-22 3:49 ` Leo Yan
2021-04-22 12:54 ` Yicong Yang [this message]
2021-04-19 11:17 ` Suzuki K Poulose
2021-04-19 13:21 ` Yicong Yang
2021-04-19 16:11 ` Suzuki K Poulose
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=955f89c6-a330-fd64-f530-43435f5cafcb@hisilicon.com \
--to=yangyicong@hisilicon.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=coresight@lists.linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=helgaas@kernel.org \
--cc=john.garry@huawei.com \
--cc=jonathan.cameron@huawei.com \
--cc=leo.yan@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=liuqi115@huawei.com \
--cc=lorenzo.pieralisi@arm.com \
--cc=mark.rutland@arm.com \
--cc=mathieu.poirier@linaro.org \
--cc=mike.leach@linaro.org \
--cc=prime.zeng@huawei.com \
--cc=song.bao.hua@hisilicon.com \
--cc=suzuki.poulose@arm.com \
--cc=will@kernel.org \
--cc=zhangshaokun@hisilicon.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).