[dpdk-dev] doc: add how to enable empty cycles profiling
Checks
Commit Message
From: Ilia Kurakin <ilia.kurakin@intel.com>
Programmer's Guide: section "Profile Your Application" updated
with how to enable ITT tasks collection. Based on patch:
http://dpdk.org/dev/patchwork/patch/27158/
Signed-off-by: Ilia Kurakin <ilia.kurakin@intel.com>
---
doc/guides/prog_guide/profile_app.rst | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
Comments
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of
> ilia.kurakin@intel.com
> Sent: Monday, July 24, 2017 6:24 PM
> To: dev@dpdk.org
> Cc: jerin.jacob@caviumnetworks.com; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; Wiles, Keith <keith.wiles@intel.com>;
> Galanov, Dmitry <dmitry.galanov@intel.com>; Kurakin, Ilia
> <ilia.kurakin@intel.com>
> Subject: [dpdk-dev] [PATCH] doc: add how to enable empty cycles profiling
>
> From: Ilia Kurakin <ilia.kurakin@intel.com>
>
> Programmer's Guide: section "Profile Your Application" updated with how to
> enable ITT tasks collection. Based on patch:
> http://dpdk.org/dev/patchwork/patch/27158/
Hi Ilia,
Thanks for the doc patch.
>
> +Profiling wasted iterations with ITT
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Probably better to call this VTune ITT
> +
> +Iterations that yielded no RX packets (wasted loop iterations) can be
> +analyzed using Intel® VTune\ :sup:`TM` Amplifier.
You don't need a superscript here. You can use the TM symbol directly like
the previous (R) symbol.
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
For future patches you should omit this footer. I'll send you some instructions
on how to do that.
John
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Mcnamara, John
> Sent: Tuesday, July 25, 2017 11:05 AM
> To: Kurakin, Ilia <ilia.kurakin@intel.com>; dev@dpdk.org
> Cc: jerin.jacob@caviumnetworks.com; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; Wiles, Keith <keith.wiles@intel.com>;
> Galanov, Dmitry <dmitry.galanov@intel.com>; Kurakin, Ilia
> <ilia.kurakin@intel.com>
> Subject: Re: [dpdk-dev] [PATCH] doc: add how to enable empty cycles
> profiling
>
>
>
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of
> > ilia.kurakin@intel.com
> > Sent: Monday, July 24, 2017 6:24 PM
> > To: dev@dpdk.org
> > Cc: jerin.jacob@caviumnetworks.com; Ananyev, Konstantin
> > <konstantin.ananyev@intel.com>; Wiles, Keith <keith.wiles@intel.com>;
> > Galanov, Dmitry <dmitry.galanov@intel.com>; Kurakin, Ilia
> > <ilia.kurakin@intel.com>
> > Subject: [dpdk-dev] [PATCH] doc: add how to enable empty cycles
> > profiling
> >
> > From: Ilia Kurakin <ilia.kurakin@intel.com>
> >
> > Programmer's Guide: section "Profile Your Application" updated with
> > how to enable ITT tasks collection. Based on patch:
> > http://dpdk.org/dev/patchwork/patch/27158/
>
> Hi Ilia,
>
> Thanks for the doc patch.
>
>
> >
> > +Profiling wasted iterations with ITT
> > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Probably better to call this VTune ITT
>
>
> > +
> > +Iterations that yielded no RX packets (wasted loop iterations) can be
> > +analyzed using Intel® VTune\ :sup:`TM` Amplifier.
>
> You don't need a superscript here. You can use the TM symbol directly like
> the previous (R) symbol.
>
P.S., it might to better to move the (R) and (TM) to the previous paragraph
where Vtune is used for the first time.
John
@@ -59,6 +59,40 @@ Refer to the
for details about application profiling.
+Profiling wasted iterations with ITT
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Iterations that yielded no RX packets (wasted loop iterations) can be analyzed
+using Intel® VTune\ :sup:`TM` Amplifier. This profiling employs the
+`Instrumentation and Tracing Technology (ITT) API
+<https://software.intel.com/en-us/node/544195>`_
+feature of VTune Amplifier and requires only reconfiguring the DPDK library,
+no changes in a DPDK application are needed.
+
+To trace wasted iterations on RX queues, first reconfigure DPDK with
+``CONFIG_RTE_ETHDEV_RXTX_CALLBACKS`` and
+``CONFIG_RTE_ETHDEV_PROFILE_ITT_WASTED_RX_ITERATIONS`` enabled.
+
+Then rebuild DPDK, specifying paths to the ITT header and library, which can
+be found in any VTune Amplifier distribution in the *include* and *lib*
+directories respectively:
+
+.. code-block:: console
+
+ make EXTRA_CFLAGS=-I<path to ittnotify.h> \
+ EXTRA_LDLIBS="-L<path to libittnotify.a> -littnotify"
+
+Finally, to see wasted iterations in your performance analysis results,
+select the *"Analyze user tasks, events, and counters"* checkbox in the
+*"Analysis Type"* tab when configuring analysis via VTune Amplifier GUI.
+Alternatively, when running VTune Amplifier via command line, specify
+``-knob enable-user-tasks=true`` option.
+
+Collected regions of wasted iterations will be marked on VTune Amplifier's
+timeline as ITT tasks. These ITT tasks have predefined names, containing
+Ethernet device and RX queue identifiers.
+
+
Profiling on ARM64
------------------