All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] net/hns3: support disable IOVA as PA mode
@ 2023-02-14  7:11 Chengwen Feng
  2023-02-14 11:09 ` Dongdong Liu
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Chengwen Feng @ 2023-02-14  7:11 UTC (permalink / raw)
  To: thomas, ferruh.yigit, Ruifeng Wang, Dongdong Liu, Yisen Zhuang; +Cc: dev

Claim PMD supports pmd_supports_disable_iova_as_pa.

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
 drivers/net/hns3/hns3_rxtx_vec_neon.h |  2 +-
 drivers/net/hns3/hns3_rxtx_vec_sve.c  | 13 +++++++++----
 drivers/net/hns3/meson.build          |  7 +------
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/net/hns3/hns3_rxtx_vec_neon.h b/drivers/net/hns3/hns3_rxtx_vec_neon.h
index 55d9bf817d..6c49c70fc7 100644
--- a/drivers/net/hns3/hns3_rxtx_vec_neon.h
+++ b/drivers/net/hns3/hns3_rxtx_vec_neon.h
@@ -13,7 +13,7 @@ static inline void
 hns3_vec_tx(volatile struct hns3_desc *desc, struct rte_mbuf *pkt)
 {
 	uint64x2_t val1 = {
-		pkt->buf_iova + pkt->data_off,
+		rte_pktmbuf_iova(pkt),
 		((uint64_t)pkt->data_len) << HNS3_TXD_SEND_SIZE_SHIFT
 	};
 	uint64x2_t val2 = {
diff --git a/drivers/net/hns3/hns3_rxtx_vec_sve.c b/drivers/net/hns3/hns3_rxtx_vec_sve.c
index 6f23ba674d..4bf933882a 100644
--- a/drivers/net/hns3/hns3_rxtx_vec_sve.c
+++ b/drivers/net/hns3/hns3_rxtx_vec_sve.c
@@ -261,10 +261,10 @@ hns3_rxq_rearm_mbuf_sve(struct hns3_rx_queue *rxq)
 	for (i = 0; i < HNS3_DEFAULT_RXQ_REARM_THRESH; i += REARM_LOOP_STEP_NUM,
 		rxep += REARM_LOOP_STEP_NUM, rxdp += REARM_LOOP_STEP_NUM) {
 		uint64_t iova[REARM_LOOP_STEP_NUM];
-		iova[0] = rxep[0].mbuf->buf_iova;
-		iova[1] = rxep[1].mbuf->buf_iova;
-		iova[2] = rxep[2].mbuf->buf_iova;
-		iova[3] = rxep[3].mbuf->buf_iova;
+		iova[0] = rte_mbuf_iova_get(rxep[0].mbuf);
+		iova[1] = rte_mbuf_iova_get(rxep[1].mbuf);
+		iova[2] = rte_mbuf_iova_get(rxep[2].mbuf);
+		iova[3] = rte_mbuf_iova_get(rxep[3].mbuf);
 		svuint64_t siova = svld1_u64(PG64_256BIT, iova);
 		siova = svadd_n_u64_z(PG64_256BIT, siova, RTE_PKTMBUF_HEADROOM);
 		svuint64_t ol_base = svdup_n_u64(0);
@@ -397,8 +397,13 @@ hns3_tx_fill_hw_ring_sve(struct hns3_tx_queue *txq,
 		pg = svwhilelt_b64_u32(i, nb_pkts);
 		base_addr = svld1_u64(pg, (uint64_t *)pkts);
 		/* calc mbuf's field buf_iova address */
+#if RTE_IOVA_AS_PA
 		buf_iova = svadd_n_u64_z(pg, base_addr,
 					 offsetof(struct rte_mbuf, buf_iova));
+#else
+		buf_iova = svadd_n_u64_z(pg, base_addr,
+					 offsetof(struct rte_mbuf, buf_addr));
+#endif
 		/* calc mbuf's field data_off address */
 		data_off = svadd_n_u64_z(pg, base_addr,
 					 offsetof(struct rte_mbuf, data_off));
diff --git a/drivers/net/hns3/meson.build b/drivers/net/hns3/meson.build
index e1a5afa2ec..b8c0f80a20 100644
--- a/drivers/net/hns3/meson.build
+++ b/drivers/net/hns3/meson.build
@@ -13,12 +13,6 @@ if arch_subdir != 'x86' and arch_subdir != 'arm' or not dpdk_conf.get('RTE_ARCH_
     subdir_done()
 endif
 
-if dpdk_conf.get('RTE_IOVA_AS_PA') == 0
-    build = false
-    reason = 'driver does not support disabling IOVA as PA mode'
-    subdir_done()
-endif
-
 sources = files(
         'hns3_cmd.c',
         'hns3_dcb.c',
@@ -38,6 +32,7 @@ sources = files(
         'hns3_common.c',
         'hns3_dump.c',
 )
+pmd_supports_disable_iova_as_pa = true
 
 deps += ['hash']
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2023-02-21  7:53 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-14  7:11 [PATCH] net/hns3: support disable IOVA as PA mode Chengwen Feng
2023-02-14 11:09 ` Dongdong Liu
2023-02-16  8:36 ` Ruifeng Wang
2023-02-20  7:44   ` Thomas Monjalon
2023-02-20  9:11     ` fengchengwen
2023-02-20  9:43     ` Morten Brørup
2023-02-20 10:16       ` Thomas Monjalon
2023-02-20 11:12         ` Morten Brørup
2023-02-20 11:52           ` Bruce Richardson
2023-02-20 12:04             ` Morten Brørup
2023-02-20 12:23               ` Bruce Richardson
2023-02-20 12:47                 ` Morten Brørup
2023-02-20 14:12                   ` Bruce Richardson
2023-02-20 15:07                     ` Morten Brørup
2023-02-20 15:30                       ` Thomas Monjalon
2023-02-20 15:35                         ` Bruce Richardson
2023-02-20 15:40                           ` Thomas Monjalon
2023-02-21  7:53                             ` Morten Brørup
2023-02-20  9:00 ` [PATCH v2] net/hns3: support IOVA as VA Chengwen Feng

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.