doc: announce ethdev operation struct changes

Message ID 20230704081006.1202932-1-feifei.wang2@arm.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series doc: announce ethdev operation struct changes |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/github-robot: build success github build: passed
ci/intel-Functional success Functional PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-unit-testing success Testing PASS
ci/iol-aarch-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS

Commit Message

Feifei Wang July 4, 2023, 8:10 a.m. UTC
  To support mbufs recycle mode, announce the coming ABI changes
from DPDK 23.11.

Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
 doc/guides/rel_notes/deprecation.rst | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Feifei Wang July 4, 2023, 8:17 a.m. UTC | #1
> -----Original Message-----
> From: Feifei Wang <feifei.wang2@arm.com>
> Sent: Tuesday, July 4, 2023 4:10 PM
> Cc: dev@dpdk.org; nd <nd@arm.com>; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; Feifei Wang <Feifei.Wang2@arm.com>;
> Ruifeng Wang <Ruifeng.Wang@arm.com>
> Subject: [PATCH] doc: announce ethdev operation struct changes
> 
> To support mbufs recycle mode, announce the coming ABI changes from
> DPDK 23.11.
> 
> Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> ---
>  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.
> +
>  * cryptodev: The function ``rte_cryptodev_cb_fn`` will be updated
>    to have another parameter ``qp_id`` to return the queue pair ID
>    which got error interrupt to the application,
> --
> 2.25.1
  
Konstantin Ananyev July 5, 2023, 11:32 a.m. UTC | #2
04/07/2023 09:10, Feifei Wang пишет:
> To support mbufs recycle mode, announce the coming ABI changes
> from DPDK 23.11.
> 
> Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> ---
>   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.
> +
>   * cryptodev: The function ``rte_cryptodev_cb_fn`` will be updated
>     to have another parameter ``qp_id`` to return the queue pair ID
>     which got error interrupt to the application,

Acked-by: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
  
Feifei Wang July 13, 2023, 2:37 a.m. UTC | #3
> -----Original Message-----
> From: Feifei Wang
> Sent: Tuesday, July 4, 2023 4:17 PM
> To: Feifei Wang <feifei.wang2@arm.com>
> Cc: dev@dpdk.org; nd <nd@arm.com>; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; Ruifeng Wang
> <Ruifeng.Wang@arm.com>; Konstantin Ananyev
> <konstantin.v.ananyev@yandex.ru>; mb@smartsharesystems.com; Ferruh
> Yigit <ferruh.yigit@amd.com>; thomas@monjalon.net; Andrew Rybchenko
> <andrew.rybchenko@oktetlabs.ru>; nd <nd@arm.com>
> Subject: RE: [PATCH] doc: announce ethdev operation struct changes
> 
> 
> 
> > -----Original Message-----
> > From: Feifei Wang <feifei.wang2@arm.com>
> > Sent: Tuesday, July 4, 2023 4:10 PM
> > Cc: dev@dpdk.org; nd <nd@arm.com>; Honnappa Nagarahalli
> > <Honnappa.Nagarahalli@arm.com>; Feifei Wang <Feifei.Wang2@arm.com>;
> > Ruifeng Wang <Ruifeng.Wang@arm.com>
> > Subject: [PATCH] doc: announce ethdev operation struct changes
> >
> > To support mbufs recycle mode, announce the coming ABI changes from
> > DPDK 23.11.
> >
> > Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
> > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > ---
> >  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.
> > +
> >  * cryptodev: The function ``rte_cryptodev_cb_fn`` will be updated
> >    to have another parameter ``qp_id`` to return the queue pair ID
> >    which got error interrupt to the application,
> > --
> > 2.25.1

Ping~
  
Ferruh Yigit July 13, 2023, 7:52 a.m. UTC | #4
On 7/5/2023 12:32 PM, Konstantin Ananyev wrote:
> 04/07/2023 09:10, Feifei Wang пишет:
>> To support mbufs recycle mode, announce the coming ABI changes
>> from DPDK 23.11.
>>
>> Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
>> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
>> ---
>>   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.
>> +
>>   * cryptodev: The function ``rte_cryptodev_cb_fn`` will be updated
>>     to have another parameter ``qp_id`` to return the queue pair ID
>>     which got error interrupt to the application,
> 
> Acked-by: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
>

Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
  
Morten Brørup July 13, 2023, 12:50 p.m. UTC | #5
> From: Feifei Wang [mailto:Feifei.Wang2@arm.com]
> Sent: Thursday, 13 July 2023 04.37
> 
> > From: Feifei Wang
> > Sent: Tuesday, July 4, 2023 4:17 PM
> >
> > > From: Feifei Wang <feifei.wang2@arm.com>
> > > Sent: Tuesday, July 4, 2023 4:10 PM
> > >
> > > To support mbufs recycle mode, announce the coming ABI changes from
> > > DPDK 23.11.
> > >
> > > Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
> > > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > > ---
> > >  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.
> > > +
> > >  * cryptodev: The function ``rte_cryptodev_cb_fn`` will be updated
> > >    to have another parameter ``qp_id`` to return the queue pair ID
> > >    which got error interrupt to the application,
> > > --
> > > 2.25.1
> 
> Ping~

Acked-by: Morten Brørup <mb@smartsharesystems.com>
  
Andrew Rybchenko July 17, 2023, 8:28 a.m. UTC | #6
On 7/13/23 15:50, Morten Brørup wrote:
>> From: Feifei Wang [mailto:Feifei.Wang2@arm.com]
>> Sent: Thursday, 13 July 2023 04.37
>>
>>> From: Feifei Wang
>>> Sent: Tuesday, July 4, 2023 4:17 PM
>>>
>>>> From: Feifei Wang <feifei.wang2@arm.com>
>>>> Sent: Tuesday, July 4, 2023 4:10 PM
>>>>
>>>> To support mbufs recycle mode, announce the coming ABI changes from
>>>> DPDK 23.11.
>>>>
>>>> Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
>>>> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
>>>> ---
>>>>   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.
>>>> +
>>>>   * cryptodev: The function ``rte_cryptodev_cb_fn`` will be updated
>>>>     to have another parameter ``qp_id`` to return the queue pair ID
>>>>     which got error interrupt to the application,
>>>> --
>>>> 2.25.1
>>
>> Ping~
> 
> Acked-by: Morten Brørup <mb@smartsharesystems.com>
> 

Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
  
Thomas Monjalon July 28, 2023, 2:56 p.m. UTC | #7
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 <feifei.wang2@arm.com>
> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> ---
>  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-thomas@monjalon.net/
  
Thomas Monjalon July 28, 2023, 3:04 p.m. UTC | #8
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 <feifei.wang2@arm.com>
> > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > ---
> >  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-thomas@monjalon.net/

This deprecation notice is marked as superseded,
given my patch above should be enough.
  
Morten Brørup July 28, 2023, 3:08 p.m. UTC | #9
> From: Thomas Monjalon [mailto:thomas@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 <feifei.wang2@arm.com>
> > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > ---
> >  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.wang2@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-
> thomas@monjalon.net/
>
  
Thomas Monjalon July 28, 2023, 3:20 p.m. UTC | #10
28/07/2023 17:08, Morten Brørup:
> > From: Thomas Monjalon [mailto:thomas@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 <feifei.wang2@arm.com>
> > > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > > ---
> > >  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.
  
Morten Brørup July 28, 2023, 3:33 p.m. UTC | #11
> From: Thomas Monjalon [mailto:thomas@monjalon.net]
> Sent: Friday, 28 July 2023 17.20
> 
> 28/07/2023 17:08, Morten Brørup:
> > > From: Thomas Monjalon [mailto:thomas@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 <feifei.wang2@arm.com>
> > > > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > > > ---
> > > >  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.
  
Thomas Monjalon July 28, 2023, 3:37 p.m. UTC | #12
28/07/2023 17:33, Morten Brørup:
> > From: Thomas Monjalon [mailto:thomas@monjalon.net]
> > Sent: Friday, 28 July 2023 17.20
> > 
> > 28/07/2023 17:08, Morten Brørup:
> > > > From: Thomas Monjalon [mailto:thomas@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 <feifei.wang2@arm.com>
> > > > > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > > > > ---
> > > > >  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.
  
Morten Brørup July 28, 2023, 3:55 p.m. UTC | #13
> From: Thomas Monjalon [mailto:thomas@monjalon.net]
> Sent: Friday, 28 July 2023 17.38
> 
> 28/07/2023 17:33, Morten Brørup:
> > > From: Thomas Monjalon [mailto:thomas@monjalon.net]
> > > Sent: Friday, 28 July 2023 17.20
> > >
> > > 28/07/2023 17:08, Morten Brørup:
> > > > > From: Thomas Monjalon [mailto:thomas@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 <feifei.wang2@arm.com>
> > > > > > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > > > > > ---
> > > > > >  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.
  
Feifei Wang Aug. 1, 2023, 3:19 a.m. UTC | #14
> -----Original Message-----
> From: Morten Brørup <mb@smartsharesystems.com>
> Sent: Friday, July 28, 2023 11:55 PM
> To: thomas@monjalon.net
> Cc: dev@dpdk.org; nd <nd@arm.com>; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; Feifei Wang <Feifei.Wang2@arm.com>;
> Ruifeng Wang <Ruifeng.Wang@arm.com>; Feifei Wang
> <Feifei.Wang2@arm.com>; ferruh.yigit@amd.com;
> konstantin.ananyev@huawei.com; andrew.rybchenko@oktetlabs.ru
> Subject: RE: [PATCH] doc: announce ethdev operation struct changes
> 
> > From: Thomas Monjalon [mailto:thomas@monjalon.net]
> > Sent: Friday, 28 July 2023 17.38
> >
> > 28/07/2023 17:33, Morten Brørup:
> > > > From: Thomas Monjalon [mailto:thomas@monjalon.net]
> > > > Sent: Friday, 28 July 2023 17.20
> > > >
> > > > 28/07/2023 17:08, Morten Brørup:
> > > > > > From: Thomas Monjalon [mailto:thomas@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 <feifei.wang2@arm.com>
> > > > > > > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > > > > > > ---
> > > > > > >  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.

Sorry for my late. Agree with this change. And then, I will update a new version
of recycle mbufs mode for dpdk 23.11

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

Patch

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.
+
 * cryptodev: The function ``rte_cryptodev_cb_fn`` will be updated
   to have another parameter ``qp_id`` to return the queue pair ID
   which got error interrupt to the application,