diff mbox series

[ovs-dev] Documentation: add notes for TSO & i40e

Message ID 20200113154829.70855-1-ciara.loftus@intel.com
State Superseded
Headers show
Series [ovs-dev] Documentation: add notes for TSO & i40e | expand

Commit Message

Ciara Loftus Jan. 13, 2020, 3:48 p.m. UTC
When using TSO in OVS-DPDK with an i40e device, the following
commit is required for DPDK, which fixes an issue on the TSO path:
http://git.dpdk.org/next/dpdk-next-net/commit/?id=b2a4dc260139409c539fb8e7f1b9d0a5182cfd2b
Document this as a limitation until a DPDK release with the fix
included is supported by OVS.

Also, document best known methods for performance tuning when
testing TSO with the tool iperf.

Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
---
 Documentation/topics/dpdk/tso.rst | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

Comments

0-day Robot Jan. 13, 2020, 3:55 p.m. UTC | #1
Bleep bloop.  Greetings Ciara Loftus, I am a robot and I have tried out your patch.
Thanks for your contribution.

I encountered some error that I wasn't expecting.  See the details below.


git-am:
Failed to merge in the changes.
Patch failed at 0001 Documentation: add notes for TSO & i40e
The copy of the patch that failed is found in:
   /var/lib/jenkins/jobs/upstream_build_from_pw/workspace/.git/rebase-apply/patch
When you have resolved this problem, run "git am --resolved".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".


Please check this out.  If you feel there has been an error, please email aconole@redhat.com

Thanks,
0-day Robot
David Marchand Jan. 13, 2020, 3:57 p.m. UTC | #2
On Mon, Jan 13, 2020 at 4:49 PM Ciara Loftus <ciara.loftus@intel.com> wrote:
>
> When using TSO in OVS-DPDK with an i40e device, the following
> commit is required for DPDK, which fixes an issue on the TSO path:
> http://git.dpdk.org/next/dpdk-next-net/commit/?id=b2a4dc260139409c539fb8e7f1b9d0a5182cfd2b

Please avoid referencing dpdk-next-net sha1's, as this tree is rebased
on dpdk master quite frequently.
This commit will reach the master branch in a few days hopefully
(20.02-rc1 is expected this week).

In URLs, prefer https://.


> Document this as a limitation until a DPDK release with the fix
> included is supported by OVS.
>
> Also, document best known methods for performance tuning when
> testing TSO with the tool iperf.
>
> Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
> ---
>  Documentation/topics/dpdk/tso.rst | 27 +++++++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
>
> diff --git a/Documentation/topics/dpdk/tso.rst b/Documentation/topics/dpdk/tso.rst
> index 189c86480..5c56c458c 100644
> --- a/Documentation/topics/dpdk/tso.rst
> +++ b/Documentation/topics/dpdk/tso.rst
> @@ -94,3 +94,30 @@ datapath must support TSO or packets using that feature will be dropped
>  on ports without TSO support.  That also means guests using vhost-user
>  in client mode will receive TSO packet regardless of TSO being enabled
>  or disabled within the guest.
> +
> +When the NIC performing the segmentation is using the i40e DPDK PMD, a fix
> +must be included in the DPDK build, otherwise TSO will not work. The fix can
> +be found on `the dpdk.org net-next tree`__.
> +
> +__ http://git.dpdk.org/next/dpdk-next-net/commit/?id=e975e3720ba16278c6b43f8938b75710573bbd6a

Ditto.


> +
> +This fix is expected to be included in the 19.11.1 release. When OVS migrates
> +to this DPDK release, this limitation can be removed.
> +
> +~~~~~~~~~~~~~~~~~~
> +Performance Tuning
> +~~~~~~~~~~~~~~~~~~
> +
> +iperf is often used to test TSO performance. Care needs to be taken when
> +configuring the environment in which the iperf server process is being run.
> +Since the iperf server uses the NIC's kernel driver, IRQs will be generated.
> +By default with some NICs eg. i40e, the IRQs will land on the same core as that
> +which is being used by the server process, provided the number of NIC queues is
> +greater or equal to that lcoreid. This causes contention between the iperf
> +server process and the IRQs. For optimal performance, it is suggested to pin
> +the IRQs to their own core. To change the affinity associated with a given IRQ
> +number, you can 'echo' the desired coremask to the file
> +/proc/irq/<number>/smp_affinity
> +For more on SMP affinity, refer to the `Linux kernel documentation`__.
> +
> +__ https://www.kernel.org/doc/Documentation/IRQ-affinity.txt
> --
> 2.17.1
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
Flavio Leitner Jan. 13, 2020, 7:47 p.m. UTC | #3
On Mon, Jan 13, 2020 at 03:48:29PM +0000, Ciara Loftus wrote:
> When using TSO in OVS-DPDK with an i40e device, the following
> commit is required for DPDK, which fixes an issue on the TSO path:
> http://git.dpdk.org/next/dpdk-next-net/commit/?id=b2a4dc260139409c539fb8e7f1b9d0a5182cfd2b
> Document this as a limitation until a DPDK release with the fix
> included is supported by OVS.
> 
> Also, document best known methods for performance tuning when
> testing TSO with the tool iperf.
> 
> Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
> ---

Thanks Ciara!
Acked-by: Flavio Leitner <fbl@sysclose.org>
Ciara Loftus Jan. 14, 2020, 8:41 a.m. UTC | #4
> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Monday 13 January 2020 15:58
> To: Loftus, Ciara <ciara.loftus@intel.com>
> Cc: ovs dev <dev@openvswitch.org>; Flavio Leitner <fbl@sysclose.org>;
> Stokes, Ian <ian.stokes@intel.com>
> Subject: Re: [ovs-dev] [PATCH] Documentation: add notes for TSO & i40e
> 
> On Mon, Jan 13, 2020 at 4:49 PM Ciara Loftus <ciara.loftus@intel.com> wrote:
> >
> > When using TSO in OVS-DPDK with an i40e device, the following
> > commit is required for DPDK, which fixes an issue on the TSO path:
> > http://git.dpdk.org/next/dpdk-next-
> net/commit/?id=b2a4dc260139409c539fb8e7f1b9d0a5182cfd2b
> 
> Please avoid referencing dpdk-next-net sha1's, as this tree is rebased
> on dpdk master quite frequently.
> This commit will reach the master branch in a few days hopefully
> (20.02-rc1 is expected this week).
> 
> In URLs, prefer https://.

Thanks for the feedback David.

I'll hold off submitting a v2 anyway until Flavio's series on which this patch depends is merged, to avoid the 0-day errors. So hopefully by then the fix will have reached the master branch and I can include the appropriate sha1, or alternatively a link to the patchwork patch.

Thanks,
Ciara
> 
> 
> > Document this as a limitation until a DPDK release with the fix
> > included is supported by OVS.
> >
> > Also, document best known methods for performance tuning when
> > testing TSO with the tool iperf.
> >
> > Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
> > ---
> >  Documentation/topics/dpdk/tso.rst | 27
> +++++++++++++++++++++++++++
> >  1 file changed, 27 insertions(+)
> >
> > diff --git a/Documentation/topics/dpdk/tso.rst
> b/Documentation/topics/dpdk/tso.rst
> > index 189c86480..5c56c458c 100644
> > --- a/Documentation/topics/dpdk/tso.rst
> > +++ b/Documentation/topics/dpdk/tso.rst
> > @@ -94,3 +94,30 @@ datapath must support TSO or packets using that
> feature will be dropped
> >  on ports without TSO support.  That also means guests using vhost-user
> >  in client mode will receive TSO packet regardless of TSO being enabled
> >  or disabled within the guest.
> > +
> > +When the NIC performing the segmentation is using the i40e DPDK PMD,
> a fix
> > +must be included in the DPDK build, otherwise TSO will not work. The fix
> can
> > +be found on `the dpdk.org net-next tree`__.
> > +
> > +__ http://git.dpdk.org/next/dpdk-next-
> net/commit/?id=e975e3720ba16278c6b43f8938b75710573bbd6a
> 
> Ditto.
> 
> 
> > +
> > +This fix is expected to be included in the 19.11.1 release. When OVS
> migrates
> > +to this DPDK release, this limitation can be removed.
> > +
> > +~~~~~~~~~~~~~~~~~~
> > +Performance Tuning
> > +~~~~~~~~~~~~~~~~~~
> > +
> > +iperf is often used to test TSO performance. Care needs to be taken when
> > +configuring the environment in which the iperf server process is being
> run.
> > +Since the iperf server uses the NIC's kernel driver, IRQs will be generated.
> > +By default with some NICs eg. i40e, the IRQs will land on the same core as
> that
> > +which is being used by the server process, provided the number of NIC
> queues is
> > +greater or equal to that lcoreid. This causes contention between the iperf
> > +server process and the IRQs. For optimal performance, it is suggested to
> pin
> > +the IRQs to their own core. To change the affinity associated with a given
> IRQ
> > +number, you can 'echo' the desired coremask to the file
> > +/proc/irq/<number>/smp_affinity
> > +For more on SMP affinity, refer to the `Linux kernel documentation`__.
> > +
> > +__ https://www.kernel.org/doc/Documentation/IRQ-affinity.txt
> > --
> > 2.17.1
> >
> > _______________________________________________
> > dev mailing list
> > dev@openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> >
> 
> 
> --
> David Marchand
diff mbox series

Patch

diff --git a/Documentation/topics/dpdk/tso.rst b/Documentation/topics/dpdk/tso.rst
index 189c86480..5c56c458c 100644
--- a/Documentation/topics/dpdk/tso.rst
+++ b/Documentation/topics/dpdk/tso.rst
@@ -94,3 +94,30 @@  datapath must support TSO or packets using that feature will be dropped
 on ports without TSO support.  That also means guests using vhost-user
 in client mode will receive TSO packet regardless of TSO being enabled
 or disabled within the guest.
+
+When the NIC performing the segmentation is using the i40e DPDK PMD, a fix
+must be included in the DPDK build, otherwise TSO will not work. The fix can
+be found on `the dpdk.org net-next tree`__.
+
+__ http://git.dpdk.org/next/dpdk-next-net/commit/?id=e975e3720ba16278c6b43f8938b75710573bbd6a
+
+This fix is expected to be included in the 19.11.1 release. When OVS migrates
+to this DPDK release, this limitation can be removed.
+
+~~~~~~~~~~~~~~~~~~
+Performance Tuning
+~~~~~~~~~~~~~~~~~~
+
+iperf is often used to test TSO performance. Care needs to be taken when
+configuring the environment in which the iperf server process is being run.
+Since the iperf server uses the NIC's kernel driver, IRQs will be generated.
+By default with some NICs eg. i40e, the IRQs will land on the same core as that
+which is being used by the server process, provided the number of NIC queues is
+greater or equal to that lcoreid. This causes contention between the iperf
+server process and the IRQs. For optimal performance, it is suggested to pin
+the IRQs to their own core. To change the affinity associated with a given IRQ
+number, you can 'echo' the desired coremask to the file
+/proc/irq/<number>/smp_affinity
+For more on SMP affinity, refer to the `Linux kernel documentation`__.
+
+__ https://www.kernel.org/doc/Documentation/IRQ-affinity.txt