RE: [PATCH v1] examples/l3fwd: relax the RSS/Offload requirement

2023-07-28 Thread Konstantin Ananyev



> Now the port Rx mq_mode had been set to RTE_ETH_MQ_RX_RSS, and offload
> mode set to RTE_ETH_RX_OFFLOAD_CHECKSUM by default, but some hardware
> and/or virtual interface does not support the RSS and offload mode
> presupposed, e.g., some virtio interfaces in the cloud don't support
> RSS and may only partly support RTE_ETH_RX_OFFLOAD_UDP_CKSUM/
> RTE_ETH_RX_OFFLOAD_TCP_CKSUM,
> but not RTE_ETH_RX_OFFLOAD_IPV4_CKSUM, and the error msg here:

Well, these HW offloads are there for the good reason -
l3fwd app relies on these HW features to provide functionality requested.
It relies on RTE_ETH_RX_OFFLOAD_IPV4_CKSUM to avoid checks of ip cksum in SW:
static inline int
is_valid_ipv4_pkt(struct rte_ipv4_hdr *pkt, uint32_t link_len)
{
/* From http://www.rfc-editor.org/rfc/rfc1812.txt section 5.2.2 */
/*
 * 1. The packet length reported by the Link Layer must be large
 * enough to hold the minimum length legal IP datagram (20 bytes).
 */
if (link_len < sizeof(struct rte_ipv4_hdr))
return -1;

/* 2. The IP checksum must be correct. */
/* this is checked in H/W */ 


By having RSS enabled it ensures that packets from the same 'flow' will
be processed and send out in order. Probably not a strict requirement
for l3fwd itself, but definitely nice to have feature that majority of DPDK
customers are interested in.
I do understand your desire to lower HW requirements for l3fwd, but
then probably shouldn't be just blind disable, but instead add SW
support for them when essential HW feature is missing. 

Konstantin
 
> virtio_dev_configure(): RSS support requested but not supported by
> the device
> Port0 dev_configure = -95
> 
> and:
> Ethdev port_id=0 requested Rx offloads 0xe does not match Rx offloads
> capabilities 0x201d in rte_eth_dev_configure()
> 
> So to enable the l3fwd running in that environment, the Rx mode requirement
> can be relaxed to reflect the hardware feature reality here, and the l3fwd
> can run smoothly then.
> A warning msg would be provided to user in case it happens here.
> 
> Fixes: af75078fece3 ("first public release")
> Cc: sta...@dpdk.org
> 
> Signed-off-by: Trevor Tao 
> Reviewed-by: Ruifeng Wang 
> Reviewed-by: Feifei Wang 
> ---
>  .mailmap  |  1 +
>  examples/l3fwd/main.c | 19 ++-
>  2 files changed, 19 insertions(+), 1 deletion(-)
> 
> diff --git a/.mailmap b/.mailmap
> index 8e3940a253..602d8cbc6b 100644
> --- a/.mailmap
> +++ b/.mailmap
> @@ -1403,6 +1403,7 @@ Tom Rix 
>  Tone Zhang 
>  Tonghao Zhang  
>  Tony Nguyen 
> +Trevor Tao 
>  Tsotne Chakhvadze 
>  Tudor Brindus 
>  Tudor Cornea  
> diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
> index a4f061537e..cec87d95d1 100644
> --- a/examples/l3fwd/main.c
> +++ b/examples/l3fwd/main.c
> @@ -1233,8 +1233,12 @@ l3fwd_poll_resource_setup(void)
>   local_port_conf.rx_adv_conf.rss_conf.rss_hf &=
>   dev_info.flow_type_rss_offloads;
> 
> - if (dev_info.max_rx_queues == 1)
> + /* relax the rx rss requirement */
> + if (dev_info.max_rx_queues == 1 || 
> !local_port_conf.rx_adv_conf.rss_conf.rss_hf) {
> + printf("warning: modified the rx mq_mode to 
> RTE_ETH_MQ_RX_NONE base on"
> + " device capability\n");
>   local_port_conf.rxmode.mq_mode = RTE_ETH_MQ_RX_NONE;
> + }
> 
>   if (local_port_conf.rx_adv_conf.rss_conf.rss_hf !=
>   port_conf.rx_adv_conf.rss_conf.rss_hf) {
> @@ -1245,6 +1249,19 @@ l3fwd_poll_resource_setup(void)
>   local_port_conf.rx_adv_conf.rss_conf.rss_hf);
>   }
> 
> + /* relax the rx offload requirement */
> + if ((local_port_conf.rxmode.offloads & 
> dev_info.rx_offload_capa) !=
> + local_port_conf.rxmode.offloads) {
> + printf("Port %u requested Rx offloads 0x%"PRIx64" does 
> not"
> + " match Rx offloads capabilities 0x%"PRIx64"\n",
> + portid, local_port_conf.rxmode.offloads,
> + dev_info.rx_offload_capa);
> + local_port_conf.rxmode.offloads &= 
> dev_info.rx_offload_capa;
> + port_conf.rxmode.offloads = 
> local_port_conf.rxmode.offloads;
> + printf("warning: modified the rx offload to 0x%"PRIx64" 
> based on device"
> + " capability\n", 
> local_port_conf.rxmode.offloads);
> + }
> +
>   ret = rte_eth_dev_configure(portid, nb_rx_queue,
>   (uint16_t)n_tx_queue, &local_port_conf);
>   if (ret < 0)
> --
> 2.41.0
> 



Re: [PATCH v3] eal: add notes to SMP memory barrier APIs

2023-07-28 Thread Thomas Monjalon
03/07/2023 11:56, Ruifeng Wang:
> The rte_smp_xx() APIs are deprecated. But it is not mentioned
> in the function header.
> Added notes in function header for clarification.
> 
> Signed-off-by: Ruifeng Wang 
> ---
> v3: Added suggested memory ordering semantic for replacement.
> Refined deprecation explanation.
> v2: Made the notes more specific.
> 
>  lib/eal/include/generic/rte_atomic.h | 30 
>  1 file changed, 30 insertions(+)
> 
> diff --git a/lib/eal/include/generic/rte_atomic.h 
> b/lib/eal/include/generic/rte_atomic.h
> index 58df843c54..aef44e2455 100644
> --- a/lib/eal/include/generic/rte_atomic.h
> +++ b/lib/eal/include/generic/rte_atomic.h
> @@ -55,6 +55,14 @@ static inline void rte_rmb(void);
>   * Guarantees that the LOAD and STORE operations that precede the
>   * rte_smp_mb() call are globally visible across the lcores
>   * before the LOAD and STORE operations that follows it.
> + *
> + * @note
> + *  This function is deprecated.
> + *  It provides similar synchronization primitive as atomic fence,
> + *  but has different syntax and memory ordering semantic. Hence
> + *  deprecated for the simplicity of memory ordering semantics in use.
> + *
> + *  rte_atomic_thread_fence(__ATOMIC_ACQ_REL) should be used instead.
>   */
>  static inline void rte_smp_mb(void);
>  
> @@ -64,6 +72,17 @@ static inline void rte_smp_mb(void);
>   * Guarantees that the STORE operations that precede the
>   * rte_smp_wmb() call are globally visible across the lcores
>   * before the STORE operations that follows it.
> + *
> + * @note
> + *  This function is deprecated.
> + *  It provides similar synchronization primitive as atomic fence,
> + *  but has different syntax and memory ordering semantic. Hence
> + *  deprecated for the simplicity of memory ordering semantics in use.
> + *
> + *  rte_atomic_thread_fence(__ATOMIC_RELEASE) should be used instead.
> + *  The fence also guarantees LOAD operations that precede the call
> + *  are globally visible across the lcores before the STORE operations
> + *  that follows it.
>   */
>  static inline void rte_smp_wmb(void);
>  
> @@ -73,6 +92,17 @@ static inline void rte_smp_wmb(void);
>   * Guarantees that the LOAD operations that precede the
>   * rte_smp_rmb() call are globally visible across the lcores
>   * before the LOAD operations that follows it.
> + *
> + * @note
> + *  This function is deprecated.
> + *  It provides similar synchronization primitive as atomic fence,
> + *  but has different syntax and memory ordering semantic. Hence
> + *  deprecated for the simplicity of memory ordering semantics in use.
> + *
> + *  rte_atomic_thread_fence(__ATOMIC_ACQUIRE) should be used instead.
> + *  The fence also guarantees LOAD operations that precede the call
> + *  are globally visible across the lcores before the STORE operations
> + *  that follows it.
>   */
>  static inline void rte_smp_rmb(void);
>  ///@}

There was no more comment.

Applied, thanks.




Re: [PATCH v3] build: announce requirement for C11

2023-07-28 Thread Thomas Monjalon
20/07/2023 12:56, Jerin Jacob:
> On Thu, Jul 20, 2023 at 1:52 PM Bruce Richardson
>  wrote:
> >
> > On Wed, May 17, 2023 at 06:34:00PM +0100, Bruce Richardson wrote:
> > > Add a deprecation notice informing users that we will require a C11
> > > compiler from 23.11 release onwards. This requirement was agreed by
> > > technical board to enable use of newer C language features, e.g.
> > > standard atomics. [1]
> > >
> > > [1] 
> > > http://inbox.dpdk.org/dev/dbapr08mb58148cec3e1454e8848a938998...@dbapr08mb5814.eurprd08.prod.outlook.com/
> > >
> > > Signed-off-by: Bruce Richardson 
> > > Acked-by: Tyler Retzlaff 
> > >
> > > ---
> > >
> > > V3:
> > > - add additional detail following discussion on-list
> > >
> > > V2:
> > > - add requirement for stdatomics
> > > - fix sphinx formatting
> > > ---
> > >  doc/guides/rel_notes/deprecation.rst | 18 ++
> > >  1 file changed, 18 insertions(+)
> > >
> > Ping for additional review/acks and merge.
> 
> 
> Acked-by: Jerin Jacob 

Acked-by: Thomas Monjalon 

> > This deprecation notice really needs to go into 23.07 to allow the C11
> > requirement to be met in 23.11!

Applied, thanks.




Re: [PATCH] doc: announce deprecation of cmdline_poll

2023-07-28 Thread Thomas Monjalon
26/06/2023 18:38, Stephen Hemminger:
> On Tue, 14 Mar 2023 10:18:58 -0700
> Stephen Hemminger  wrote:
> 
> > Function was added by commit 067855e651d6 ("cmdline: add polling mode")
> > but never tested or used by DPDK applications. Mark it for
> > future removal.
> > 
> > Signed-off-by: Stephen Hemminger 
> > ---
> >  doc/guides/rel_notes/deprecation.rst | 5 +
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/doc/guides/rel_notes/deprecation.rst 
> > b/doc/guides/rel_notes/deprecation.rst
> > index 872847e938ed..28c458591a68 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -135,3 +135,8 @@ Deprecation Notices
> >Its removal has been postponed to let potential users report interest
> >in maintaining it.
> >In the absence of such interest, this library will be removed in DPDK 
> > 23.11.
> > +
> > +* cmdline: The function ``cmdline_poll`` does not work correctly on either
> > +  Linux or Windows and is unused by any part of DPDK.
> > +  It will be marked deprecated
> > +  starting in the 23.07 relead and removed in DPDK 23.11.

There is no patch to mark the function deprecated as far as I know.

> This patch was put out in March and should be merged for 23.07 so that
> the dead function can be removed in 23.11.
> 
> Why the no response on this? The function was never used and if anyone did
> try to use it would have discovered it was broken.

It would have helped to add few people in Cc list.

> Should it just be removed in 23.11 without warning?

We could take it with the Technical Board.




Re: [PATCH] doc: announce deprecation of cmdline_poll

2023-07-28 Thread Bruce Richardson
On Tue, Mar 14, 2023 at 10:18:58AM -0700, Stephen Hemminger wrote:
> Function was added by commit 067855e651d6 ("cmdline: add polling mode")
> but never tested or used by DPDK applications. Mark it for
> future removal.
> 
> Signed-off-by: Stephen Hemminger 
> ---
>  doc/guides/rel_notes/deprecation.rst | 5 +
>  1 file changed, 5 insertions(+)
> 
> diff --git a/doc/guides/rel_notes/deprecation.rst 
> b/doc/guides/rel_notes/deprecation.rst
> index 872847e938ed..28c458591a68 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -135,3 +135,8 @@ Deprecation Notices
>Its removal has been postponed to let potential users report interest
>in maintaining it.
>In the absence of such interest, this library will be removed in DPDK 
> 23.11.
> +
> +* cmdline: The function ``cmdline_poll`` does not work correctly on either
> +  Linux or Windows and is unused by any part of DPDK.
> +  It will be marked deprecated
> +  starting in the 23.07 relead and removed in DPDK 23.11.

typo: "release".

We also should ack a "deprecated" tag on the function to give build-time
warnings. Since we are in the middle of having patches merged, I'll spin a
v2 for you to save time.
> -- 
> 2.39.2
> 


Re: [PATCH] doc: announce change for building deprecated libraries

2023-07-28 Thread Thomas Monjalon
> > > As part of a larger work on selecting parts of DPDK of interests for
> > > users, enabling deprecated libraries won't be done via the disable_libs
> > > build option anymore.
> > > 
> > > An example of the new build option can be found at:
> > > https://patchwork.dpdk.org/project/dpdk/patch/20230628132004.340074-2-
> > > david.march...@redhat.com/
> > > 
> > > Signed-off-by: David Marchand 
> > Acked-by: Morten Brørup 
> Acked-by: Bruce Richardson 
Acked-by: Thomas Monjalon 

Applied, thanks.




Re: [PATCH] doc: announce deprecation of RTE_CPUFLAG_NUMFLAGS

2023-07-28 Thread Thomas Monjalon
> > > > > To allow new cpu features to be added without ABI breakage,
> > > > > RTE_CPUFLAG_NUMFLAGS will be removed in DPDK 23.11 release.
> > > > >
> > > > > Signed-off-by: Sivaprasad Tummala 
> > > >
> > > > +techboard,
> > > >
> > > > Request for review/ack, patch is to remove ABI restriction to add
> > > > new CPU flags.
> > >
> > > Acked-by: Tyler Retzlaff 
> > 
> > Acked-by: Jerin Jacob 
> Acked-by: Hemant Agrawal 

Applied, thanks.





Re: [PATCH] doc: announce deprecation of cmdline_poll

2023-07-28 Thread Maxime Coquelin




On 3/15/23 00:01, Stephen Hemminger wrote:

On Tue, 14 Mar 2023 10:18:58 -0700
Stephen Hemminger  wrote:


Function was added by commit 067855e651d6 ("cmdline: add polling mode")
but never tested or used by DPDK applications. Mark it for
future removal.

Signed-off-by: Stephen Hemminger 


FYI - checked and none of the DPDK projects on github are using this API.
I.e Vpp, yastack, Trex, ANS, BESS, conntrail, ...



I also checked and could not find any DPDK app using this API.

Acked-by: Maxime Coquelin 

Thanks,
Maxime



[PATCH v2] doc: announce deprecation of cmdline_poll

2023-07-28 Thread Bruce Richardson
From: Stephen Hemminger 

Function was added by commit 067855e651d6 ("cmdline: add polling mode")
but never tested or used by DPDK applications. Mark it for
future removal.

Signed-off-by: Stephen Hemminger 
Signed-off-by: Bruce Richardson 

---
v2: Add deprecated tag to function and doxygen comment.
---
 doc/guides/rel_notes/deprecation.rst | 4 
 lib/cmdline/cmdline.h| 3 +++
 2 files changed, 7 insertions(+)

diff --git a/doc/guides/rel_notes/deprecation.rst 
b/doc/guides/rel_notes/deprecation.rst
index fb771a0305..78d56a0ab4 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -161,3 +161,7 @@ Deprecation Notices
   The new port library API (functions rte_swx_port_*)
   will gradually transition from experimental to stable status
   starting with DPDK 23.07 release.
+
+* cmdline: The function ``cmdline_poll`` does not work correctly on either
+  Linux or Windows and is unused by any part of DPDK.
+  This function is now deprecated and will be removed in DPDK 23.11.
diff --git a/lib/cmdline/cmdline.h b/lib/cmdline/cmdline.h
index b14355ef51..52c89b48bc 100644
--- a/lib/cmdline/cmdline.h
+++ b/lib/cmdline/cmdline.h
@@ -44,6 +44,8 @@ struct rdline *
 cmdline_get_rdline(struct cmdline *cl);
 
 /**
+ * @deprecated Function is broken and scheduled for removal
+ *
  * This function is nonblocking equivalent of ``cmdline_interact()``. It polls
  * *cl* for one character and interpret it. If return value is *RDLINE_EXITED*
  * it mean that ``cmdline_quit()`` was invoked.
@@ -55,6 +57,7 @@ cmdline_get_rdline(struct cmdline *cl);
  *   On success return object status - one of *enum rdline_status*.
  *   On error return negative value.
  */
+__rte_deprecated
 int cmdline_poll(struct cmdline *cl);
 
 void cmdline_interact(struct cmdline *cl);
-- 
2.39.2



Re: [PATCH v2] doc: announce deprecation of cmdline_poll

2023-07-28 Thread Maxime Coquelin




On 7/28/23 12:15, Bruce Richardson wrote:

From: Stephen Hemminger 

Function was added by commit 067855e651d6 ("cmdline: add polling mode")
but never tested or used by DPDK applications. Mark it for
future removal.

Signed-off-by: Stephen Hemminger 
Signed-off-by: Bruce Richardson 

---
v2: Add deprecated tag to function and doxygen comment.
---
  doc/guides/rel_notes/deprecation.rst | 4 
  lib/cmdline/cmdline.h| 3 +++
  2 files changed, 7 insertions(+)

diff --git a/doc/guides/rel_notes/deprecation.rst 
b/doc/guides/rel_notes/deprecation.rst
index fb771a0305..78d56a0ab4 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -161,3 +161,7 @@ Deprecation Notices
The new port library API (functions rte_swx_port_*)
will gradually transition from experimental to stable status
starting with DPDK 23.07 release.
+
+* cmdline: The function ``cmdline_poll`` does not work correctly on either
+  Linux or Windows and is unused by any part of DPDK.
+  This function is now deprecated and will be removed in DPDK 23.11.
diff --git a/lib/cmdline/cmdline.h b/lib/cmdline/cmdline.h
index b14355ef51..52c89b48bc 100644
--- a/lib/cmdline/cmdline.h
+++ b/lib/cmdline/cmdline.h
@@ -44,6 +44,8 @@ struct rdline *
  cmdline_get_rdline(struct cmdline *cl);
  
  /**

+ * @deprecated Function is broken and scheduled for removal
+ *
   * This function is nonblocking equivalent of ``cmdline_interact()``. It polls
   * *cl* for one character and interpret it. If return value is *RDLINE_EXITED*
   * it mean that ``cmdline_quit()`` was invoked.
@@ -55,6 +57,7 @@ cmdline_get_rdline(struct cmdline *cl);
   *   On success return object status - one of *enum rdline_status*.
   *   On error return negative value.
   */
+__rte_deprecated
  int cmdline_poll(struct cmdline *cl);
  
  void cmdline_interact(struct cmdline *cl);


Reporting the ack I just provided on v1:

Acked-by: Maxime Coquelin 

Thanks,
Maxime



Re: [PATCH v2] doc: announce deprecation of cmdline_poll

2023-07-28 Thread Burakov, Anatoly

On 7/28/2023 11:15 AM, Bruce Richardson wrote:

From: Stephen Hemminger 

Function was added by commit 067855e651d6 ("cmdline: add polling mode")
but never tested or used by DPDK applications. Mark it for
future removal.

Signed-off-by: Stephen Hemminger 
Signed-off-by: Bruce Richardson 

---
v2: Add deprecated tag to function and doxygen comment.
---

Acked-by: Anatoly Burakov 

--
Thanks,
Anatoly



Re: [PATCH v2] doc: announce deprecation of cmdline_poll

2023-07-28 Thread Thomas Monjalon
28/07/2023 12:26, Maxime Coquelin:
> 
> On 7/28/23 12:15, Bruce Richardson wrote:
> > From: Stephen Hemminger 
> > 
> > Function was added by commit 067855e651d6 ("cmdline: add polling mode")
> > but never tested or used by DPDK applications. Mark it for
> > future removal.
> > 
> > Signed-off-by: Stephen Hemminger 
> > Signed-off-by: Bruce Richardson 
> > 
> > ---
> > v2: Add deprecated tag to function and doxygen comment.
> > ---
> 
> Acked-by: Maxime Coquelin 

Acked-by: Thomas Monjalon 

Applied, thanks.




Re: [PATCH v3 0/3] announce bonding macro and function change

2023-07-28 Thread Thomas Monjalon
18/07/2023 10:28, Chaoyong He:
> In order to support inclusive naming, some of the macro and function in
> DPDK will need to be renamed. Do this through deprecation process now
> for 23.07.
> 
> ---
> v3:
> * Adjust the statement in 'deprecation.rst' document.
> v2:
> * Drop the rename of function and data struct in the logics.
> ---
> 
> Chaoyong He (2):
>   doc: announce bonding data change
>   doc: announce bonding function change
> 
> Long Wu (1):
>   doc: announce bonding macro change

Applied, thanks.





How to understand the CLI in pipeline application

2023-07-28 Thread 阿卡林
Hello, I read the chapters IP Pipeline Application and Pipeline Application in 
the document, and found that the format of their CLI is different. The IP part 
is explained in great detail, but there is no explanation in the example of 
Pipeline Application. 
So, I hope to get your help. Thank you

[PATCH] doc: announce new major ABI version

2023-07-28 Thread Thomas Monjalon
The next DPDK release 23.11 won't keep ABI compatibility.
Only the changes impacting the users should be announced in advance.

Signed-off-by: Thomas Monjalon 
---
 doc/guides/rel_notes/deprecation.rst | 11 ---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/doc/guides/rel_notes/deprecation.rst 
b/doc/guides/rel_notes/deprecation.rst
index 91ac8f0229..55e4b2253e 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -4,9 +4,14 @@
 ABI and API Deprecation
 ===
 
-See the guidelines document for details of the :doc:`ABI policy
-<../contributing/abi_policy>`. API and ABI deprecation notices are to be posted
-here.
+See the guidelines document for details
+of the :doc:`ABI policy <../contributing/abi_policy>`.
+
+With DPDK 23.11, there will be a new major ABI version: 24.
+It means that during the development of 23.11, it will be allowed
+to add new items in a struct or enum involving ABI compatibility breakage.
+
+Other API and ABI deprecation notices are to be posted here.
 
 Deprecation Notices
 ---
-- 
2.41.0



Re: [PATCH] doc: announce ethdev operation struct changes

2023-07-28 Thread Thomas Monjalon
04/07/2023 10:10, Feifei Wang:
> To support mbufs recycle mode, announce the coming ABI changes
> from DPDK 23.11.
> 
> Signed-off-by: Feifei Wang 
> Reviewed-by: Ruifeng Wang 
> ---
>  doc/guides/rel_notes/deprecation.rst | 4 
>  1 file changed, 4 insertions(+)
> 
> diff --git a/doc/guides/rel_notes/deprecation.rst 
> b/doc/guides/rel_notes/deprecation.rst
> index 66431789b0..c7e1ffafb2 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -118,6 +118,10 @@ Deprecation Notices
>The legacy actions should be removed
>once ``MODIFY_FIELD`` alternative is implemented in drivers.
>  
> +* ethdev: The Ethernet device data structure ``struct rte_eth_dev`` and
> +  the fast-path ethdev flat array ``struct rte_eth_fp_ops`` will be updated
> +  with new fields to support mbufs recycle mode from DPDK 23.11.

It does seem to be an impacting change for existing applications,
except that it is allowed only during ABI breakage window.

I think my patch should be enough:
https://patches.dpdk.org/project/dpdk/patch/20230728142946.1201459-1-tho...@monjalon.net/




Re: [PATCH] doc: announce ethdev operation struct changes

2023-07-28 Thread Thomas Monjalon
28/07/2023 16:56, Thomas Monjalon:
> 04/07/2023 10:10, Feifei Wang:
> > To support mbufs recycle mode, announce the coming ABI changes
> > from DPDK 23.11.
> > 
> > Signed-off-by: Feifei Wang 
> > Reviewed-by: Ruifeng Wang 
> > ---
> >  doc/guides/rel_notes/deprecation.rst | 4 
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/doc/guides/rel_notes/deprecation.rst 
> > b/doc/guides/rel_notes/deprecation.rst
> > index 66431789b0..c7e1ffafb2 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -118,6 +118,10 @@ Deprecation Notices
> >The legacy actions should be removed
> >once ``MODIFY_FIELD`` alternative is implemented in drivers.
> >  
> > +* ethdev: The Ethernet device data structure ``struct rte_eth_dev`` and
> > +  the fast-path ethdev flat array ``struct rte_eth_fp_ops`` will be updated
> > +  with new fields to support mbufs recycle mode from DPDK 23.11.
> 
> It does seem to be an impacting change for existing applications,

I meant "It does NOT seem"

> except that it is allowed only during ABI breakage window.
> 
> I think my patch should be enough:
> https://patches.dpdk.org/project/dpdk/patch/20230728142946.1201459-1-tho...@monjalon.net/

This deprecation notice is marked as superseded,
given my patch above should be enough.





Re: [PATCH] doc: deprecation notice to add RSS hash algorithm field

2023-07-28 Thread Thomas Monjalon
06/06/2023 18:35, Stephen Hemminger:
> On Tue, 6 Jun 2023 16:50:53 +0100
> Ferruh Yigit  wrote:
> 
> > On 6/6/2023 4:39 PM, Stephen Hemminger wrote:
> > > On Tue, 6 Jun 2023 20:11:26 +0800
> > > Dongdong Liu  wrote:
> > >   
> > >> Deprecation notice to add "func" field to ``rte_eth_rss_conf``
> > >> structure for RSS hash algorithm.
> > >>
> > >> Signed-off-by: Dongdong Liu 
> > >> ---  
> > > 
> > > New fields do not require deprecation notice.
> > > Since this seems to be a repeated issue, perhaps someone should
> > > add this to the documentation.

I've just sent such a patch:
https://patches.dpdk.org/project/dpdk/patch/20230728142946.1201459-1-tho...@monjalon.net/


> > Hi Stephen,
> > 
> > This is follow up to an existing patchset:
> > https://patches.dpdk.org/project/dpdk/list/?series=27400&state=*
> > 
> > Although field is addition to the "struct rte_eth_rss_conf" struct, it
> > is embedded into "struct rte_eth_conf" which is parameter to an API, so
> > change cause size increase in outer struct and causes ABI breakage,
> > requiring deprecation notice.
> 
> It will change ABI so will have to wait for 23.11.
> But the purpose of deprecation notice is more about telling users that API
> will change.
> 
> The automated tools may give false complaint. Ok to add to deprecation,
> but really not necessary.


This deprecation notice is marked as superseded,
given my patch above should be enough.




RE: [PATCH] doc: announce ethdev operation struct changes

2023-07-28 Thread Morten Brørup
> From: Thomas Monjalon [mailto:tho...@monjalon.net]
> Sent: Friday, 28 July 2023 16.57
> 
> 04/07/2023 10:10, Feifei Wang:
> > To support mbufs recycle mode, announce the coming ABI changes
> > from DPDK 23.11.
> >
> > Signed-off-by: Feifei Wang 
> > Reviewed-by: Ruifeng Wang 
> > ---
> >  doc/guides/rel_notes/deprecation.rst | 4 
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/doc/guides/rel_notes/deprecation.rst
> b/doc/guides/rel_notes/deprecation.rst
> > index 66431789b0..c7e1ffafb2 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -118,6 +118,10 @@ Deprecation Notices
> >The legacy actions should be removed
> >once ``MODIFY_FIELD`` alternative is implemented in drivers.
> >
> > +* ethdev: The Ethernet device data structure ``struct rte_eth_dev`` and
> > +  the fast-path ethdev flat array ``struct rte_eth_fp_ops`` will be updated
> > +  with new fields to support mbufs recycle mode from DPDK 23.11.

Existing fields will also be moved around [1]:

@@ -83,15 +90,17 @@  struct rte_eth_fp_ops {
 * Rx fast-path functions and related data.
 * 64-bit systems: occupies first 64B line
 */
+   /** Rx queues data. */
+   struct rte_ethdev_qdata rxq;
/** PMD receive function. */
eth_rx_burst_t rx_pkt_burst;
/** Get the number of used Rx descriptors. */
eth_rx_queue_count_t rx_queue_count;
/** Check the status of a Rx descriptor. */
eth_rx_descriptor_status_t rx_descriptor_status;
-   /** Rx queues data. */
-   struct rte_ethdev_qdata rxq;
-   uintptr_t reserved1[3];
+   /** Refill Rx descriptors with the recycling mbufs. */
+   eth_recycle_rx_descriptors_refill_t recycle_rx_descriptors_refill;
+   uintptr_t reserved1[2];
/**@}*/
 
/**@{*/
@@ -99,15 +108,17 @@  struct rte_eth_fp_ops {
 * Tx fast-path functions and related data.
 * 64-bit systems: occupies second 64B line
 */
+   /** Tx queues data. */
+   struct rte_ethdev_qdata txq;
/** PMD transmit function. */
eth_tx_burst_t tx_pkt_burst;
/** PMD transmit prepare function. */
eth_tx_prep_t tx_pkt_prepare;
/** Check the status of a Tx descriptor. */
eth_tx_descriptor_status_t tx_descriptor_status;
-   /** Tx queues data. */
-   struct rte_ethdev_qdata txq;
-   uintptr_t reserved2[3];
+   /** Copy used mbufs from Tx mbuf ring into Rx. */
+   eth_recycle_tx_mbufs_reuse_t recycle_tx_mbufs_reuse;
+   uintptr_t reserved2[2];
/**@}*/

[1]: 
https://patchwork.dpdk.org/project/dpdk/patch/20230706095004.1848199-2-feifei.wa...@arm.com/

> 
> It does seem to be an impacting change for existing applications,
> except that it is allowed only during ABI breakage window.
> 
> I think my patch should be enough:
> https://patches.dpdk.org/project/dpdk/patch/20230728142946.1201459-1-
> tho...@monjalon.net/
> 



Re: [PATCH] doc: deprecation notice to add new hash function

2023-07-28 Thread Thomas Monjalon
24/05/2023 16:49, Stephen Hemminger:
> On Wed, 24 May 2023 19:38:27 +0800
> Xueming Li  wrote:
> 
> > +
> > +* ethdev: The enum ``rte_eth_hash_function`` will be extended to add
> > +  new subtype value ``RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ_SORT`` in
> > +  DPDK 23.11.
> 
> Simple new additions like this don't need to clutter the deprecation
> part of the release notes. This is for changes which would break applications.

Marking this patch as superseded.
My patch is mentioning such case: adding an enum field.
https://patches.dpdk.org/project/dpdk/patch/20230728142946.1201459-1-tho...@monjalon.net/





Re: [PATCH v2] doc: announce changes to event device structures

2023-07-28 Thread Thomas Monjalon
27/07/2023 11:01, Jerin Jacob:
> On Wed, Jul 26, 2023 at 9:25 PM  wrote:
> >
> > From: Pavan Nikhilesh 
> >
> > The structures ``rte_event_dev_info``, ``rte_event_fp_ops`` will be
> > modified to add new elements to support link profiles.
> > A new field ``max_profiles_per_port`` will be added to
> > ``rte_event_dev_info`` and ``switch_profile`` will be added to
> > ``rte_event_fp_ops``.
> >
> > A profile is a unique identifier for a set of event queues linked to
> > an event port. The unique identifier spans from 0 to the value
> > advertised in ``rte_event_dev_info.max_profiles_per_port`` - 1.
> >
> > Two new experimental APIs will be added, one to associate a set of
> > event queues with a profile which can be linked to an event port and
> > another to switch the profile which would affect the next dequeue call.
> >
> > Signed-off-by: Pavan Nikhilesh 
> 
> > +
> > +* eventdev: The structures ``rte_event_dev_info``, ``rte_event_fp_ops`` 
> > will be
> > +  modified to add new elements to support link profiles.A new field
> > +  ``max_profiles_per_port`` will be added to ``rte_event_dev_info`` and
> > +  ``switch_profile`` will be added to ``rte_event_fp_ops``.
> 
> There are other  deprecation notices to update rte_event_fp_ops.
> Exact  fields  in rte_event_dev_info be decided later along with patch.
> With that
> 
> Acked-by: Jerin Jacob 

Actually it does not look necessary to announce adding new fields.
The ABI compatibility breakage should be covered by this patch:
https://patches.dpdk.org/project/dpdk/patch/20230728142946.1201459-1-tho...@monjalon.net/

Marking as superseded.




Re: [PATCH] doc: announce ethdev operation struct changes

2023-07-28 Thread Thomas Monjalon
28/07/2023 17:08, Morten Brørup:
> > From: Thomas Monjalon [mailto:tho...@monjalon.net]
> > Sent: Friday, 28 July 2023 16.57
> > 
> > 04/07/2023 10:10, Feifei Wang:
> > > To support mbufs recycle mode, announce the coming ABI changes
> > > from DPDK 23.11.
> > >
> > > Signed-off-by: Feifei Wang 
> > > Reviewed-by: Ruifeng Wang 
> > > ---
> > >  doc/guides/rel_notes/deprecation.rst | 4 
> > >  1 file changed, 4 insertions(+)
> > >
> > > diff --git a/doc/guides/rel_notes/deprecation.rst
> > b/doc/guides/rel_notes/deprecation.rst
> > > index 66431789b0..c7e1ffafb2 100644
> > > --- a/doc/guides/rel_notes/deprecation.rst
> > > +++ b/doc/guides/rel_notes/deprecation.rst
> > > @@ -118,6 +118,10 @@ Deprecation Notices
> > >The legacy actions should be removed
> > >once ``MODIFY_FIELD`` alternative is implemented in drivers.
> > >
> > > +* ethdev: The Ethernet device data structure ``struct rte_eth_dev`` and
> > > +  the fast-path ethdev flat array ``struct rte_eth_fp_ops`` will be 
> > > updated
> > > +  with new fields to support mbufs recycle mode from DPDK 23.11.
> 
> Existing fields will also be moved around [1]:
> 
> @@ -83,15 +90,17 @@  struct rte_eth_fp_ops {
>* Rx fast-path functions and related data.
>* 64-bit systems: occupies first 64B line
>*/
> + /** Rx queues data. */
> + struct rte_ethdev_qdata rxq;
>   /** PMD receive function. */
>   eth_rx_burst_t rx_pkt_burst;
>   /** Get the number of used Rx descriptors. */
>   eth_rx_queue_count_t rx_queue_count;
>   /** Check the status of a Rx descriptor. */
>   eth_rx_descriptor_status_t rx_descriptor_status;
> - /** Rx queues data. */
> - struct rte_ethdev_qdata rxq;
> - uintptr_t reserved1[3];
> + /** Refill Rx descriptors with the recycling mbufs. */
> + eth_recycle_rx_descriptors_refill_t recycle_rx_descriptors_refill;
> + uintptr_t reserved1[2];
>   /**@}*/
>  
>   /**@{*/
> @@ -99,15 +108,17 @@  struct rte_eth_fp_ops {
>* Tx fast-path functions and related data.
>* 64-bit systems: occupies second 64B line
>*/
> + /** Tx queues data. */
> + struct rte_ethdev_qdata txq;
>   /** PMD transmit function. */
>   eth_tx_burst_t tx_pkt_burst;
>   /** PMD transmit prepare function. */
>   eth_tx_prep_t tx_pkt_prepare;
>   /** Check the status of a Tx descriptor. */
>   eth_tx_descriptor_status_t tx_descriptor_status;
> - /** Tx queues data. */
> - struct rte_ethdev_qdata txq;
> - uintptr_t reserved2[3];
> + /** Copy used mbufs from Tx mbuf ring into Rx. */
> + eth_recycle_tx_mbufs_reuse_t recycle_tx_mbufs_reuse;
> + uintptr_t reserved2[2];
>   /**@}*/

Removing existing fields should be announced explicitly.




[PATCH v2] doc: announce new major ABI version

2023-07-28 Thread Thomas Monjalon
The next DPDK release 23.11 won't keep ABI compatibility.
Only the changes impacting the users should be announced in advance.

Signed-off-by: Thomas Monjalon 
---
v2: improve wording (thanks Bruce)
---
 doc/guides/rel_notes/deprecation.rst | 12 +---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/doc/guides/rel_notes/deprecation.rst 
b/doc/guides/rel_notes/deprecation.rst
index 91ac8f0229..18281d7304 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -4,9 +4,15 @@
 ABI and API Deprecation
 ===
 
-See the guidelines document for details of the :doc:`ABI policy
-<../contributing/abi_policy>`. API and ABI deprecation notices are to be posted
-here.
+See the guidelines document for details
+of the :doc:`ABI policy <../contributing/abi_policy>`.
+
+With DPDK 23.11, there will be a new major ABI version: 24.
+This means that during the development of 23.11,
+new items may be added to structs or enums,
+even if those additions involve an ABI compatibility breakage.
+
+Other API and ABI deprecation notices are to be posted below.
 
 Deprecation Notices
 ---
-- 
2.41.0



Re: [PATCH v2] doc: announce new major ABI version

2023-07-28 Thread Bruce Richardson
On Fri, Jul 28, 2023 at 05:18:40PM +0200, Thomas Monjalon wrote:
> The next DPDK release 23.11 won't keep ABI compatibility.
> Only the changes impacting the users should be announced in advance.
> 
> Signed-off-by: Thomas Monjalon 
> ---
> v2: improve wording (thanks Bruce)
> ---
>  doc/guides/rel_notes/deprecation.rst | 12 +---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/doc/guides/rel_notes/deprecation.rst 
> b/doc/guides/rel_notes/deprecation.rst
> index 91ac8f0229..18281d7304 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -4,9 +4,15 @@
>  ABI and API Deprecation
>  ===
>  
> -See the guidelines document for details of the :doc:`ABI policy
> -<../contributing/abi_policy>`. API and ABI deprecation notices are to be 
> posted
> -here.
> +See the guidelines document for details
> +of the :doc:`ABI policy <../contributing/abi_policy>`.
> +
This has a strange line-break position. It can probably be a single line.

> +With DPDK 23.11, there will be a new major ABI version: 24.
> +This means that during the development of 23.11,
> +new items may be added to structs or enums,
> +even if those additions involve an ABI compatibility breakage.
> +
> +Other API and ABI deprecation notices are to be posted below.
>  

Acked-by: Bruce Richardson 


RE: [PATCH v2] doc: announce new major ABI version

2023-07-28 Thread Morten Brørup
> From: Thomas Monjalon [mailto:tho...@monjalon.net]
> Sent: Friday, 28 July 2023 17.19
> 
> The next DPDK release 23.11 won't keep ABI compatibility.
> Only the changes impacting the users should be announced in advance.
> 
> Signed-off-by: Thomas Monjalon 
> ---

Acked-by: Morten Brørup 



RE: [PATCH] doc: announce ethdev operation struct changes

2023-07-28 Thread Morten Brørup
> From: Thomas Monjalon [mailto:tho...@monjalon.net]
> Sent: Friday, 28 July 2023 17.20
> 
> 28/07/2023 17:08, Morten Brørup:
> > > From: Thomas Monjalon [mailto:tho...@monjalon.net]
> > > Sent: Friday, 28 July 2023 16.57
> > >
> > > 04/07/2023 10:10, Feifei Wang:
> > > > To support mbufs recycle mode, announce the coming ABI changes
> > > > from DPDK 23.11.
> > > >
> > > > Signed-off-by: Feifei Wang 
> > > > Reviewed-by: Ruifeng Wang 
> > > > ---
> > > >  doc/guides/rel_notes/deprecation.rst | 4 
> > > >  1 file changed, 4 insertions(+)
> > > >
> > > > diff --git a/doc/guides/rel_notes/deprecation.rst
> > > b/doc/guides/rel_notes/deprecation.rst
> > > > index 66431789b0..c7e1ffafb2 100644
> > > > --- a/doc/guides/rel_notes/deprecation.rst
> > > > +++ b/doc/guides/rel_notes/deprecation.rst
> > > > @@ -118,6 +118,10 @@ Deprecation Notices
> > > >The legacy actions should be removed
> > > >once ``MODIFY_FIELD`` alternative is implemented in drivers.
> > > >
> > > > +* ethdev: The Ethernet device data structure ``struct rte_eth_dev`` and
> > > > +  the fast-path ethdev flat array ``struct rte_eth_fp_ops`` will be
> updated
> > > > +  with new fields to support mbufs recycle mode from DPDK 23.11.
> >
> > Existing fields will also be moved around [1]:
> >
> > @@ -83,15 +90,17 @@  struct rte_eth_fp_ops {
> >  * Rx fast-path functions and related data.
> >  * 64-bit systems: occupies first 64B line
> >  */
> > +   /** Rx queues data. */
> > +   struct rte_ethdev_qdata rxq;
> > /** PMD receive function. */
> > eth_rx_burst_t rx_pkt_burst;
> > /** Get the number of used Rx descriptors. */
> > eth_rx_queue_count_t rx_queue_count;
> > /** Check the status of a Rx descriptor. */
> > eth_rx_descriptor_status_t rx_descriptor_status;
> > -   /** Rx queues data. */
> > -   struct rte_ethdev_qdata rxq;
> > -   uintptr_t reserved1[3];
> > +   /** Refill Rx descriptors with the recycling mbufs. */
> > +   eth_recycle_rx_descriptors_refill_t recycle_rx_descriptors_refill;
> > +   uintptr_t reserved1[2];
> > /**@}*/
> >
> > /**@{*/
> > @@ -99,15 +108,17 @@  struct rte_eth_fp_ops {
> >  * Tx fast-path functions and related data.
> >  * 64-bit systems: occupies second 64B line
> >  */
> > +   /** Tx queues data. */
> > +   struct rte_ethdev_qdata txq;
> > /** PMD transmit function. */
> > eth_tx_burst_t tx_pkt_burst;
> > /** PMD transmit prepare function. */
> > eth_tx_prep_t tx_pkt_prepare;
> > /** Check the status of a Tx descriptor. */
> > eth_tx_descriptor_status_t tx_descriptor_status;
> > -   /** Tx queues data. */
> > -   struct rte_ethdev_qdata txq;
> > -   uintptr_t reserved2[3];
> > +   /** Copy used mbufs from Tx mbuf ring into Rx. */
> > +   eth_recycle_tx_mbufs_reuse_t recycle_tx_mbufs_reuse;
> > +   uintptr_t reserved2[2];
> > /**@}*/
> 
> Removing existing fields should be announced explicitly.

Agreed. And the patch misses this. The "rxq" and "txq" fields are not being 
removed, they are being moved up in the structures. Your comment about explicit 
mentioning still applies!

If there's no time to wait for a new patch version from Feifei, perhaps you 
improve the description while merging.



Re: [PATCH] doc: announce ethdev operation struct changes

2023-07-28 Thread Thomas Monjalon
28/07/2023 17:33, Morten Brørup:
> > From: Thomas Monjalon [mailto:tho...@monjalon.net]
> > Sent: Friday, 28 July 2023 17.20
> > 
> > 28/07/2023 17:08, Morten Brørup:
> > > > From: Thomas Monjalon [mailto:tho...@monjalon.net]
> > > > Sent: Friday, 28 July 2023 16.57
> > > >
> > > > 04/07/2023 10:10, Feifei Wang:
> > > > > To support mbufs recycle mode, announce the coming ABI changes
> > > > > from DPDK 23.11.
> > > > >
> > > > > Signed-off-by: Feifei Wang 
> > > > > Reviewed-by: Ruifeng Wang 
> > > > > ---
> > > > >  doc/guides/rel_notes/deprecation.rst | 4 
> > > > >  1 file changed, 4 insertions(+)
> > > > >
> > > > > diff --git a/doc/guides/rel_notes/deprecation.rst
> > > > b/doc/guides/rel_notes/deprecation.rst
> > > > > index 66431789b0..c7e1ffafb2 100644
> > > > > --- a/doc/guides/rel_notes/deprecation.rst
> > > > > +++ b/doc/guides/rel_notes/deprecation.rst
> > > > > @@ -118,6 +118,10 @@ Deprecation Notices
> > > > >The legacy actions should be removed
> > > > >once ``MODIFY_FIELD`` alternative is implemented in drivers.
> > > > >
> > > > > +* ethdev: The Ethernet device data structure ``struct rte_eth_dev`` 
> > > > > and
> > > > > +  the fast-path ethdev flat array ``struct rte_eth_fp_ops`` will be
> > updated
> > > > > +  with new fields to support mbufs recycle mode from DPDK 23.11.
> > >
> > > Existing fields will also be moved around [1]:
> > >
> > > @@ -83,15 +90,17 @@  struct rte_eth_fp_ops {
> > >* Rx fast-path functions and related data.
> > >* 64-bit systems: occupies first 64B line
> > >*/
> > > + /** Rx queues data. */
> > > + struct rte_ethdev_qdata rxq;
> > >   /** PMD receive function. */
> > >   eth_rx_burst_t rx_pkt_burst;
> > >   /** Get the number of used Rx descriptors. */
> > >   eth_rx_queue_count_t rx_queue_count;
> > >   /** Check the status of a Rx descriptor. */
> > >   eth_rx_descriptor_status_t rx_descriptor_status;
> > > - /** Rx queues data. */
> > > - struct rte_ethdev_qdata rxq;
> > > - uintptr_t reserved1[3];
> > > + /** Refill Rx descriptors with the recycling mbufs. */
> > > + eth_recycle_rx_descriptors_refill_t recycle_rx_descriptors_refill;
> > > + uintptr_t reserved1[2];
> > >   /**@}*/
> > >
> > >   /**@{*/
> > > @@ -99,15 +108,17 @@  struct rte_eth_fp_ops {
> > >* Tx fast-path functions and related data.
> > >* 64-bit systems: occupies second 64B line
> > >*/
> > > + /** Tx queues data. */
> > > + struct rte_ethdev_qdata txq;
> > >   /** PMD transmit function. */
> > >   eth_tx_burst_t tx_pkt_burst;
> > >   /** PMD transmit prepare function. */
> > >   eth_tx_prep_t tx_pkt_prepare;
> > >   /** Check the status of a Tx descriptor. */
> > >   eth_tx_descriptor_status_t tx_descriptor_status;
> > > - /** Tx queues data. */
> > > - struct rte_ethdev_qdata txq;
> > > - uintptr_t reserved2[3];
> > > + /** Copy used mbufs from Tx mbuf ring into Rx. */
> > > + eth_recycle_tx_mbufs_reuse_t recycle_tx_mbufs_reuse;
> > > + uintptr_t reserved2[2];
> > >   /**@}*/
> > 
> > Removing existing fields should be announced explicitly.
> 
> Agreed. And the patch misses this. The "rxq" and "txq" fields are not being 
> removed, they are being moved up in the structures. Your comment about 
> explicit mentioning still applies!
> 
> If there's no time to wait for a new patch version from Feifei, perhaps you 
> improve the description while merging.

If it's only moving fields, we can skip.
The real change is the size of the reserved fields,
so it looks acceptable without notice.




Re: [PATCH v1] doc: deprecation notice to add callback data to rte_event_fp_ops

2023-07-28 Thread Thomas Monjalon
25/07/2023 10:40, Ferruh Yigit:
> On 7/17/2023 12:24 PM, Sivaprasad Tummala wrote:
> > Deprecation notice to add "rte_eventdev_port_data" field to
> > ``rte_event_fp_ops`` for callback support.
> > 
> > Signed-off-by: Sivaprasad Tummala 
> > ---
> >  doc/guides/rel_notes/deprecation.rst | 7 +++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/doc/guides/rel_notes/deprecation.rst 
> > b/doc/guides/rel_notes/deprecation.rst
> > index fb771a0305..057f97ce5a 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -130,6 +130,13 @@ Deprecation Notices
> >``rte_cryptodev_get_auth_algo_string``, 
> > ``rte_cryptodev_get_aead_algo_string`` and
> >``rte_cryptodev_asym_get_xform_string`` respectively.
> >  
> > +* eventdev: The struct rte_event_fp_ops will be updated with a new element
> > +  rte_eventdev_port_data to support optional callbacks in DPDK 23.11.
> > +  rte_eventdev_port_data is used to hold callbacks registered optionally
> > +  per event device port and associated callback data. By adding 
> > rte_eventdev_port_data
> > +  to rte_event_fp_ops, allows to fetch this data for fastpath eventdev 
> > inline functions
> > +  in advance. This changes the size of rte_event_fp_ops and result in ABI 
> > change.
> > +
> >  * security: Hide structures ``rte_security_ops`` and ``rte_security_ctx``
> >as these are internal to DPDK library and drivers.
> >  
> 
> +techboard,
> 
> Request for review/ack, patch is to extend eventdev to support callbacks
> per packet.


It does not look necessary to announce adding new fields.
The ABI compatibility breakage should be covered by this patch:
https://patches.dpdk.org/project/dpdk/patch/20230728152052.1204486-1-tho...@monjalon.net/

Marking as superseded.




Re: [EXT] Re: [PATCH v2] doc: announce single-event enqueue/dequeue ABI change

2023-07-28 Thread Thomas Monjalon
05/07/2023 15:02, Pavan Nikhilesh Bhagavatula:
> > On Wed, Jul 5, 2023 at 4:48 PM Mattias Rönnblom
> >  wrote:
> > >
> > > Announce the removal of the single-event enqueue and dequeue
> > > operations from the eventdev ABI.
> > >
> > > Signed-off-by: Mattias Rönnblom 
> > 
> > Acked-by: Jerin Jacob 
> 
> Acked-by: Pavan Nikhilesh 

Acked-by: Thomas Monjalon 

Applied, thanks.




RE: [PATCH] doc: announce ethdev operation struct changes

2023-07-28 Thread Morten Brørup
> From: Thomas Monjalon [mailto:tho...@monjalon.net]
> Sent: Friday, 28 July 2023 17.38
> 
> 28/07/2023 17:33, Morten Brørup:
> > > From: Thomas Monjalon [mailto:tho...@monjalon.net]
> > > Sent: Friday, 28 July 2023 17.20
> > >
> > > 28/07/2023 17:08, Morten Brørup:
> > > > > From: Thomas Monjalon [mailto:tho...@monjalon.net]
> > > > > Sent: Friday, 28 July 2023 16.57
> > > > >
> > > > > 04/07/2023 10:10, Feifei Wang:
> > > > > > To support mbufs recycle mode, announce the coming ABI changes
> > > > > > from DPDK 23.11.
> > > > > >
> > > > > > Signed-off-by: Feifei Wang 
> > > > > > Reviewed-by: Ruifeng Wang 
> > > > > > ---
> > > > > >  doc/guides/rel_notes/deprecation.rst | 4 
> > > > > >  1 file changed, 4 insertions(+)
> > > > > >
> > > > > > diff --git a/doc/guides/rel_notes/deprecation.rst
> > > > > b/doc/guides/rel_notes/deprecation.rst
> > > > > > index 66431789b0..c7e1ffafb2 100644
> > > > > > --- a/doc/guides/rel_notes/deprecation.rst
> > > > > > +++ b/doc/guides/rel_notes/deprecation.rst
> > > > > > @@ -118,6 +118,10 @@ Deprecation Notices
> > > > > >The legacy actions should be removed
> > > > > >once ``MODIFY_FIELD`` alternative is implemented in drivers.
> > > > > >
> > > > > > +* ethdev: The Ethernet device data structure ``struct rte_eth_dev``
> and
> > > > > > +  the fast-path ethdev flat array ``struct rte_eth_fp_ops`` will be
> > > updated
> > > > > > +  with new fields to support mbufs recycle mode from DPDK 23.11.
> > > >
> > > > Existing fields will also be moved around [1]:
> > > >
> > > > @@ -83,15 +90,17 @@  struct rte_eth_fp_ops {
> > > >  * Rx fast-path functions and related data.
> > > >  * 64-bit systems: occupies first 64B line
> > > >  */
> > > > +   /** Rx queues data. */
> > > > +   struct rte_ethdev_qdata rxq;
> > > > /** PMD receive function. */
> > > > eth_rx_burst_t rx_pkt_burst;
> > > > /** Get the number of used Rx descriptors. */
> > > > eth_rx_queue_count_t rx_queue_count;
> > > > /** Check the status of a Rx descriptor. */
> > > > eth_rx_descriptor_status_t rx_descriptor_status;
> > > > -   /** Rx queues data. */
> > > > -   struct rte_ethdev_qdata rxq;
> > > > -   uintptr_t reserved1[3];
> > > > +   /** Refill Rx descriptors with the recycling mbufs. */
> > > > +   eth_recycle_rx_descriptors_refill_t
> recycle_rx_descriptors_refill;
> > > > +   uintptr_t reserved1[2];
> > > > /**@}*/
> > > >
> > > > /**@{*/
> > > > @@ -99,15 +108,17 @@  struct rte_eth_fp_ops {
> > > >  * Tx fast-path functions and related data.
> > > >  * 64-bit systems: occupies second 64B line
> > > >  */
> > > > +   /** Tx queues data. */
> > > > +   struct rte_ethdev_qdata txq;
> > > > /** PMD transmit function. */
> > > > eth_tx_burst_t tx_pkt_burst;
> > > > /** PMD transmit prepare function. */
> > > > eth_tx_prep_t tx_pkt_prepare;
> > > > /** Check the status of a Tx descriptor. */
> > > > eth_tx_descriptor_status_t tx_descriptor_status;
> > > > -   /** Tx queues data. */
> > > > -   struct rte_ethdev_qdata txq;
> > > > -   uintptr_t reserved2[3];
> > > > +   /** Copy used mbufs from Tx mbuf ring into Rx. */
> > > > +   eth_recycle_tx_mbufs_reuse_t recycle_tx_mbufs_reuse;
> > > > +   uintptr_t reserved2[2];
> > > > /**@}*/
> > >
> > > Removing existing fields should be announced explicitly.
> >
> > Agreed. And the patch misses this. The "rxq" and "txq" fields are not being
> removed, they are being moved up in the structures. Your comment about
> explicit mentioning still applies!
> >
> > If there's no time to wait for a new patch version from Feifei, perhaps you
> improve the description while merging.
> 
> If it's only moving fields, we can skip.

OK. Thank you for elaborating.

> The real change is the size of the reserved fields,
> so it looks acceptable without notice.

Agree.

Thoughts for later: We should perhaps document that changing the size of 
reserved fields is acceptable. And with that, if completely removing a reserved 
field is also acceptable or not.


Re: [PATCH] doc: postpone deprecation of pipeline legacy API

2023-07-28 Thread Thomas Monjalon
> > > Postpone the deprecation of the legacy pipeline, table and port
> > > library API and gradual stabilization of the new API.
> > >
> > > Signed-off-by: Cristian Dumitrescu 
> > > ---
> > >  doc/guides/rel_notes/deprecation.rst | 21 +
> > >  1 file changed, 9 insertions(+), 12 deletions(-)
> > >
> > 
> > No objection to this, though it would be really good to get the new
> > functions stabilized in 23.11 when we lock down the 24 ABI.
> > 
> 
> Yes, fully agree, let's see if we can make this happen for 23.11
> 
> > Acked-by: Bruce Richardson 

Applied, thanks.




Re: [PATCH v2] doc: announce new major ABI version

2023-07-28 Thread Thomas Monjalon
28/07/2023 17:23, Bruce Richardson:
> On Fri, Jul 28, 2023 at 05:18:40PM +0200, Thomas Monjalon wrote:
> > The next DPDK release 23.11 won't keep ABI compatibility.
> > Only the changes impacting the users should be announced in advance.
> > 
> > Signed-off-by: Thomas Monjalon 
> > ---
> > v2: improve wording (thanks Bruce)
> > ---
> >  doc/guides/rel_notes/deprecation.rst | 12 +---
> >  1 file changed, 9 insertions(+), 3 deletions(-)
> > 
> > diff --git a/doc/guides/rel_notes/deprecation.rst 
> > b/doc/guides/rel_notes/deprecation.rst
> > index 91ac8f0229..18281d7304 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -4,9 +4,15 @@
> >  ABI and API Deprecation
> >  ===
> >  
> > -See the guidelines document for details of the :doc:`ABI policy
> > -<../contributing/abi_policy>`. API and ABI deprecation notices are to be 
> > posted
> > -here.
> > +See the guidelines document for details
> > +of the :doc:`ABI policy <../contributing/abi_policy>`.
> > +
> This has a strange line-break position. It can probably be a single line.

Will keep the original break which was better looking.

> > +With DPDK 23.11, there will be a new major ABI version: 24.
> > +This means that during the development of 23.11,
> > +new items may be added to structs or enums,
> > +even if those additions involve an ABI compatibility breakage.
> > +
> > +Other API and ABI deprecation notices are to be posted below.
> 
> Acked-by: Bruce Richardson 

Applied




Re: [PATCH v2] doc: announce new major ABI version

2023-07-28 Thread Patrick Robb
The Community Lab's ABI testing on new patchseries is now disabled until
the 23.11 release. Thanks.


Re: [PATCH v2] doc: announce new major ABI version

2023-07-28 Thread Thomas Monjalon
28/07/2023 19:02, Patrick Robb:
> The Community Lab's ABI testing on new patchseries is now disabled until
> the 23.11 release. Thanks.

Perfect, thank you.





DPDK 23.07 released

2023-07-28 Thread Thomas Monjalon
A new major release is available:
https://fast.dpdk.org/rel/dpdk-23.07.tar.xz

The number of commits is not that big
but the number of changed lines is quite significant:
1028 commits from 178 authors
1554 files changed, 157260 insertions(+), 58411 deletions(-)

This release happens on July 28, and 23.03 was on March 31.
Later would be too late :)
It looks like more help would be welcome at any stage of the process:
feel free to give a boost in test, review or merge tasks.


It is not planned to start a maintenance branch for 23.07.
This version is ABI-compatible with 22.11 and 23.03.

Below are some new features:
- AMD CDX bus
- PCI MMIO read/write
- new flow patterns: Tx queue, Infiniband BTH
- new flow actions: push/remove IPv6 extension
- indirect flow rule list
- flow rule update
- vhost interrupt callback
- VDUSE in vhost library
- more ShangMi crypto algorithms
- PDCP library
- removed LiquidIO driver
- DMA device performance test application
- DTS basic UDP test

More details in the release notes:
https://doc.dpdk.org/guides/rel_notes/release_23_07.html


There are 37 new contributors (including authors, reviewers and testers).
Welcome to Abhijit Gangurde, Abhiram R N, Akihiko Odaki, Arnaud Fiorini,
Artemii Morozov, Bar Neuman, Bartosz Staszewski, Benjamin Mikailenko,
Charles Stoll, Dave Johnson, Dengdui Huang, Denis Pryazhennikov,
Eric Joyner, Heng Jiang, Itamar Gozlan, Jeroen de Borst, Jieqiang Wang,
Julien Aube, Kaijun Zeng, Kaisen You, Kaiyu Zhang, Kazatsker Kirill,
Lukasz Plachno, Manish Kurup, Nizan Zorea, Pavan Kumar Linga,
Pengfei Sun, Philip Prindeville, Pier Damouny, Priyalee Kushwaha,
Qin Ke, Ron Beider, Ronak Doshi, Samina Arshad, Sandilya Bhagi,
Vladimir Ratnikov, and Yutang Jiang.

Below is the number of commits per employer (with authors count):
252 Intel (45)
225 Marvell (29)
127 NVIDIA (28)
 88 Red Hat (7)
 73 Corigine (7)
 54 Ark Networks (4)
 53 Huawei (7)
 32 Microsoft (2)
 16 AMD (4)
 13 Arm (3)
 12 Broadcom (5)
 11 VMware (2)
 11 Trustnet (1)
...

A big thank to all courageous people who took on the non rewarding task
of reviewing other's job.
Based on Reviewed-by and Acked-by tags, the top non-PMD reviewers are:
 44 Ferruh Yigit 
 43 Akhil Goyal 
 38 David Marchand 
 32 Chenbo Xia 
 31 Bruce Richardson 
 26 Jerin Jacob 
 21 Ori Kam 
 20 Ciara Power 
 16 Morten Brørup 
 16 Anatoly Burakov 

More numbers? There are more than 300 open bugs in our Bugzilla.
The number of comments in half-done work (TODO, FIXME) keeps increasing,
especially in drivers code (159 lines found). Complete report is coming.
We must do more effort in cleaning such code.


The next version will be 23.11 in November.
The new features for 23.11 can be submitted during the next 2 weeks:
http://core.dpdk.org/roadmap#dates
Please share your roadmap.


Don't forget to register for the DPDK Summit in September:
https://events.linuxfoundation.org/dpdk-summit/

Thanks everyone, see you in Dublin




20.11.9 patches review and test

2023-07-28 Thread luca . boccassi
Hi all,

Here is a list of patches targeted for stable release 20.11.9.

The planned date for the final release is the 14th of August 2023.

Please help with testing and validation of your use cases and report
any issues/results with reply-all to this mail. For the final release
the fixes and reported validations will be added to the release notes.

A release candidate tarball can be found at:

https://dpdk.org/browse/dpdk-stable/tag/?id=v20.11.9-rc1

These patches are located at branch 20.11 of dpdk-stable repo:
https://dpdk.org/browse/dpdk-stable/

Thanks.

Luca Boccassi

---
Aakash Sasidharan (1):
  test/crypto: fix PDCP-SDAP test vectors

Akhil Goyal (1):
  doc: fix auth algos in cryptoperf app

Alexander Kozyrev (2):
  net/mlx5: forbid MPRQ restart
  net/mlx5: fix MPRQ stride size to accommodate the headroom

Ali Alnubani (1):
  doc: fix typos and wording in flow API guide

Artemii Morozov (1):
  common/sfc_efx/base: fix Rx queue without RSS hash prefix

Ashwin Sekhar T K (1):
  doc: fix typo in graph guide

Boleslav Stankevich (1):
  net/virtio: fix initialization to return negative errno

Bruce Richardson (5):
  kernel/freebsd: fix function parameter list
  build: fix case of project language name
  telemetry: fix autotest on Alpine
  eal: avoid calling cleanup twice
  test/bonding: fix include of standard header

Chaoyong He (2):
  net/nfp: fix offloading flows
  net/nfp: fix Tx descriptor free logic of NFD3

Chengwen Feng (4):
  net/hns3: fix Rx multiple firmware reset interrupts
  net/hns3: fix mbuf leakage when RxQ started during reset
  net/hns3: fix mbuf leakage when RxQ started after reset
  net/hns3: fix device start return value

Ciara Power (2):
  crypto/scheduler: fix last element for valid args
  app/crypto-perf: fix socket ID default value

David Christensen (1):
  net/tap: set locally administered bit for fixed MAC address

David Marchand (5):
  net/virtio-user: fix leak when initialisation fails
  net/mlx5: enhance error log for tunnel offloading
  examples/l2fwd-cat: fix external build
  test: add graph tests
  mbuf: fix Doxygen comment of distributor metadata

Dengdui Huang (3):
  net/hns3: fix variable type mismatch
  net/hns3: fix inaccurate log
  net/hns3: fix redundant line break in log

Denis Pryazhennikov (3):
  ethdev: update documentation for API to set FEC
  ethdev: check that at least one FEC mode is specified
  ethdev: update documentation for API to get FEC

Devendra Singh Rawat (1):
  net/qede: fix RSS indirection table initialization

Didier Pallard (1):
  crypto/openssl: skip workaround at compilation time

Erez Ferber (1):
  common/mlx5: adjust fork call with new kernel API

Erik Gabriel Carrillo (1):
  eventdev/timer: fix buffer flush

Fengnan Chang (2):
  eal/linux: fix legacy mem init with many segments
  mem: fix memsegs exhausted message

Ferruh Yigit (2):
  kni: fix build with Linux 6.3
  kni: fix build with Linux 6.5

Heng Jiang (1):
  net/mlx5: fix LRO TCP checksum

Hernan Vargas (2):
  baseband/fpga_5gnr_fec: fix possible division by zero
  baseband/fpga_5gnr_fec: fix starting unconfigured queue

Huisong Li (4):
  ethdev: fix MAC address occupies two entries
  net/hns3: fix IMP reset trigger
  net/hns3: fix non-zero weight for disabled TC
  net/hns3: fix index to look up table in NEON Rx

Jerin Jacob (4):
  examples/ip_pipeline: fix build with GCC 13
  examples/ntb: fix build with GCC 13
  net/hns3: fix build warning
  doc: remove warning with Doxygen 1.9.7

Jiawen Wu (3):
  net/txgbe/base: fix Tx with fiber hotplug
  net/txgbe: fix to set autoneg for 1G speed
  net/txgbe: fix extended statistics

Jie Hai (3):
  net/hns3: fix FEC mode for 200G ports
  net/hns3: fix FEC mode check
  net/hns3: fix uninitialized variable

Jieqiang Wang (1):
  net/i40e: fix comments

Junfeng Guo (1):
  doc: update BIOS settings and supported HW for NTB

Kaijun Zeng (1):
  net/vmxnet3: fix return code in initializing

Kaiwen Deng (2):
  net/ice: fix DCF RSS initialization
  net/iavf: fix virtchnl command called in interrupt

Kaiyu Zhang (1):
  ethdev: fix potential leak in PCI probing helper

Leyi Rong (1):
  eal/x86: improve multiple of 64 bytes memcpy performance

Long Wu (1):
  net/bonding: fix destroy dedicated queues flow

Mattias Rönnblom (1):
  event/dsw: free rings on close

Maxime Coquelin (1):
  vhost: fix invalid call FD handling

Michael Baum (1):
  doc: fix format in flow API guide

Min Zhou (1):
  net/ixgbe: add proper memory barriers in Rx

Mingjin Ye (3):
  net/ice: fix statistics
  net/ice: fix DCF control thread crash
  net/iavf: fix abnormal disable HW interrupt

Pavan Nikhilesh (1):
  doc: fix event timer adapter guide

Peng Zhang (1):
  net/nfp: fix address