mbuf: remove physical address alias
authorThomas Monjalon <thomas@monjalon.net>
Mon, 14 Sep 2020 09:43:25 +0000 (11:43 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 18 Sep 2020 22:25:37 +0000 (00:25 +0200)
Remove the deprecated buf_physaddr union field from rte_mbuf.
It is replaced with buf_iova which is at the same offset.

The single field buf_physaddr in rte_kni_mbuf is also renamed.

This concludes a 3-year process of semantic change.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
doc/guides/rel_notes/deprecation.rst
doc/guides/rel_notes/release_20_11.rst
drivers/common/cpt/cpt_ucode.h
drivers/net/i40e/i40e_rxtx_vec_avx2.c
drivers/net/iavf/iavf_rxtx_vec_avx2.c
drivers/net/ice/ice_rxtx_vec_avx2.c
kernel/linux/kni/kni_net.c
lib/librte_eal/linux/include/rte_kni_common.h
lib/librte_mbuf/rte_mbuf_core.h

index 1f888fa..e992cfc 100644 (file)
@@ -144,8 +144,6 @@ 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 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.
   Currently the ``struct eth_dev_ops`` struct is accessible by the application
index 40715a4..755e8e4 100644 (file)
@@ -102,6 +102,9 @@ API Changes
   The same functionality is still available with the functions and macros
   having ``iova`` in their names instead of ``dma_addr`` or ``mtophys``.
 
+* mbuf: Removed the unioned field ``buf_physaddr`` from ``rte_mbuf``.
+  The field ``buf_iova`` is remaining from the old union.
+
 * 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.
index 4e79fbf..763355f 100644 (file)
@@ -2862,7 +2862,7 @@ alloc_op_meta(struct rte_mbuf *m_src,
                tailroom = rte_pktmbuf_tailroom(m_src);
                if (likely(tailroom > len + 8)) {
                        mdata = (uint8_t *)m_src->buf_addr + m_src->buf_len;
-                       mphys = m_src->buf_physaddr + m_src->buf_len;
+                       mphys = m_src->buf_iova + m_src->buf_len;
                        mdata -= len;
                        mphys -= len;
                        buf->vaddr = mdata;
index 3bcef13..37e7db5 100644 (file)
@@ -59,8 +59,8 @@ i40e_rxq_rearm(struct i40e_rx_queue *rxq)
                mb0 = rxep[0].mbuf;
                mb1 = rxep[1].mbuf;
 
-               /* load buf_addr(lo 64bit) and buf_physaddr(hi 64bit) */
-               RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_physaddr) !=
+               /* load buf_addr(lo 64bit) and buf_iova(hi 64bit) */
+               RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_iova) !=
                                offsetof(struct rte_mbuf, buf_addr) + 8);
                vaddr0 = _mm_loadu_si128((__m128i *)&mb0->buf_addr);
                vaddr1 = _mm_loadu_si128((__m128i *)&mb1->buf_addr);
@@ -92,8 +92,8 @@ i40e_rxq_rearm(struct i40e_rx_queue *rxq)
                mb2 = rxep[2].mbuf;
                mb3 = rxep[3].mbuf;
 
-               /* load buf_addr(lo 64bit) and buf_physaddr(hi 64bit) */
-               RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_physaddr) !=
+               /* load buf_addr(lo 64bit) and buf_iova(hi 64bit) */
+               RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_iova) !=
                                offsetof(struct rte_mbuf, buf_addr) + 8);
                vaddr0 = _mm_loadu_si128((__m128i *)&mb0->buf_addr);
                vaddr1 = _mm_loadu_si128((__m128i *)&mb1->buf_addr);
@@ -814,7 +814,7 @@ vtx1(volatile struct i40e_tx_desc *txdp,
                        ((uint64_t)pkt->data_len << I40E_TXD_QW1_TX_BUF_SZ_SHIFT));
 
        __m128i descriptor = _mm_set_epi64x(high_qw,
-                               pkt->buf_physaddr + pkt->data_off);
+                               pkt->buf_iova + pkt->data_off);
        _mm_store_si128((__m128i *)txdp, descriptor);
 }
 
@@ -843,11 +843,11 @@ vtx(volatile struct i40e_tx_desc *txdp,
                                ((uint64_t)pkt[0]->data_len << I40E_TXD_QW1_TX_BUF_SZ_SHIFT);
 
                __m256i desc2_3 = _mm256_set_epi64x(
-                               hi_qw3, pkt[3]->buf_physaddr + pkt[3]->data_off,
-                               hi_qw2, pkt[2]->buf_physaddr + pkt[2]->data_off);
+                               hi_qw3, pkt[3]->buf_iova + pkt[3]->data_off,
+                               hi_qw2, pkt[2]->buf_iova + pkt[2]->data_off);
                __m256i desc0_1 = _mm256_set_epi64x(
-                               hi_qw1, pkt[1]->buf_physaddr + pkt[1]->data_off,
-                               hi_qw0, pkt[0]->buf_physaddr + pkt[0]->data_off);
+                               hi_qw1, pkt[1]->buf_iova + pkt[1]->data_off,
+                               hi_qw0, pkt[0]->buf_iova + pkt[0]->data_off);
                _mm256_store_si256((void *)(txdp + 2), desc2_3);
                _mm256_store_si256((void *)txdp, desc0_1);
        }
index e5e0fd3..8f28afc 100644 (file)
@@ -52,8 +52,8 @@ iavf_rxq_rearm(struct iavf_rx_queue *rxq)
                mb0 = rxp[0];
                mb1 = rxp[1];
 
-               /* load buf_addr(lo 64bit) and buf_physaddr(hi 64bit) */
-               RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_physaddr) !=
+               /* load buf_addr(lo 64bit) and buf_iova(hi 64bit) */
+               RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_iova) !=
                                offsetof(struct rte_mbuf, buf_addr) + 8);
                vaddr0 = _mm_loadu_si128((__m128i *)&mb0->buf_addr);
                vaddr1 = _mm_loadu_si128((__m128i *)&mb1->buf_addr);
@@ -85,8 +85,8 @@ iavf_rxq_rearm(struct iavf_rx_queue *rxq)
                mb2 = rxp[2];
                mb3 = rxp[3];
 
-               /* load buf_addr(lo 64bit) and buf_physaddr(hi 64bit) */
-               RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_physaddr) !=
+               /* load buf_addr(lo 64bit) and buf_iova(hi 64bit) */
+               RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_iova) !=
                                offsetof(struct rte_mbuf, buf_addr) + 8);
                vaddr0 = _mm_loadu_si128((__m128i *)&mb0->buf_addr);
                vaddr1 = _mm_loadu_si128((__m128i *)&mb1->buf_addr);
@@ -1391,7 +1391,7 @@ iavf_vtx1(volatile struct iavf_tx_desc *txdp,
                 ((uint64_t)pkt->data_len << IAVF_TXD_QW1_TX_BUF_SZ_SHIFT));
 
        __m128i descriptor = _mm_set_epi64x(high_qw,
-                               pkt->buf_physaddr + pkt->data_off);
+                               pkt->buf_iova + pkt->data_off);
        _mm_store_si128((__m128i *)txdp, descriptor);
 }
 
@@ -1430,15 +1430,15 @@ iavf_vtx(volatile struct iavf_tx_desc *txdp,
                __m256i desc2_3 =
                        _mm256_set_epi64x
                                (hi_qw3,
-                                pkt[3]->buf_physaddr + pkt[3]->data_off,
+                                pkt[3]->buf_iova + pkt[3]->data_off,
                                 hi_qw2,
-                                pkt[2]->buf_physaddr + pkt[2]->data_off);
+                                pkt[2]->buf_iova + pkt[2]->data_off);
                __m256i desc0_1 =
                        _mm256_set_epi64x
                                (hi_qw1,
-                                pkt[1]->buf_physaddr + pkt[1]->data_off,
+                                pkt[1]->buf_iova + pkt[1]->data_off,
                                 hi_qw0,
-                                pkt[0]->buf_physaddr + pkt[0]->data_off);
+                                pkt[0]->buf_iova + pkt[0]->data_off);
                _mm256_store_si256((void *)(txdp + 2), desc2_3);
                _mm256_store_si256((void *)txdp, desc0_1);
        }
index be50677..b653805 100644 (file)
@@ -52,8 +52,8 @@ ice_rxq_rearm(struct ice_rx_queue *rxq)
                mb0 = rxep[0].mbuf;
                mb1 = rxep[1].mbuf;
 
-               /* load buf_addr(lo 64bit) and buf_physaddr(hi 64bit) */
-               RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_physaddr) !=
+               /* load buf_addr(lo 64bit) and buf_iova(hi 64bit) */
+               RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_iova) !=
                                offsetof(struct rte_mbuf, buf_addr) + 8);
                vaddr0 = _mm_loadu_si128((__m128i *)&mb0->buf_addr);
                vaddr1 = _mm_loadu_si128((__m128i *)&mb1->buf_addr);
@@ -85,8 +85,8 @@ ice_rxq_rearm(struct ice_rx_queue *rxq)
                mb2 = rxep[2].mbuf;
                mb3 = rxep[3].mbuf;
 
-               /* load buf_addr(lo 64bit) and buf_physaddr(hi 64bit) */
-               RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_physaddr) !=
+               /* load buf_addr(lo 64bit) and buf_iova(hi 64bit) */
+               RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_iova) !=
                                offsetof(struct rte_mbuf, buf_addr) + 8);
                vaddr0 = _mm_loadu_si128((__m128i *)&mb0->buf_addr);
                vaddr1 = _mm_loadu_si128((__m128i *)&mb1->buf_addr);
@@ -689,7 +689,7 @@ ice_vtx1(volatile struct ice_tx_desc *txdp,
                 ((uint64_t)pkt->data_len << ICE_TXD_QW1_TX_BUF_SZ_S));
 
        __m128i descriptor = _mm_set_epi64x(high_qw,
-                               pkt->buf_physaddr + pkt->data_off);
+                               pkt->buf_iova + pkt->data_off);
        _mm_store_si128((__m128i *)txdp, descriptor);
 }
 
@@ -728,15 +728,15 @@ ice_vtx(volatile struct ice_tx_desc *txdp,
                __m256i desc2_3 =
                        _mm256_set_epi64x
                                (hi_qw3,
-                                pkt[3]->buf_physaddr + pkt[3]->data_off,
+                                pkt[3]->buf_iova + pkt[3]->data_off,
                                 hi_qw2,
-                                pkt[2]->buf_physaddr + pkt[2]->data_off);
+                                pkt[2]->buf_iova + pkt[2]->data_off);
                __m256i desc0_1 =
                        _mm256_set_epi64x
                                (hi_qw1,
-                                pkt[1]->buf_physaddr + pkt[1]->data_off,
+                                pkt[1]->buf_iova + pkt[1]->data_off,
                                 hi_qw0,
-                                pkt[0]->buf_physaddr + pkt[0]->data_off);
+                                pkt[0]->buf_iova + pkt[0]->data_off);
                _mm256_store_si256((void *)(txdp + 2), desc2_3);
                _mm256_store_si256((void *)txdp, desc0_1);
        }
index c82c881..4b75208 100644 (file)
@@ -47,7 +47,7 @@ iova2kva(struct kni_dev *kni, void *iova)
 static inline void *
 iova2data_kva(struct kni_dev *kni, struct rte_kni_mbuf *m)
 {
-       return phys_to_virt(iova_to_phys(kni->usr_tsk, m->buf_physaddr) +
+       return phys_to_virt(iova_to_phys(kni->usr_tsk, m->buf_iova) +
                            m->data_off);
 }
 #endif
@@ -67,7 +67,7 @@ pa2va(void *pa, struct rte_kni_mbuf *m)
 
        va = (void *)((unsigned long)pa +
                        (unsigned long)m->buf_addr -
-                       (unsigned long)m->buf_physaddr);
+                       (unsigned long)m->buf_iova);
        return va;
 }
 
@@ -75,7 +75,7 @@ pa2va(void *pa, struct rte_kni_mbuf *m)
 static void *
 kva2data_kva(struct rte_kni_mbuf *m)
 {
-       return phys_to_virt(m->buf_physaddr + m->data_off);
+       return phys_to_virt(m->buf_iova + m->data_off);
 }
 
 static inline void *
index 7313ef5..21b477f 100644 (file)
@@ -75,7 +75,7 @@ struct rte_kni_fifo {
  */
 struct rte_kni_mbuf {
        void *buf_addr __attribute__((__aligned__(RTE_CACHE_LINE_SIZE)));
-       uint64_t buf_physaddr;
+       uint64_t buf_iova;
        uint16_t data_off;      /**< Start address of data in segment buffer. */
        char pad1[2];
        uint16_t nb_segs;       /**< Number of segments. */
index cee3d5a..8c2c206 100644 (file)
@@ -476,11 +476,7 @@ struct rte_mbuf {
         * same mbuf cacheline0 layout for 32-bit and 64-bit. This makes
         * working on vector drivers easier.
         */
-       RTE_STD_C11
-       union {
-               rte_iova_t buf_iova;
-               rte_iova_t buf_physaddr; /**< deprecated */
-       } __rte_aligned(sizeof(rte_iova_t));
+       rte_iova_t buf_iova __rte_aligned(sizeof(rte_iova_t));
 
        /* next 8 bytes are initialised on RX descriptor rearm */
        RTE_MARKER64 rearm_data;