[v2,4/4] mbuf: remove physical address alias
diff mbox series

Message ID 20200917104133.6186-5-thomas@monjalon.net
State Accepted
Delegated to: Thomas Monjalon
Headers show
Series
  • remove aliases replaced with IOVA
Related show

Checks

Context Check Description
ci/Intel-compilation fail apply issues
ci/iol-testing success Testing PASS
ci/checkpatch warning coding style issues

Commit Message

Thomas Monjalon Sept. 17, 2020, 10:41 a.m. UTC
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>
---
 doc/guides/rel_notes/deprecation.rst          |  2 --
 doc/guides/rel_notes/release_20_11.rst        |  3 +++
 drivers/common/cpt/cpt_ucode.h                |  2 +-
 drivers/net/i40e/i40e_rxtx_vec_avx2.c         | 18 +++++++++---------
 drivers/net/iavf/iavf_rxtx_vec_avx2.c         | 18 +++++++++---------
 drivers/net/ice/ice_rxtx_vec_avx2.c           | 18 +++++++++---------
 kernel/linux/kni/kni_net.c                    |  6 +++---
 lib/librte_eal/linux/include/rte_kni_common.h |  2 +-
 lib/librte_mbuf/rte_mbuf_core.h               |  6 +-----
 9 files changed, 36 insertions(+), 39 deletions(-)

Comments

Ray Kinsella Sept. 18, 2020, 2:43 p.m. UTC | #1
On 17/09/2020 11:41, Thomas Monjalon wrote:
> 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>
> ---
>  doc/guides/rel_notes/deprecation.rst          |  2 --
>  doc/guides/rel_notes/release_20_11.rst        |  3 +++
>  drivers/common/cpt/cpt_ucode.h                |  2 +-
>  drivers/net/i40e/i40e_rxtx_vec_avx2.c         | 18 +++++++++---------
>  drivers/net/iavf/iavf_rxtx_vec_avx2.c         | 18 +++++++++---------
>  drivers/net/ice/ice_rxtx_vec_avx2.c           | 18 +++++++++---------
>  kernel/linux/kni/kni_net.c                    |  6 +++---
>  lib/librte_eal/linux/include/rte_kni_common.h |  2 +-
>  lib/librte_mbuf/rte_mbuf_core.h               |  6 +-----
>  9 files changed, 36 insertions(+), 39 deletions(-)
> 
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 52168f7751..143b7694a5 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -148,8 +148,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
> diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
> index a290b44ae5..4a7f6f4b6c 100644
> --- a/doc/guides/rel_notes/release_20_11.rst
> +++ b/doc/guides/rel_notes/release_20_11.rst
> @@ -99,6 +99,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.
> diff --git a/drivers/common/cpt/cpt_ucode.h b/drivers/common/cpt/cpt_ucode.h
> index 4e79fbf7a5..763355fb1f 100644
> --- a/drivers/common/cpt/cpt_ucode.h
> +++ b/drivers/common/cpt/cpt_ucode.h
> @@ -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;
> diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
> index 3bcef13638..37e7db5d7e 100644
> --- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c
> +++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
> @@ -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);
>  	}
> diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
> index e5e0fd3095..8f28afc8c5 100644
> --- a/drivers/net/iavf/iavf_rxtx_vec_avx2.c
> +++ b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
> @@ -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);
>  	}
> diff --git a/drivers/net/ice/ice_rxtx_vec_avx2.c b/drivers/net/ice/ice_rxtx_vec_avx2.c
> index be50677c2f..b653805160 100644
> --- a/drivers/net/ice/ice_rxtx_vec_avx2.c
> +++ b/drivers/net/ice/ice_rxtx_vec_avx2.c
> @@ -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);
>  	}
> diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c
> index c82c881a2c..4b752083da 100644
> --- a/kernel/linux/kni/kni_net.c
> +++ b/kernel/linux/kni/kni_net.c
> @@ -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 *
> diff --git a/lib/librte_eal/linux/include/rte_kni_common.h b/lib/librte_eal/linux/include/rte_kni_common.h
> index 7313ef504e..21b477f0aa 100644
> --- a/lib/librte_eal/linux/include/rte_kni_common.h
> +++ b/lib/librte_eal/linux/include/rte_kni_common.h
> @@ -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. */
> diff --git a/lib/librte_mbuf/rte_mbuf_core.h b/lib/librte_mbuf/rte_mbuf_core.h
> index cee3d5aff5..8c2c20644d 100644
> --- a/lib/librte_mbuf/rte_mbuf_core.h
> +++ b/lib/librte_mbuf/rte_mbuf_core.h
> @@ -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;
> 
Acked-by: Ray Kinsella <mdr@ashroe.eu>
Thomas Monjalon Sept. 18, 2020, 10:32 p.m. UTC | #2
18/09/2020 16:43, Kinsella, Ray:
> On 17/09/2020 11:41, Thomas Monjalon wrote:
> > 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>

Applied

Patch
diff mbox series

diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 52168f7751..143b7694a5 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -148,8 +148,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
diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
index a290b44ae5..4a7f6f4b6c 100644
--- a/doc/guides/rel_notes/release_20_11.rst
+++ b/doc/guides/rel_notes/release_20_11.rst
@@ -99,6 +99,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.
diff --git a/drivers/common/cpt/cpt_ucode.h b/drivers/common/cpt/cpt_ucode.h
index 4e79fbf7a5..763355fb1f 100644
--- a/drivers/common/cpt/cpt_ucode.h
+++ b/drivers/common/cpt/cpt_ucode.h
@@ -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;
diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
index 3bcef13638..37e7db5d7e 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
@@ -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);
 	}
diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
index e5e0fd3095..8f28afc8c5 100644
--- a/drivers/net/iavf/iavf_rxtx_vec_avx2.c
+++ b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
@@ -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);
 	}
diff --git a/drivers/net/ice/ice_rxtx_vec_avx2.c b/drivers/net/ice/ice_rxtx_vec_avx2.c
index be50677c2f..b653805160 100644
--- a/drivers/net/ice/ice_rxtx_vec_avx2.c
+++ b/drivers/net/ice/ice_rxtx_vec_avx2.c
@@ -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);
 	}
diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c
index c82c881a2c..4b752083da 100644
--- a/kernel/linux/kni/kni_net.c
+++ b/kernel/linux/kni/kni_net.c
@@ -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 *
diff --git a/lib/librte_eal/linux/include/rte_kni_common.h b/lib/librte_eal/linux/include/rte_kni_common.h
index 7313ef504e..21b477f0aa 100644
--- a/lib/librte_eal/linux/include/rte_kni_common.h
+++ b/lib/librte_eal/linux/include/rte_kni_common.h
@@ -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. */
diff --git a/lib/librte_mbuf/rte_mbuf_core.h b/lib/librte_mbuf/rte_mbuf_core.h
index cee3d5aff5..8c2c20644d 100644
--- a/lib/librte_mbuf/rte_mbuf_core.h
+++ b/lib/librte_mbuf/rte_mbuf_core.h
@@ -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;