doc: announce ethdev operation struct changes
Checks
Commit Message
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
> -----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
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>
> -----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~
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>
> 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>
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>
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/
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.
> 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/
>
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.
> 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.
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.
> 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.
> -----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.
@@ -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,