On 31/07/2020 17:03, Thomas Monjalon wrote:
> In order to prepare for adding more features requiring more space in mbuf,
> some static fields must become dynamic.
> Some small layout changes may have performance benefits as well.
>
> The deprecation notice for atomic refcount is moved and reworded
> to fit below the layout deprecation.
>
> Signed-off-by: Thomas Monjalon <tho...@monjalon.net>
> ---
> doc/guides/rel_notes/deprecation.rst | 26 ++++++++++++++++++++------
> 1 file changed, 20 insertions(+), 6 deletions(-)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst
> b/doc/guides/rel_notes/deprecation.rst
> index ea4cfa7a48..015c386c76 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -67,6 +67,26 @@ Deprecation Notices
> us extending existing enum/define.
> One solution can be using a fixed size array instead of ``.*MAX.*`` value.
>
> +* mbuf: Some fields will be converted to dynamic API in DPDK 20.11
> + in order to reserve more space for the dynamic fields.
> + The following static fields will be moved as dynamic:
> +
> + - ``timestamp``
> + - ``userdata`` / ``udata64``
> + - ``seqn``
> +
> + As a consequence, the layout of the ``struct rte_mbuf`` will be
> re-arranged,
> + avoiding impact on vectorized implementation of the driver datapaths,
> + while evaluating performance gains of a better use of the first cache line.
> +
> + The deprecated unioned fields ``buf_physaddr`` and ``refcnt_atomic``
> + (as explained below) will be removed in DPDK 20.11.
So what does anyone using these fields do - except panic perhaps.
Can we include a reference to the DPDK Userspace presentation,
in advance of the documentation supporting the dynamic mbuf.
To prepare people for what is to come ...
https://www.youtube.com/watch?v=Ttl6MlhmzWY
> +
> +* mbuf: ``refcnt_atomic`` member in structures ``rte_mbuf`` and
> + ``rte_mbuf_ext_shared_info`` is of type ``rte_atomic16_t``.
> + Due to adoption of C11 atomic builtins, the field ``refcnt_atomic``
> + will be replaced with ``refcnt`` of type ``uint16_t`` in DPDK 20.11.
> +
> * ethdev: Split the ``struct eth_dev_ops`` struct to hide it as much as
> possible
> will be done in 20.11.
> Currently the ``struct eth_dev_ops`` struct is accessible by the
> application
> @@ -132,12 +152,6 @@ Deprecation Notices
> in "rte_sched.h". These changes are aligned to improvements suggested in
> the
> RFC https://mails.dpdk.org/archives/dev/2018-November/120035.html.
>
> -* mbuf: ``refcnt_atomic`` member in structures ``rte_mbuf`` and
> - ``rte_mbuf_ext_shared_info`` is of type ``rte_atomic16_t``. Due to adoption
> - of C11 atomic builtins it will be of type ``uint16_t``. ``refcnt_atomic``
> - will be removed in 20.11. It will be replaced with ``refcnt`` of type
> - ``uint16_t``.
> -
> * metrics: The function ``rte_metrics_init`` will have a non-void return
> in order to notify errors instead of calling ``rte_exit``.
>
>