DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jianfeng Tan <jianfeng.tan@intel.com>
To: dev@dpdk.org
Cc: Jianfeng Tan <jianfeng.tan@intel.com>,
	Huawei Xie <huawei.xie@intel.com>,
	rich.lane@bigswitch.com, yuanhan.liu@linux.intel.com,
	mst@redhat.com, nakajima.yoshihiro@lab.ntt.co.jp,
	p.fedin@samsung.com, ann.zhuangyanying@huawei.com,
	mukawa@igel.co.jp, nhorman@tuxdriver.com
Subject: [dpdk-dev] [PATCH v8 2/6] virtio: enable use virtual address to fill desc
Date: Mon, 13 Jun 2016 06:38:59 +0000	[thread overview]
Message-ID: <1465799943-138577-3-git-send-email-jianfeng.tan@intel.com> (raw)
In-Reply-To: <1465799943-138577-1-git-send-email-jianfeng.tan@intel.com>

This patch is related to how to calculate relative address for vhost
backend.

The principle is that: based on one or multiple shared memory regions,
vhost maintains a reference system with the frontend start address,
backend start address, and length for each segment, so that each
frontend address (GPA, Guest Physical Address) can be translated into
vhost-recognizable backend address. To make the address translation
efficient, we need to maintain as few regions as possible. In the case
of VM, GPA is always locally continuous. But for some other case, like
virtio-user, we use virtual address here.

It basically means:
  a. when set_base_addr, VA address is used;
  b. when preparing RX's descriptors, VA address is used;
  c. when transmitting packets, VA is filled in TX's descriptors;
  d. in TX and CQ's header, VA is used.

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
---
 drivers/net/virtio/virtio_ethdev.c      | 43 +++++++++++++++++++++++----------
 drivers/net/virtio/virtio_rxtx.c        |  5 ++--
 drivers/net/virtio/virtio_rxtx_simple.c | 13 +++++-----
 drivers/net/virtio/virtqueue.h          | 10 ++++++++
 4 files changed, 49 insertions(+), 22 deletions(-)

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index 841949b..9ccce79 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -431,9 +431,6 @@ int virtio_dev_queue_setup(struct rte_eth_dev *dev,
 		rxvq->mz = mz;
 		*pvq = rxvq;
 	} else if (queue_type == VTNET_TQ) {
-		struct virtio_tx_region *txr;
-		unsigned int i;
-
 		txvq = (struct virtnet_tx *)RTE_PTR_ADD(vq, sz_vq);
 		txvq->vq = vq;
 		txvq->port_id = dev->data->port_id;
@@ -442,6 +439,36 @@ int virtio_dev_queue_setup(struct rte_eth_dev *dev,
 		txvq->virtio_net_hdr_mz = hdr_mz;
 		txvq->virtio_net_hdr_mem = hdr_mz->phys_addr;
 
+		*pvq = txvq;
+	} else if (queue_type == VTNET_CQ) {
+		cvq = (struct virtnet_ctl *)RTE_PTR_ADD(vq, sz_vq);
+		cvq->vq = vq;
+		cvq->mz = mz;
+		cvq->virtio_net_hdr_mz = hdr_mz;
+		cvq->virtio_net_hdr_mem = hdr_mz->phys_addr;
+		memset(cvq->virtio_net_hdr_mz->addr, 0, PAGE_SIZE);
+		*pvq = cvq;
+	}
+
+	/* For virtio-user case (that is when dev->pci_dev is NULL), we use
+	 * virtual address. And we need properly set _offset_, please see
+	 * MBUF_DATA_DMA_ADDR in virtqueue.h for more information.
+	 */
+	if (dev->pci_dev)
+		vq->offset = offsetof(struct rte_mbuf, buf_physaddr);
+	else {
+		vq->vq_ring_mem = (uintptr_t)mz->addr;
+		vq->offset = offsetof(struct rte_mbuf, buf_addr);
+		if (queue_type == VTNET_TQ)
+			txvq->virtio_net_hdr_mem = (uintptr_t)hdr_mz->addr;
+		else if (queue_type == VTNET_CQ)
+			cvq->virtio_net_hdr_mem = (uintptr_t)hdr_mz->addr;
+	}
+
+	if (queue_type == VTNET_TQ) {
+		struct virtio_tx_region *txr;
+		unsigned int i;
+
 		txr = hdr_mz->addr;
 		memset(txr, 0, vq_size * sizeof(*txr));
 		for (i = 0; i < vq_size; i++) {
@@ -457,16 +484,6 @@ int virtio_dev_queue_setup(struct rte_eth_dev *dev,
 			start_dp->len = hw->vtnet_hdr_size;
 			start_dp->flags = VRING_DESC_F_NEXT;
 		}
-
-		*pvq = txvq;
-	} else if (queue_type == VTNET_CQ) {
-		cvq = (struct virtnet_ctl *)RTE_PTR_ADD(vq, sz_vq);
-		cvq->vq = vq;
-		cvq->mz = mz;
-		cvq->virtio_net_hdr_mz = hdr_mz;
-		cvq->virtio_net_hdr_mem = hdr_mz->phys_addr;
-		memset(cvq->virtio_net_hdr_mz->addr, 0, PAGE_SIZE);
-		*pvq = cvq;
 	}
 
 	if (hw->vtpci_ops->setup_queue(hw, vq) < 0) {
diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
index 28266d2..b96d0cb 100644
--- a/drivers/net/virtio/virtio_rxtx.c
+++ b/drivers/net/virtio/virtio_rxtx.c
@@ -193,8 +193,7 @@ virtqueue_enqueue_recv_refill(struct virtqueue *vq, struct rte_mbuf *cookie)
 
 	start_dp = vq->vq_ring.desc;
 	start_dp[idx].addr =
-		(uint64_t)(cookie->buf_physaddr + RTE_PKTMBUF_HEADROOM
-		- hw->vtnet_hdr_size);
+		MBUF_DATA_DMA_ADDR(cookie, vq->offset) - hw->vtnet_hdr_size;
 	start_dp[idx].len =
 		cookie->buf_len - RTE_PKTMBUF_HEADROOM + hw->vtnet_hdr_size;
 	start_dp[idx].flags =  VRING_DESC_F_WRITE;
@@ -266,7 +265,7 @@ virtqueue_enqueue_xmit(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
 	}
 
 	do {
-		start_dp[idx].addr  = rte_mbuf_data_dma_addr(cookie);
+		start_dp[idx].addr  = MBUF_DATA_DMA_ADDR(cookie, vq->offset);
 		start_dp[idx].len   = cookie->data_len;
 		start_dp[idx].flags = cookie->next ? VRING_DESC_F_NEXT : 0;
 		idx = start_dp[idx].next;
diff --git a/drivers/net/virtio/virtio_rxtx_simple.c b/drivers/net/virtio/virtio_rxtx_simple.c
index fdd655d..7b50119 100644
--- a/drivers/net/virtio/virtio_rxtx_simple.c
+++ b/drivers/net/virtio/virtio_rxtx_simple.c
@@ -80,8 +80,8 @@ virtqueue_enqueue_recv_refill_simple(struct virtqueue *vq,
 	vq->sw_ring[desc_idx] = cookie;
 
 	start_dp = vq->vq_ring.desc;
-	start_dp[desc_idx].addr = (uint64_t)((uintptr_t)cookie->buf_physaddr +
-		RTE_PKTMBUF_HEADROOM - vq->hw->vtnet_hdr_size);
+	start_dp[desc_idx].addr = MBUF_DATA_DMA_ADDR(cookie, vq->offset) -
+				  vq->hw->vtnet_hdr_size;
 	start_dp[desc_idx].len = cookie->buf_len -
 		RTE_PKTMBUF_HEADROOM + vq->hw->vtnet_hdr_size;
 
@@ -120,8 +120,8 @@ virtio_rxq_rearm_vec(struct virtnet_rx *rxvq)
 		*(uint64_t *)p = rxvq->mbuf_initializer;
 
 		start_dp[i].addr =
-			(uint64_t)((uintptr_t)sw_ring[i]->buf_physaddr +
-			RTE_PKTMBUF_HEADROOM - vq->hw->vtnet_hdr_size);
+			MBUF_DATA_DMA_ADDR(sw_ring[i], vq->offset) -
+			vq->hw->vtnet_hdr_size;
 		start_dp[i].len = sw_ring[i]->buf_len -
 			RTE_PKTMBUF_HEADROOM + vq->hw->vtnet_hdr_size;
 	}
@@ -369,7 +369,7 @@ virtio_xmit_pkts_simple(void *tx_queue, struct rte_mbuf **tx_pkts,
 			vq->vq_descx[desc_idx + i].cookie = tx_pkts[i];
 		for (i = 0; i < nb_tail; i++) {
 			start_dp[desc_idx].addr =
-				rte_mbuf_data_dma_addr(*tx_pkts);
+				MBUF_DATA_DMA_ADDR(*tx_pkts, vq->offset);
 			start_dp[desc_idx].len = (*tx_pkts)->pkt_len;
 			tx_pkts++;
 			desc_idx++;
@@ -380,7 +380,8 @@ virtio_xmit_pkts_simple(void *tx_queue, struct rte_mbuf **tx_pkts,
 	for (i = 0; i < nb_commit; i++)
 		vq->vq_descx[desc_idx + i].cookie = tx_pkts[i];
 	for (i = 0; i < nb_commit; i++) {
-		start_dp[desc_idx].addr = rte_mbuf_data_dma_addr(*tx_pkts);
+		start_dp[desc_idx].addr =
+			MBUF_DATA_DMA_ADDR(*tx_pkts, vq->offset);
 		start_dp[desc_idx].len = (*tx_pkts)->pkt_len;
 		tx_pkts++;
 		desc_idx++;
diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.h
index 17c1ea1..455aaaf 100644
--- a/drivers/net/virtio/virtqueue.h
+++ b/drivers/net/virtio/virtqueue.h
@@ -66,6 +66,14 @@ struct rte_mbuf;
 
 #define VIRTQUEUE_MAX_NAME_SZ 32
 
+#ifdef RTE_VIRTIO_USER
+#define MBUF_DATA_DMA_ADDR(mb, offset) \
+	((uint64_t)((uintptr_t)(*(void **)((uintptr_t)mb + offset)) \
+			+ (mb)->data_off))
+#else /* RTE_VIRTIO_USER */
+#define MBUF_DATA_DMA_ADDR(mb, offset) rte_mbuf_data_dma_addr(mb)
+#endif /* RTE_VIRTIO_USER */
+
 #define VTNET_SQ_RQ_QUEUE_IDX 0
 #define VTNET_SQ_TQ_QUEUE_IDX 1
 #define VTNET_SQ_CQ_QUEUE_IDX 2
@@ -175,6 +183,7 @@ struct virtqueue {
 	unsigned int vq_ring_size;
 
 	phys_addr_t vq_ring_mem; /**< physical address of vring */
+				/**< use virtual address for virtio-user. */
 
 	/**
 	 * Head of the free chain in the descriptor table. If
@@ -184,6 +193,7 @@ struct virtqueue {
 	uint16_t  vq_desc_head_idx;
 	uint16_t  vq_desc_tail_idx;
 	uint16_t  vq_queue_index;   /**< PCI queue index */
+	uint16_t offset; /**< relative offset to obtain addr in mbuf */
 	uint16_t  *notify_addr;
 	int configured;
 	struct rte_mbuf **sw_ring;  /**< RX software ring. */
-- 
2.1.4

  parent reply	other threads:[~2016-06-13  6:39 UTC|newest]

Thread overview: 196+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-05 18:31 [dpdk-dev] [RFC 0/5] virtio support for container Jianfeng Tan
2015-11-05 18:31 ` [dpdk-dev] [RFC 1/5] virtio/container: add handler for ioport rd/wr Jianfeng Tan
2015-11-05 18:31 ` [dpdk-dev] [RFC 2/5] virtio/container: add a new virtual device named eth_cvio Jianfeng Tan
2015-11-05 18:31 ` [dpdk-dev] [RFC 3/5] virtio/container: unify desc->addr assignment Jianfeng Tan
2015-11-05 18:31 ` [dpdk-dev] [RFC 4/5] virtio/container: adjust memory initialization process Jianfeng Tan
2015-11-06 16:21   ` Ananyev, Konstantin
2015-11-08 11:18     ` Tan, Jianfeng
2015-11-09 13:32       ` Ananyev, Konstantin
2015-11-09 14:13         ` Tan, Jianfeng
2015-11-05 18:31 ` [dpdk-dev] [RFC 5/5] vhost/container: change mode of vhost listening socket Jianfeng Tan
2015-11-09  3:54   ` Yuanhan Liu
2015-11-09  5:15     ` Tan, Jianfeng
2015-11-09  5:40       ` Yuanhan Liu
2015-11-09  5:46         ` Tan, Jianfeng
2015-11-24  3:53 ` [dpdk-dev] [RFC 0/5] virtio support for container Zhuangyanying
2015-11-24  6:19   ` Tan, Jianfeng
2016-01-10 11:42 ` [dpdk-dev] [PATCH 0/4] " Jianfeng Tan
2016-01-10 11:42   ` [dpdk-dev] [PATCH 1/4] mem: add --single-file to create single mem-backed file Jianfeng Tan
2016-01-21  1:57     ` Xie, Huawei
2016-01-10 11:43   ` [dpdk-dev] [PATCH 2/4] mem: add API to obstain memory-backed file info Jianfeng Tan
2016-01-11 11:43     ` Pavel Fedin
2016-01-11 20:26     ` Rich Lane
2016-01-12  9:12       ` Tan, Jianfeng
2016-01-12 10:04         ` Pavel Fedin
2016-01-12 10:48           ` Tan, Jianfeng
2016-01-12 11:00             ` Pavel Fedin
2016-01-12 11:07               ` Sergio Gonzalez Monroy
2016-01-12 11:37                 ` Pavel Fedin
2016-01-12 12:12                   ` Sergio Gonzalez Monroy
2016-01-12 13:57                     ` Pavel Fedin
2016-01-12 14:13                       ` Sergio Gonzalez Monroy
2016-01-12 11:44                 ` Sergio Gonzalez Monroy
2016-01-12 11:22             ` Pavel Fedin
2016-01-12 11:33               ` Sergio Gonzalez Monroy
2016-01-12 12:01                 ` Pavel Fedin
2016-01-12 13:39                   ` Sergio Gonzalez Monroy
2016-01-10 11:43   ` [dpdk-dev] [PATCH 3/4] virtio/vdev: add ways to interact with vhost Jianfeng Tan
2016-01-11 10:42     ` Pavel Fedin
2016-01-11 14:02     ` Pavel Fedin
2016-01-21  2:18     ` Xie, Huawei
2016-01-10 11:43   ` [dpdk-dev] [PATCH 4/4] virtio/vdev: add a new vdev named eth_cvio Jianfeng Tan
2016-01-12  7:45     ` Pavel Fedin
2016-01-12  7:59       ` Yuanhan Liu
2016-01-12  8:39       ` Tan, Jianfeng
2016-01-12  9:15         ` Tan, Jianfeng
2016-01-27  3:10     ` Qiu, Michael
2016-01-11 14:21   ` [dpdk-dev] [PATCH 0/4] virtio support for container Pavel Fedin
2016-01-11 15:53     ` Tan, Jianfeng
2016-01-12  7:38       ` Pavel Fedin
2016-01-12  8:14         ` Rich Lane
2016-01-12  8:39           ` Pavel Fedin
2016-01-12  8:51             ` Tan, Jianfeng
2016-01-12 10:48               ` Pavel Fedin
2016-01-12 14:45                 ` Amit Tomer
2016-01-12 14:50                   ` Pavel Fedin
2016-01-12 14:58                     ` Amit Tomer
2016-01-12 14:53                   ` Tan, Jianfeng
2016-01-12 15:11                     ` Amit Tomer
2016-01-12 16:18                       ` Tan, Jianfeng
2016-01-13 15:00                         ` Amit Tomer
2016-01-13 18:41                           ` Tan, Jianfeng
2016-01-14  9:34                             ` Amit Tomer
2016-01-14 11:41                               ` Tan, Jianfeng
2016-01-14 12:03                                 ` Amit Tomer
2016-01-15  6:39                                   ` Tan, Jianfeng
2016-01-20 15:19                                     ` Amit Tomer
2016-01-22  6:04                                       ` Tan, Jianfeng
2016-01-12  5:36   ` Tetsuya Mukawa
2016-01-12  5:46     ` Tan, Jianfeng
2016-01-12  6:01       ` Tetsuya Mukawa
2016-01-12  6:14         ` Yuanhan Liu
2016-01-12  6:26           ` Tetsuya Mukawa
2016-01-12  6:29             ` Yuanhan Liu
2016-01-20  3:48     ` Xie, Huawei
2016-01-26  6:02   ` Qiu, Michael
2016-01-26  6:09     ` Tan, Jianfeng
2016-02-05 11:20 ` [dpdk-dev] [PATCH v2 0/5] " Jianfeng Tan
2016-02-05 11:20   ` [dpdk-dev] [PATCH v2 1/5] mem: add --single-file to create single mem-backed file Jianfeng Tan
2016-03-07 13:13     ` Yuanhan Liu
2016-03-08  1:55       ` Tan, Jianfeng
2016-03-08  2:44         ` Yuanhan Liu
2016-03-09 14:44           ` Tan, Jianfeng
2016-03-08  8:49       ` Panu Matilainen
2016-03-08  9:04         ` Yuanhan Liu
2016-03-08 10:30           ` Thomas Monjalon
2016-03-08 10:57             ` Burakov, Anatoly
2016-03-14 13:53             ` Traynor, Kevin
2016-03-14 14:45               ` Thomas Monjalon
2016-03-14 18:21                 ` Traynor, Kevin
2016-02-05 11:20   ` [dpdk-dev] [PATCH v2 2/5] mem: add API to obtain memory-backed file info Jianfeng Tan
2016-03-07 13:22     ` Yuanhan Liu
2016-03-08  2:31       ` Tan, Jianfeng
2016-03-08  2:53         ` Yuanhan Liu
2016-02-05 11:20   ` [dpdk-dev] [PATCH v2 3/5] virtio/vdev: add embeded device emulation Jianfeng Tan
2016-02-07 10:47     ` Michael S. Tsirkin
2016-02-08  6:59     ` Tetsuya Mukawa
2016-02-16  2:47       ` Tan, Jianfeng
2016-02-16  2:40     ` Tan, Jianfeng
2016-02-05 11:20   ` [dpdk-dev] [PATCH v2 4/5] virtio/vdev: add a new vdev named eth_cvio Jianfeng Tan
2016-02-05 11:20   ` [dpdk-dev] [PATCH v2 5/5] docs: add release note for virtio for container Jianfeng Tan
2016-03-23 19:17   ` [dpdk-dev] [PATCH v2 0/5] virtio support " Neil Horman
2016-03-24  3:10     ` Tan, Jianfeng
2016-03-24 13:45       ` Neil Horman
2016-03-25  1:25         ` Tan, Jianfeng
2016-03-25 11:06           ` Neil Horman
2016-04-13 16:14   ` Thomas Monjalon
2016-04-14  6:08     ` Tan, Jianfeng
2016-04-21  2:56 ` [dpdk-dev] [PATCH v3 0/2] " Jianfeng Tan
2016-04-21  2:56   ` [dpdk-dev] [PATCH v3 1/2] virtio/vdev: add embeded device emulation Jianfeng Tan
2016-04-21 22:01     ` Yuanhan Liu
2016-04-22 10:12       ` Tan, Jianfeng
2016-04-22 10:17         ` Thomas Monjalon
2016-04-22 17:27         ` Yuanhan Liu
2016-04-21  2:56   ` [dpdk-dev] [PATCH v3 2/2] virtio/vdev: add a new vdev named eth_cvio Jianfeng Tan
2016-04-21  8:51     ` David Marchand
2016-04-22  5:15       ` Tan, Jianfeng
2016-04-22  7:36         ` David Marchand
2016-04-22 10:25           ` Tan, Jianfeng
2016-04-21 10:05     ` Thomas Monjalon
2016-04-22  7:26       ` Tan, Jianfeng
2016-04-22  8:30         ` Thomas Monjalon
2016-04-21 22:14     ` Yuanhan Liu
2016-04-22 10:12       ` Tan, Jianfeng
2016-04-29  1:18 ` [dpdk-dev] [PATCH v4 0/8] virtio support for container Jianfeng Tan
2016-04-29  1:18   ` [dpdk-dev] [PATCH v4 1/8] virtio: hide phys addr check inside pci ops Jianfeng Tan
2016-05-11 23:05     ` Yuanhan Liu
2016-04-29  1:18   ` [dpdk-dev] [PATCH v4 2/8] virtio: abstract vring hdr desc init as a method Jianfeng Tan
2016-04-29  1:18   ` [dpdk-dev] [PATCH v4 3/8] virtio: enable use virtual address to fill desc Jianfeng Tan
2016-04-29  1:18   ` [dpdk-dev] [PATCH v4 4/8] virtio-user: add vhost adapter layer Jianfeng Tan
2016-04-29  1:18   ` [dpdk-dev] [PATCH v4 5/8] virtio-user: add device emulation layer APIs Jianfeng Tan
2016-05-12  1:05     ` Yuanhan Liu
2016-04-29  1:18   ` [dpdk-dev] [PATCH v4 6/8] virtio-user: add new virtual pci driver for virtio Jianfeng Tan
2016-05-12  2:12     ` Yuanhan Liu
2016-05-12  7:08       ` Tan, Jianfeng
2016-05-12 16:40         ` Yuanhan Liu
2016-05-13  1:54           ` Tan, Jianfeng
2016-05-13  4:45             ` Yuanhan Liu
2016-05-16  1:48               ` Tan, Jianfeng
2016-05-16  2:51                 ` Yuanhan Liu
2016-05-12 17:02         ` Michael S. Tsirkin
2016-05-13  2:00           ` Tan, Jianfeng
2016-04-29  1:18   ` [dpdk-dev] [PATCH v4 7/8] virtio-user: add a new virtual device named virtio-user Jianfeng Tan
2016-04-29  1:18   ` [dpdk-dev] [PATCH v4 8/8] doc: update doc for virtio-user Jianfeng Tan
2016-04-29  1:35   ` [dpdk-dev] [PATCH v4 0/8] virtio support for container Tan, Jianfeng
2016-05-30 10:55 ` [dpdk-dev] [PATCH v5 " Jianfeng Tan
2016-05-30 10:55   ` [dpdk-dev] [PATCH v5 1/8] virtio: hide phys addr check inside pci ops Jianfeng Tan
2016-05-30 10:55   ` [dpdk-dev] [PATCH v5 2/8] virtio: clean up virtio_dev_queue_setup Jianfeng Tan
2016-06-01  7:38     ` Yuanhan Liu
2016-06-01  7:44       ` Tan, Jianfeng
2016-06-01  7:58         ` Yuanhan Liu
2016-05-30 10:55   ` [dpdk-dev] [PATCH v5 3/8] virtio: enable use virtual address to fill desc Jianfeng Tan
2016-06-01  8:03     ` Yuanhan Liu
2016-05-30 10:55   ` [dpdk-dev] [PATCH v5 4/8] virtio-user: add vhost adapter layer Jianfeng Tan
2016-05-30 10:55   ` [dpdk-dev] [PATCH v5 5/8] virtio-user: add device emulation layer APIs Jianfeng Tan
2016-05-30 10:55   ` [dpdk-dev] [PATCH v5 6/8] virtio-user: add new virtual pci driver for virtio Jianfeng Tan
2016-06-01  8:21     ` Yuanhan Liu
2016-05-30 10:55   ` [dpdk-dev] [PATCH v5 7/8] virtio-user: add a new vdev named virtio-user Jianfeng Tan
2016-06-01  8:26     ` Yuanhan Liu
2016-06-02  1:27       ` Tan, Jianfeng
2016-05-30 10:55   ` [dpdk-dev] [PATCH v5 8/8] doc: update doc for virtio-user Jianfeng Tan
2016-06-01  8:30     ` Yuanhan Liu
2016-06-02  9:54 ` [dpdk-dev] [PATCH v6 0/7] virtio support for container Jianfeng Tan
2016-06-02  9:54   ` [dpdk-dev] [PATCH v6 1/7] virtio: hide phys addr check inside pci ops Jianfeng Tan
2016-06-02  9:54   ` [dpdk-dev] [PATCH v6 2/7] virtio: clean up virtio_dev_queue_setup Jianfeng Tan
2016-06-02  9:54   ` [dpdk-dev] [PATCH v6 3/7] virtio: enable use virtual address to fill desc Jianfeng Tan
2016-06-02  9:54   ` [dpdk-dev] [PATCH v6 4/7] virtio-user: add vhost adapter layer Jianfeng Tan
2016-06-02  9:54   ` [dpdk-dev] [PATCH v6 5/7] virtio-user: add device emulation layer APIs Jianfeng Tan
2016-06-02  9:54   ` [dpdk-dev] [PATCH v6 6/7] virtio-user: add new virtual pci driver for virtio Jianfeng Tan
2016-06-06  8:01     ` Yuanhan Liu
2016-06-06  8:31       ` Tan, Jianfeng
2016-06-02  9:54   ` [dpdk-dev] [PATCH v6 7/7] virtio-user: add a new vdev named virtio-user Jianfeng Tan
2016-06-12  0:35 ` [dpdk-dev] [PATCH v7 0/6] virtio support for container Jianfeng Tan
2016-06-12  0:35   ` [dpdk-dev] [PATCH v7 1/6] virtio: hide phys addr check inside pci ops Jianfeng Tan
2016-06-12  0:35   ` [dpdk-dev] [PATCH v7 2/6] virtio: enable use virtual address to fill desc Jianfeng Tan
2016-06-12  0:35   ` [dpdk-dev] [PATCH v7 3/6] virtio-user: add vhost adapter layer Jianfeng Tan
2016-06-12  0:35   ` [dpdk-dev] [PATCH v7 4/6] virtio-user: add device emulation layer APIs Jianfeng Tan
2016-06-12  0:35   ` [dpdk-dev] [PATCH v7 5/6] virtio-user: add new virtual pci driver for virtio Jianfeng Tan
2016-06-12  0:35   ` [dpdk-dev] [PATCH v7 6/6] virtio-user: add a new vdev named virtio-user Jianfeng Tan
2016-06-13  6:38 ` [dpdk-dev] [PATCH v8 0/6] virtio support for container Jianfeng Tan
2016-06-13  6:38   ` [dpdk-dev] [PATCH v8 1/6] virtio: hide phys addr check inside pci ops Jianfeng Tan
2016-06-13  6:38   ` Jianfeng Tan [this message]
2016-06-13  6:39   ` [dpdk-dev] [PATCH v8 3/6] virtio-user: add vhost user adapter layer Jianfeng Tan
2016-06-13  6:39   ` [dpdk-dev] [PATCH v8 4/6] virtio-user: add device emulation layer APIs Jianfeng Tan
2016-06-13  6:39   ` [dpdk-dev] [PATCH v8 5/6] virtio-user: add new virtual pci driver for virtio Jianfeng Tan
2016-06-13  6:39   ` [dpdk-dev] [PATCH v8 6/6] virtio-user: add a new vdev named virtio-user Jianfeng Tan
2016-06-14  8:34   ` [dpdk-dev] [PATCH v8 0/6] virtio support for container Yuanhan Liu
2016-06-15  9:03 ` [dpdk-dev] [PATCH v9 " Jianfeng Tan
2016-06-15  9:03   ` [dpdk-dev] [PATCH v9 1/6] virtio: hide phys addr check inside PCI ops Jianfeng Tan
2016-06-15  9:03   ` [dpdk-dev] [PATCH v9 2/6] virtio: enable use virtual address to fill desc Jianfeng Tan
2016-06-15  9:03   ` [dpdk-dev] [PATCH v9 3/6] virtio-user: add vhost user adapter layer Jianfeng Tan
2016-06-23  9:01     ` Ferruh Yigit
2016-06-24  1:18       ` Tan, Jianfeng
2016-06-15  9:03   ` [dpdk-dev] [PATCH v9 4/6] virtio-user: add device emulation layer APIs Jianfeng Tan
2016-06-15  9:03   ` [dpdk-dev] [PATCH v9 5/6] virtio-user: add new virtual PCI driver for virtio Jianfeng Tan
2016-06-15  9:03   ` [dpdk-dev] [PATCH v9 6/6] virtio-user: add a new vdev named virtio-user Jianfeng Tan
2016-06-15  9:54   ` [dpdk-dev] [PATCH v9 0/6] virtio support for container Yuanhan Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1465799943-138577-3-git-send-email-jianfeng.tan@intel.com \
    --to=jianfeng.tan@intel.com \
    --cc=ann.zhuangyanying@huawei.com \
    --cc=dev@dpdk.org \
    --cc=huawei.xie@intel.com \
    --cc=mst@redhat.com \
    --cc=mukawa@igel.co.jp \
    --cc=nakajima.yoshihiro@lab.ntt.co.jp \
    --cc=nhorman@tuxdriver.com \
    --cc=p.fedin@samsung.com \
    --cc=rich.lane@bigswitch.com \
    --cc=yuanhan.liu@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).