From e41d27a68df6939bef97a4afa6ffc32eb8b2c2c1 Mon Sep 17 00:00:00 2001 From: Phil Yang Date: Fri, 11 Sep 2020 15:35:51 +0800 Subject: [PATCH] mbuf: remove atomic reference counters Remove the deprecated refcnt_atomic union fields in rte_mbuf and rte_mbuf_ext_shared_info structures. Signed-off-by: Phil Yang Reviewed-by: Ruifeng Wang Signed-off-by: Thomas Monjalon Acked-by: Andrew Rybchenko --- doc/guides/rel_notes/deprecation.rst | 8 +------- doc/guides/rel_notes/release_20_11.rst | 4 ++++ lib/librte_mbuf/rte_mbuf_core.h | 13 ++----------- 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 88d7d07613..52168f7751 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -148,13 +148,7 @@ Deprecation Notices 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. - -* 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. + The deprecated unioned field ``buf_physaddr`` will be removed 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. diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst index 667e3d54ad..b729bdf200 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -84,6 +84,10 @@ API Changes Also, make sure to start the actual text at the margin. ======================================================= +* mbuf: Removed the unioned field ``refcnt_atomic`` from + the structures ``rte_mbuf`` and ``rte_mbuf_ext_shared_info``. + The field ``refcnt`` is remaining from the old unions. + * rawdev: Added a structure size parameter to the functions ``rte_rawdev_queue_setup()``, ``rte_rawdev_queue_conf_get()``, ``rte_rawdev_info_get()`` and ``rte_rawdev_configure()``, diff --git a/lib/librte_mbuf/rte_mbuf_core.h b/lib/librte_mbuf/rte_mbuf_core.h index 8cd7137ac5..cee3d5aff5 100644 --- a/lib/librte_mbuf/rte_mbuf_core.h +++ b/lib/librte_mbuf/rte_mbuf_core.h @@ -495,12 +495,7 @@ struct rte_mbuf { * or non-atomic) is controlled by the CONFIG_RTE_MBUF_REFCNT_ATOMIC * config option. */ - RTE_STD_C11 - union { - rte_atomic16_t refcnt_atomic; /**< Atomically accessed refcnt */ - /** Non-atomically accessed refcnt */ - uint16_t refcnt; - }; + uint16_t refcnt; uint16_t nb_segs; /**< Number of segments. */ /** Input port (16 bits to support more than 256 virtual ports). @@ -679,11 +674,7 @@ typedef void (*rte_mbuf_extbuf_free_callback_t)(void *addr, void *opaque); struct rte_mbuf_ext_shared_info { rte_mbuf_extbuf_free_callback_t free_cb; /**< Free callback function */ void *fcb_opaque; /**< Free callback argument */ - RTE_STD_C11 - union { - rte_atomic16_t refcnt_atomic; /**< Atomically accessed refcnt */ - uint16_t refcnt; - }; + uint16_t refcnt; }; /**< Maximum number of nb_segs allowed. */