DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] doc: announce ABI change on ethdev
@ 2017-05-01  6:58 Shahaf Shuler
  2017-05-09 10:24 ` Shahaf Shuler
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Shahaf Shuler @ 2017-05-01  6:58 UTC (permalink / raw)
  To: dev

This is an ABI change notice for DPDK 17.08 in librte_ether
about changes in rte_eth_txmode structure.

Currently Tx offloads are enabled by default, and can be disabled
using ETH_TXQ_FLAGS_NO* flags. This behaviour is not consistent with
the Rx side where the Rx offloads are disabled by default and enabled
according to bit field in rte_eth_rxmode structure.

The proposal is to disable the Tx offloads by default, and provide
a way for the application to enable them in rte_eth_txmode structure.
Besides of making the Tx configuration API more consistent for
applications, PMDs will be able to provide a better out of the
box performance.
Finally, as part of the work, the ETH_TXQ_FLAGS_NO* will
be superseded as well.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
---
looks like this patch has arrived to everyone     
besides dev@dpdk.org resending it again. sorry for
the noise.                                        
---
 doc/guides/rel_notes/deprecation.rst | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index a3e7c720c..0920b4766 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -81,3 +81,11 @@ Deprecation Notices
 
   - ``rte_crpytodev_scheduler_mode_get``, replaced by ``rte_cryptodev_scheduler_mode_get``
   - ``rte_crpytodev_scheduler_mode_set``, replaced by ``rte_cryptodev_scheduler_mode_set``
+
+* ethdev: in 17.08 ABI changes are planned:
+  Tx offloads will no longer be enabled by default.
+  Instead, the ``rte_eth_txmode`` structure will be extended with bit field to enable
+  each Tx offload.
+  Besides of making the Rx/Tx configuration API more consistent for the
+  application, PMDs will be able to provide a better out of the box performance.
+  as part of the work, ``ETH_TXQ_FLAGS_NO*`` will be superseded as well.
-- 
2.12.0

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: announce ABI change on ethdev
  2017-05-01  6:58 [dpdk-dev] [PATCH] doc: announce ABI change on ethdev Shahaf Shuler
@ 2017-05-09 10:24 ` Shahaf Shuler
  2017-05-09 13:40 ` Adrien Mazarguil
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Shahaf Shuler @ 2017-05-09 10:24 UTC (permalink / raw)
  To: dev; +Cc: Thomas Monjalon

Monday, May 1, 2017 9:58 AM, Shahaf Shuler:
> 
> This is an ABI change notice for DPDK 17.08 in librte_ether about changes in
> rte_eth_txmode structure.
> 
> Currently Tx offloads are enabled by default, and can be disabled using
> ETH_TXQ_FLAGS_NO* flags. This behaviour is not consistent with the Rx side
> where the Rx offloads are disabled by default and enabled according to bit
> field in rte_eth_rxmode structure.
> 
> The proposal is to disable the Tx offloads by default, and provide a way for
> the application to enable them in rte_eth_txmode structure.
> Besides of making the Tx configuration API more consistent for applications,
> PMDs will be able to provide a better out of the box performance.
> Finally, as part of the work, the ETH_TXQ_FLAGS_NO* will be superseded as
> well.
> 
> Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>

Hi, 
Any comments on this announcement? 

Please have a min to read and comment. 
This work can improve all PMDs data path code, which will be according to application needs.

> ---
> looks like this patch has arrived to everyone
> besides dev@dpdk.org resending it again. sorry for
> the noise.
> ---
>  doc/guides/rel_notes/deprecation.rst | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/doc/guides/rel_notes/deprecation.rst
> b/doc/guides/rel_notes/deprecation.rst
> index a3e7c720c..0920b4766 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -81,3 +81,11 @@ Deprecation Notices
> 
>    - ``rte_crpytodev_scheduler_mode_get``, replaced by
> ``rte_cryptodev_scheduler_mode_get``
>    - ``rte_crpytodev_scheduler_mode_set``, replaced by
> ``rte_cryptodev_scheduler_mode_set``
> +
> +* ethdev: in 17.08 ABI changes are planned:
> +  Tx offloads will no longer be enabled by default.
> +  Instead, the ``rte_eth_txmode`` structure will be extended with bit
> +field to enable
> +  each Tx offload.
> +  Besides of making the Rx/Tx configuration API more consistent for the
> +  application, PMDs will be able to provide a better out of the box
> performance.
> +  as part of the work, ``ETH_TXQ_FLAGS_NO*`` will be superseded as well.
> --
> 2.12.0

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: announce ABI change on ethdev
  2017-05-01  6:58 [dpdk-dev] [PATCH] doc: announce ABI change on ethdev Shahaf Shuler
  2017-05-09 10:24 ` Shahaf Shuler
@ 2017-05-09 13:40 ` Adrien Mazarguil
  2017-05-09 17:04   ` Jerin Jacob
  2017-05-09 13:49 ` Ferruh Yigit
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Adrien Mazarguil @ 2017-05-09 13:40 UTC (permalink / raw)
  To: Shahaf Shuler, Konstantin Ananyev, Olivier Matz, Tomasz Kulasek; +Cc: dev

On Mon, May 01, 2017 at 09:58:12AM +0300, Shahaf Shuler wrote:
> This is an ABI change notice for DPDK 17.08 in librte_ether
> about changes in rte_eth_txmode structure.
> 
> Currently Tx offloads are enabled by default, and can be disabled
> using ETH_TXQ_FLAGS_NO* flags. This behaviour is not consistent with
> the Rx side where the Rx offloads are disabled by default and enabled
> according to bit field in rte_eth_rxmode structure.
> 
> The proposal is to disable the Tx offloads by default, and provide
> a way for the application to enable them in rte_eth_txmode structure.
> Besides of making the Tx configuration API more consistent for
> applications, PMDs will be able to provide a better out of the
> box performance.
> Finally, as part of the work, the ETH_TXQ_FLAGS_NO* will
> be superseded as well.
> 
> Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>

Basically, TX mbuf flags like TSO and checksum offloads won't have to be
honored by PMDs unless applications request them first while configuring the
device, just like RX offloads.

Considering more and more TX offloads will be added over time, I do not
think expecting them all to be enabled by default is sane. There will always
be an associated software cost in PMDs, and this solution allows
applications to selectively enable them as needed for maximum performance.

Konstantin/Olivier/Tomasz, I do not want to resume the thread about
tx_prepare(), however this could provide an alternative means to benefit
from improved performance when applications do not need TSO (or any other
offload for that matter), while adding consistency to device configuration.

What's your opinion?

In any case I'm fine with this change:

Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>

> ---
>  doc/guides/rel_notes/deprecation.rst | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index a3e7c720c..0920b4766 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -81,3 +81,11 @@ Deprecation Notices
>  
>    - ``rte_crpytodev_scheduler_mode_get``, replaced by ``rte_cryptodev_scheduler_mode_get``
>    - ``rte_crpytodev_scheduler_mode_set``, replaced by ``rte_cryptodev_scheduler_mode_set``
> +
> +* ethdev: in 17.08 ABI changes are planned:
> +  Tx offloads will no longer be enabled by default.
> +  Instead, the ``rte_eth_txmode`` structure will be extended with bit field to enable
> +  each Tx offload.
> +  Besides of making the Rx/Tx configuration API more consistent for the
> +  application, PMDs will be able to provide a better out of the box performance.
> +  as part of the work, ``ETH_TXQ_FLAGS_NO*`` will be superseded as well.
> -- 
> 2.12.0
> 

-- 
Adrien Mazarguil
6WIND

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: announce ABI change on ethdev
  2017-05-01  6:58 [dpdk-dev] [PATCH] doc: announce ABI change on ethdev Shahaf Shuler
  2017-05-09 10:24 ` Shahaf Shuler
  2017-05-09 13:40 ` Adrien Mazarguil
@ 2017-05-09 13:49 ` Ferruh Yigit
  2017-05-09 16:55   ` Shahaf Shuler
  2017-05-09 18:09 ` Ananyev, Konstantin
  2017-05-10 14:29 ` Bruce Richardson
  4 siblings, 1 reply; 9+ messages in thread
From: Ferruh Yigit @ 2017-05-09 13:49 UTC (permalink / raw)
  To: Shahaf Shuler, dev

On 5/1/2017 7:58 AM, Shahaf Shuler wrote:
> This is an ABI change notice for DPDK 17.08 in librte_ether
> about changes in rte_eth_txmode structure.
> 
> Currently Tx offloads are enabled by default, and can be disabled
> using ETH_TXQ_FLAGS_NO* flags. This behaviour is not consistent with
> the Rx side where the Rx offloads are disabled by default and enabled
> according to bit field in rte_eth_rxmode structure.
> 
> The proposal is to disable the Tx offloads by default, and provide
> a way for the application to enable them in rte_eth_txmode structure.
> Besides of making the Tx configuration API more consistent for
> applications, PMDs will be able to provide a better out of the
> box performance.
> Finally, as part of the work, the ETH_TXQ_FLAGS_NO* will
> be superseded as well.
> 
> Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
> ---
> looks like this patch has arrived to everyone     
> besides dev@dpdk.org resending it again. sorry for
> the noise.                                        
> ---
>  doc/guides/rel_notes/deprecation.rst | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index a3e7c720c..0920b4766 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -81,3 +81,11 @@ Deprecation Notices
>  
>    - ``rte_crpytodev_scheduler_mode_get``, replaced by ``rte_cryptodev_scheduler_mode_get``
>    - ``rte_crpytodev_scheduler_mode_set``, replaced by ``rte_cryptodev_scheduler_mode_set``
> +
> +* ethdev: in 17.08 ABI changes are planned:
> +  Tx offloads will no longer be enabled by default.
> +  Instead, the ``rte_eth_txmode`` structure will be extended with bit field to enable
> +  each Tx offload.
> +  Besides of making the Rx/Tx configuration API more consistent for the
> +  application, PMDs will be able to provide a better out of the box performance.

I understand the consistency part, but why PMD performs better when Tx
offload disabled?

> +  as part of the work, ``ETH_TXQ_FLAGS_NO*`` will be superseded as well.
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: announce ABI change on ethdev
  2017-05-09 13:49 ` Ferruh Yigit
@ 2017-05-09 16:55   ` Shahaf Shuler
  0 siblings, 0 replies; 9+ messages in thread
From: Shahaf Shuler @ 2017-05-09 16:55 UTC (permalink / raw)
  To: Ferruh Yigit, dev

Tuesday, May 9, 2017 4:49 PM, Ferruh Yigit:
> On 5/1/2017 7:58 AM, Shahaf Shuler wrote:
> 
> I understand the consistency part, but why PMD performs better when Tx
> offload disabled?
> 

Well Adrien pretty much summarized it [1].

Tx offload consumes cycles, for examples checksum or TSO.
Since those offloads are enabled by default, the application will need to pay for them, even if they are not used.
True, it is possible to disable them, however when new offloads are introduced the application will need to be constantly modified in order to disable the new ones. 

A better approach will be to disable all the Tx offload by default, and enable them according to the application needs. 
This will enable to the PMD to provide the Tx burst function which suits the most to the application specific needs, with no extra overhead.

[1] http://dpdk.org/ml/archives/dev/2017-May/065509.html


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: announce ABI change on ethdev
  2017-05-09 13:40 ` Adrien Mazarguil
@ 2017-05-09 17:04   ` Jerin Jacob
  2017-05-10 23:17     ` Thomas Monjalon
  0 siblings, 1 reply; 9+ messages in thread
From: Jerin Jacob @ 2017-05-09 17:04 UTC (permalink / raw)
  To: Adrien Mazarguil
  Cc: Shahaf Shuler, Konstantin Ananyev, Olivier Matz, Tomasz Kulasek, dev

-----Original Message-----
> Date: Tue, 9 May 2017 15:40:04 +0200
> From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> To: Shahaf Shuler <shahafs@mellanox.com>, Konstantin Ananyev
>  <konstantin.ananyev@intel.com>, Olivier Matz <olivier.matz@6wind.com>,
>  Tomasz Kulasek <tomaszx.kulasek@intel.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] doc: announce ABI change on ethdev
> 
> On Mon, May 01, 2017 at 09:58:12AM +0300, Shahaf Shuler wrote:
> > This is an ABI change notice for DPDK 17.08 in librte_ether
> > about changes in rte_eth_txmode structure.
> > 
> > Currently Tx offloads are enabled by default, and can be disabled
> > using ETH_TXQ_FLAGS_NO* flags. This behaviour is not consistent with
> > the Rx side where the Rx offloads are disabled by default and enabled
> > according to bit field in rte_eth_rxmode structure.
> > 
> > The proposal is to disable the Tx offloads by default, and provide
> > a way for the application to enable them in rte_eth_txmode structure.
> > Besides of making the Tx configuration API more consistent for
> > applications, PMDs will be able to provide a better out of the
> > box performance.
> > Finally, as part of the work, the ETH_TXQ_FLAGS_NO* will
> > be superseded as well.
> > 
> > Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
> 
> Basically, TX mbuf flags like TSO and checksum offloads won't have to be
> honored by PMDs unless applications request them first while configuring the
> device, just like RX offloads.
> 
> Considering more and more TX offloads will be added over time, I do not
> think expecting them all to be enabled by default is sane. There will always
> be an associated software cost in PMDs, and this solution allows
> applications to selectively enable them as needed for maximum performance.
> 
> Konstantin/Olivier/Tomasz, I do not want to resume the thread about
> tx_prepare(), however this could provide an alternative means to benefit
> from improved performance when applications do not need TSO (or any other
> offload for that matter), while adding consistency to device configuration.
> 
> What's your opinion?
> 
> In any case I'm fine with this change:
> 
> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>

Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: announce ABI change on ethdev
  2017-05-01  6:58 [dpdk-dev] [PATCH] doc: announce ABI change on ethdev Shahaf Shuler
                   ` (2 preceding siblings ...)
  2017-05-09 13:49 ` Ferruh Yigit
@ 2017-05-09 18:09 ` Ananyev, Konstantin
  2017-05-10 14:29 ` Bruce Richardson
  4 siblings, 0 replies; 9+ messages in thread
From: Ananyev, Konstantin @ 2017-05-09 18:09 UTC (permalink / raw)
  To: Shahaf Shuler, dev



> 
> This is an ABI change notice for DPDK 17.08 in librte_ether
> about changes in rte_eth_txmode structure.
> 
> Currently Tx offloads are enabled by default, and can be disabled
> using ETH_TXQ_FLAGS_NO* flags. This behaviour is not consistent with
> the Rx side where the Rx offloads are disabled by default and enabled
> according to bit field in rte_eth_rxmode structure.
> 
> The proposal is to disable the Tx offloads by default, and provide
> a way for the application to enable them in rte_eth_txmode structure.
> Besides of making the Tx configuration API more consistent for
> applications, PMDs will be able to provide a better out of the
> box performance.
> Finally, as part of the work, the ETH_TXQ_FLAGS_NO* will
> be superseded as well.
> 
> Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
> ---
> looks like this patch has arrived to everyone
> besides dev@dpdk.org resending it again. sorry for
> the noise.
> ---
>  doc/guides/rel_notes/deprecation.rst | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index a3e7c720c..0920b4766 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -81,3 +81,11 @@ Deprecation Notices
> 
>    - ``rte_crpytodev_scheduler_mode_get``, replaced by ``rte_cryptodev_scheduler_mode_get``
>    - ``rte_crpytodev_scheduler_mode_set``, replaced by ``rte_cryptodev_scheduler_mode_set``
> +
> +* ethdev: in 17.08 ABI changes are planned:
> +  Tx offloads will no longer be enabled by default.
> +  Instead, the ``rte_eth_txmode`` structure will be extended with bit field to enable
> +  each Tx offload.
> +  Besides of making the Rx/Tx configuration API more consistent for the
> +  application, PMDs will be able to provide a better out of the box performance.
> +  as part of the work, ``ETH_TXQ_FLAGS_NO*`` will be superseded as well.

Seems ok to me, the only extra suggestion I have:
instead of introducing new bit-fields can we make
txmode (and rxmode) to use DEV_TX_OFFLOAD_(DEV_RX_OFFLOAD_)* values
to specify desired tx(/rx) offloads.
Konstantin

> --
> 2.12.0

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: announce ABI change on ethdev
  2017-05-01  6:58 [dpdk-dev] [PATCH] doc: announce ABI change on ethdev Shahaf Shuler
                   ` (3 preceding siblings ...)
  2017-05-09 18:09 ` Ananyev, Konstantin
@ 2017-05-10 14:29 ` Bruce Richardson
  4 siblings, 0 replies; 9+ messages in thread
From: Bruce Richardson @ 2017-05-10 14:29 UTC (permalink / raw)
  To: Shahaf Shuler; +Cc: dev

On Mon, May 01, 2017 at 09:58:12AM +0300, Shahaf Shuler wrote:
> This is an ABI change notice for DPDK 17.08 in librte_ether
> about changes in rte_eth_txmode structure.
> 
> Currently Tx offloads are enabled by default, and can be disabled
> using ETH_TXQ_FLAGS_NO* flags. This behaviour is not consistent with
> the Rx side where the Rx offloads are disabled by default and enabled
> according to bit field in rte_eth_rxmode structure.
> 
> The proposal is to disable the Tx offloads by default, and provide
> a way for the application to enable them in rte_eth_txmode structure.
> Besides of making the Tx configuration API more consistent for
> applications, PMDs will be able to provide a better out of the
> box performance.
> Finally, as part of the work, the ETH_TXQ_FLAGS_NO* will
> be superseded as well.
> 
> Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
> ---

Sounds a great idea to me. I never liked the fact that offloads were on
by default and needed to be explicitly disabled.

Acked-by: Bruce Richardson <bruce.richardson@intel.com>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: announce ABI change on ethdev
  2017-05-09 17:04   ` Jerin Jacob
@ 2017-05-10 23:17     ` Thomas Monjalon
  0 siblings, 0 replies; 9+ messages in thread
From: Thomas Monjalon @ 2017-05-10 23:17 UTC (permalink / raw)
  To: Shahaf Shuler
  Cc: dev, Jerin Jacob, Adrien Mazarguil, Konstantin Ananyev,
	Olivier Matz, Tomasz Kulasek

> > > This is an ABI change notice for DPDK 17.08 in librte_ether
> > > about changes in rte_eth_txmode structure.
> > > 
> > > Currently Tx offloads are enabled by default, and can be disabled
> > > using ETH_TXQ_FLAGS_NO* flags. This behaviour is not consistent with
> > > the Rx side where the Rx offloads are disabled by default and enabled
> > > according to bit field in rte_eth_rxmode structure.
> > > 
> > > The proposal is to disable the Tx offloads by default, and provide
> > > a way for the application to enable them in rte_eth_txmode structure.
> > > Besides of making the Tx configuration API more consistent for
> > > applications, PMDs will be able to provide a better out of the
> > > box performance.
> > > Finally, as part of the work, the ETH_TXQ_FLAGS_NO* will
> > > be superseded as well.
> > > 
> > > Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
> > 
> > Basically, TX mbuf flags like TSO and checksum offloads won't have to be
> > honored by PMDs unless applications request them first while configuring the
> > device, just like RX offloads.
> > 
> > Considering more and more TX offloads will be added over time, I do not
> > think expecting them all to be enabled by default is sane. There will always
> > be an associated software cost in PMDs, and this solution allows
> > applications to selectively enable them as needed for maximum performance.
> > 
> > Konstantin/Olivier/Tomasz, I do not want to resume the thread about
> > tx_prepare(), however this could provide an alternative means to benefit
> > from improved performance when applications do not need TSO (or any other
> > offload for that matter), while adding consistency to device configuration.
> > 
> > What's your opinion?
> > 
> > In any case I'm fine with this change:
> > 
> > Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> 
> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>

Applied, thanks

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-05-10 23:17 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-01  6:58 [dpdk-dev] [PATCH] doc: announce ABI change on ethdev Shahaf Shuler
2017-05-09 10:24 ` Shahaf Shuler
2017-05-09 13:40 ` Adrien Mazarguil
2017-05-09 17:04   ` Jerin Jacob
2017-05-10 23:17     ` Thomas Monjalon
2017-05-09 13:49 ` Ferruh Yigit
2017-05-09 16:55   ` Shahaf Shuler
2017-05-09 18:09 ` Ananyev, Konstantin
2017-05-10 14:29 ` Bruce Richardson

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).