From: Steve Clevenger <scclevenger@os.amperecomputing.com>
To: James Clark <james.clark@linaro.org>, coresight@lists.linaro.org
Cc: yeoreum.yun@arm.com, Mike Leach <mike.leach@linaro.org>,
Jonathan Corbet <corbet@lwn.net>, Leo Yan <leo.yan@linux.dev>,
Namhyung Kim <namhyung@kernel.org>,
linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] coresight: docs: Remove target sink from examples
Date: Wed, 11 Dec 2024 10:01:41 -0800 [thread overview]
Message-ID: <9e53f5b9-d8a9-46b8-8ff1-7f018e2d9c06@os.amperecomputing.com> (raw)
In-Reply-To: <20241210144933.295798-1-james.clark@linaro.org>
Hi James,
I thought I'd mention this issue with multicore self-hosted trace. The
perf command line syntax does not allow a sink "type" to be specified
(e.g. @tmc_etf or @tmc_etr). For multicore, it doesn't make sense to
specify a processor mapped sink as would be the case for single core
trace. A sink "type" should be allowed to avoid the auto select default.
In our case, the default is the ETF sink.
Thanks,
Steve C.
On 12/10/2024 6:49 AM, James Clark wrote:
> Previously the sink had to be specified, but now it auto selects one by
> default. Including a sink in the examples causes issues when copy
> pasting the command because it might not work if that sink isn't
> present. Remove the sink from all the basic examples and create a new
> section specifically about overriding the default one.
>
> Make the text a but more concise now that it's in the advanced section,
> and similarly for removing the old kernel advice.
>
> Signed-off-by: James Clark <james.clark@linaro.org>
> ---
> Documentation/trace/coresight/coresight.rst | 41 ++++++++-----------
> .../userspace-api/perf_ring_buffer.rst | 4 +-
> 2 files changed, 18 insertions(+), 27 deletions(-)
>
> diff --git a/Documentation/trace/coresight/coresight.rst b/Documentation/trace/coresight/coresight.rst
> index d4f93d6a2d63..806699871b80 100644
> --- a/Documentation/trace/coresight/coresight.rst
> +++ b/Documentation/trace/coresight/coresight.rst
> @@ -462,44 +462,35 @@ queried by the perf command line tool:
>
> cs_etm// [Kernel PMU event]
>
> - linaro@linaro-nano:~$
> -
> Regardless of the number of tracers available in a system (usually equal to the
> amount of processor cores), the "cs_etm" PMU will be listed only once.
>
> A Coresight PMU works the same way as any other PMU, i.e the name of the PMU is
> -listed along with configuration options within forward slashes '/'. Since a
> -Coresight system will typically have more than one sink, the name of the sink to
> -work with needs to be specified as an event option.
> -On newer kernels the available sinks are listed in sysFS under
> +provided along with configuration options within forward slashes '/' (see
> +`Config option formats`_).
> +
> +Advanced Perf framework usage
> +-----------------------------
> +
> +Sink selection
> +~~~~~~~~~~~~~~
> +
> +An appropriate sink will be selected automatically for use with Perf, but since
> +there will typically be more than one sink, the name of the sink to use may be
> +specified as a special config option prefixed with '@'.
> +
> +The available sinks are listed in sysFS under
> ($SYSFS)/bus/event_source/devices/cs_etm/sinks/::
>
> root@localhost:/sys/bus/event_source/devices/cs_etm/sinks# ls
> tmc_etf0 tmc_etr0 tpiu0
>
> -On older kernels, this may need to be found from the list of coresight devices,
> -available under ($SYSFS)/bus/coresight/devices/::
> -
> - root:~# ls /sys/bus/coresight/devices/
> - etm0 etm1 etm2 etm3 etm4 etm5 funnel0
> - funnel1 funnel2 replicator0 stm0 tmc_etf0 tmc_etr0 tpiu0
> root@linaro-nano:~# perf record -e cs_etm/@tmc_etr0/u --per-thread program
>
> -As mentioned above in section "Device Naming scheme", the names of the devices could
> -look different from what is used in the example above. One must use the device names
> -as it appears under the sysFS.
> -
> -The syntax within the forward slashes '/' is important. The '@' character
> -tells the parser that a sink is about to be specified and that this is the sink
> -to use for the trace session.
> -
> More information on the above and other example on how to use Coresight with
> the perf tools can be found in the "HOWTO.md" file of the openCSD gitHub
> repository [#third]_.
>
> -Advanced perf framework usage
> ------------------------------
> -
> AutoFDO analysis using the perf tools
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> @@ -508,7 +499,7 @@ perf can be used to record and analyze trace of programs.
> Execution can be recorded using 'perf record' with the cs_etm event,
> specifying the name of the sink to record to, e.g::
>
> - perf record -e cs_etm/@tmc_etr0/u --per-thread
> + perf record -e cs_etm//u --per-thread
>
> The 'perf report' and 'perf script' commands can be used to analyze execution,
> synthesizing instruction and branch events from the instruction trace.
> @@ -572,7 +563,7 @@ sort example is from the AutoFDO tutorial (https://gcc.gnu.org/wiki/AutoFDO/Tuto
> Bubble sorting array of 30000 elements
> 5910 ms
>
> - $ perf record -e cs_etm/@tmc_etr0/u --per-thread taskset -c 2 ./sort
> + $ perf record -e cs_etm//u --per-thread taskset -c 2 ./sort
> Bubble sorting array of 30000 elements
> 12543 ms
> [ perf record: Woken up 35 times to write data ]
> diff --git a/Documentation/userspace-api/perf_ring_buffer.rst b/Documentation/userspace-api/perf_ring_buffer.rst
> index bde9d8cbc106..dc71544532ce 100644
> --- a/Documentation/userspace-api/perf_ring_buffer.rst
> +++ b/Documentation/userspace-api/perf_ring_buffer.rst
> @@ -627,7 +627,7 @@ regular ring buffer.
> AUX events and AUX trace data are two different things. Let's see an
> example::
>
> - perf record -a -e cycles -e cs_etm/@tmc_etr0/ -- sleep 2
> + perf record -a -e cycles -e cs_etm// -- sleep 2
>
> The above command enables two events: one is the event *cycles* from PMU
> and another is the AUX event *cs_etm* from Arm CoreSight, both are saved
> @@ -766,7 +766,7 @@ only record AUX trace data at a specific time point which users are
> interested in. E.g. below gives an example of how to take snapshots
> with 1 second interval with Arm CoreSight::
>
> - perf record -e cs_etm/@tmc_etr0/u -S -a program &
> + perf record -e cs_etm//u -S -a program &
> PERFPID=$!
> while true; do
> kill -USR2 $PERFPID
next prev parent reply other threads:[~2024-12-11 18:01 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-10 14:49 James Clark
2024-12-11 18:01 ` Steve Clevenger [this message]
2024-12-12 15:27 ` James Clark
2024-12-12 19:38 ` Steve Clevenger
2024-12-17 17:17 ` James Clark
2025-03-05 15:51 ` James Clark
2025-03-11 10:22 ` Leo Yan
2025-03-11 10:51 ` James Clark
2025-03-11 13:57 ` Leo Yan
2025-03-11 14:57 ` 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=9e53f5b9-d8a9-46b8-8ff1-7f018e2d9c06@os.amperecomputing.com \
--to=scclevenger@os.amperecomputing.com \
--cc=corbet@lwn.net \
--cc=coresight@lists.linaro.org \
--cc=james.clark@linaro.org \
--cc=leo.yan@linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mike.leach@linaro.org \
--cc=namhyung@kernel.org \
--cc=yeoreum.yun@arm.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
all inboxes | Powered by JetHome®