Thread (9 messages) 9 messages, 4 authors, 2015-07-01

Re: [PATCH] fm10k: support XEN domain0

From: Liu, Jijiang <hidden>
Date: 2015-06-05 03:18:03

Acked-by: Jijiang Liu <redacted>

I think this patch could be merged before Stephen's following patch[1] is merged, then Stephen should rework the patch[1].
Thanks.

[1]http://dpdk.org/ml/archives/dev/2015-March/014992.html
quoted hunk ↗ jump to hunk
-----Original Message-----
From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Shaopeng He
Sent: Friday, May 15, 2015 4:56 PM
To: dev@dpdk.org
Cc: He, Shaopeng
Subject: [dpdk-dev] [PATCH] fm10k: support XEN domain0

fm10k was failing to run in XEN domain0, as the physical memory for DMA
should be allocated and translated in a different way for XEN domain0. So
rte_memzone_reserve_bounded() should be used for DMA memory
allocation, and rte_mem_phy2mch() should be used for DMA memory
address translation to support running fm10k PMD in XEN domain0.

Signed-off-by: Shaopeng He <redacted>
---
 lib/librte_pmd_fm10k/fm10k_ethdev.c | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/lib/librte_pmd_fm10k/fm10k_ethdev.c
b/lib/librte_pmd_fm10k/fm10k_ethdev.c
index 275c19c..c85c856 100644
--- a/lib/librte_pmd_fm10k/fm10k_ethdev.c
+++ b/lib/librte_pmd_fm10k/fm10k_ethdev.c
@@ -1004,7 +1004,11 @@ fm10k_rx_queue_setup(struct rte_eth_dev *dev,
uint16_t queue_id,
 		return (-ENOMEM);
 	}
 	q->hw_ring = mz->addr;
+#ifdef RTE_LIBRTE_XEN_DOM0
+	q->hw_ring_phys_addr = rte_mem_phy2mch(mz->memseg_id, mz-
quoted
phys_addr);
+#else
 	q->hw_ring_phys_addr = mz->phys_addr;
+#endif

 	dev->data->rx_queues[queue_id] = q;
 	return 0;
@@ -1150,7 +1154,11 @@ fm10k_tx_queue_setup(struct rte_eth_dev *dev,
uint16_t queue_id,
 		return (-ENOMEM);
 	}
 	q->hw_ring = mz->addr;
+#ifdef RTE_LIBRTE_XEN_DOM0
+	q->hw_ring_phys_addr = rte_mem_phy2mch(mz->memseg_id, mz-
quoted
phys_addr);
+#else
 	q->hw_ring_phys_addr = mz->phys_addr;
+#endif

 	/*
 	 * allocate memory for the RS bit tracker. Enough slots to hold the
--
1.9.3
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help