From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5E347A04AF; Fri, 18 Sep 2020 16:44:05 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 431481DA19; Fri, 18 Sep 2020 16:44:05 +0200 (CEST) Received: from dal3relay51.mxroute.com (dal3relay51.mxroute.com [64.40.27.51]) by dpdk.org (Postfix) with ESMTP id 4547F1D9B1 for ; Fri, 18 Sep 2020 16:44:04 +0200 (CEST) Received: from filter004.mxroute.com ([149.28.56.236] 149.28.56.236.vultr.com) (Authenticated sender: mN4UYu2MZsgR) by dal3relay51.mxroute.com (ZoneMTA) with ESMTPSA id 174a1ac13690004d87.002 for (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256); Fri, 18 Sep 2020 14:44:03 +0000 X-Zone-Loop: f34f4da1851f462c32e10ad6b743f1d8217042328e5e X-Originating-IP: [149.28.56.236] Received: from echo.mxrouting.net (echo.mxrouting.net [116.202.222.109]) by filter004.mxroute.com (Postfix) with ESMTPS id B664D3ED96; Fri, 18 Sep 2020 14:44:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ashroe.eu; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:From:References:Cc:To:Subject:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=YhNRFDlIK7DfN7tFlgBQlJ1QGl0rKaPD0zamaysQDRg=; b=JGDalkdCfqoJl4puC6s7eRGZ2F hWfUPQOg5Sb0mlrmVBZEJ0OH0Hzuxi/PNjCb9xVYsoujhnwDmvB3mkEDhsH/VSNuI+edVvfam/DO4 4/X0W3GufrqktCQKrILMEcEyeA9mZS5FH2mnIWxVVpu+vii82TJ0l2yQCMnh47uKFfK9bL0xo4dlQ 2kEguXWukPBHCtVx0+mrvimrHNPI5lWCqAq2J9lh4rtoyo8gOSW53uS7W+iyTp7lH1UvzclnTWguT jvKNLFjXPddVGm62RR3y6dLIQvfjLZg1mlNzBp1UgHi3V8WfN+dR4ZyV7GQ7GujVIZ92dLk7sqf7Z fBPOdMWA==; To: Thomas Monjalon , dev@dpdk.org Cc: david.marchand@redhat.com, Andrew Rybchenko , Neil Horman , John McNamara , Marko Kovacevic , Anoob Joseph , Beilei Xing , Jeff Guo , Jingjing Wu , Qiming Yang , Qi Zhang , Ferruh Yigit , Olivier Matz References: <20200914161801.572174-1-thomas@monjalon.net> <20200917104133.6186-1-thomas@monjalon.net> <20200917104133.6186-5-thomas@monjalon.net> From: "Kinsella, Ray" Autocrypt: addr=mdr@ashroe.eu; keydata= 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 Message-ID: Date: Fri, 18 Sep 2020 15:43:58 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 MIME-Version: 1.0 In-Reply-To: <20200917104133.6186-5-thomas@monjalon.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-AuthUser: mdr@ashroe.eu Subject: Re: [dpdk-dev] [PATCH v2 4/4] mbuf: remove physical address alias X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 > Acked-by: Andrew Rybchenko > --- > 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