From: Xiaolong Ye <xiaolong.ye@intel.com>
To: dev@dpdk.org
Cc: Qi Zhang <qi.z.zhang@intel.com>,
Karlsson Magnus <magnus.karlsson@intel.com>,
Topel Bjorn <bjorn.topel@intel.com>,
Xiaolong Ye <xiaolong.ye@intel.com>
Subject: [dpdk-dev] [PATCH v3 4/5] net/af_xdp: use mbuf mempool for buffer management
Date: Thu, 21 Mar 2019 17:18:44 +0800 [thread overview]
Message-ID: <20190321091845.78495-5-xiaolong.ye@intel.com> (raw)
In-Reply-To: <20190321091845.78495-1-xiaolong.ye@intel.com>
Now, af_xdp registered memory buffer is managed by rte_mempool. mbuf be
allocated from rte_mempool can be convert to xdp_desc's address and vice
versa.
Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
---
drivers/net/af_xdp/rte_eth_af_xdp.c | 123 +++++++++++++++++-----------
1 file changed, 77 insertions(+), 46 deletions(-)
diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c
index 5e671670a..76783c33d 100644
--- a/drivers/net/af_xdp/rte_eth_af_xdp.c
+++ b/drivers/net/af_xdp/rte_eth_af_xdp.c
@@ -43,7 +43,11 @@
#define ETH_AF_XDP_FRAME_SIZE XSK_UMEM__DEFAULT_FRAME_SIZE
#define ETH_AF_XDP_NUM_BUFFERS 4096
-#define ETH_AF_XDP_DATA_HEADROOM 0
+/* mempool hdrobj size (64 bytes) + sizeof(struct rte_mbuf) (128 bytes) */
+#define ETH_AF_XDP_MBUF_OVERHEAD 192
+/* data start from offset 320 (192 + 128) bytes */
+#define ETH_AF_XDP_DATA_HEADROOM \
+ (ETH_AF_XDP_MBUF_OVERHEAD + RTE_PKTMBUF_HEADROOM)
#define ETH_AF_XDP_DFLT_NUM_DESCS XSK_RING_CONS__DEFAULT_NUM_DESCS
#define ETH_AF_XDP_DFLT_QUEUE_IDX 0
@@ -56,7 +60,7 @@ struct xsk_umem_info {
struct xsk_ring_prod fq;
struct xsk_ring_cons cq;
struct xsk_umem *umem;
- struct rte_ring *buf_ring;
+ struct rte_mempool *mb_pool;
void *buffer;
};
@@ -118,12 +122,32 @@ static struct rte_eth_link pmd_link = {
.link_autoneg = ETH_LINK_AUTONEG
};
+static inline struct rte_mbuf *
+addr_to_mbuf(struct xsk_umem_info *umem, uint64_t addr)
+{
+ uint64_t offset = (addr / ETH_AF_XDP_FRAME_SIZE *
+ ETH_AF_XDP_FRAME_SIZE);
+ struct rte_mbuf *mbuf = (struct rte_mbuf *)((uint64_t)umem->buffer +
+ offset + ETH_AF_XDP_MBUF_OVERHEAD -
+ sizeof(struct rte_mbuf));
+ mbuf->data_off = addr - offset - ETH_AF_XDP_MBUF_OVERHEAD;
+ return mbuf;
+}
+
+static inline uint64_t
+mbuf_to_addr(struct xsk_umem_info *umem, struct rte_mbuf *mbuf)
+{
+ return (uint64_t)mbuf->buf_addr + mbuf->data_off -
+ (uint64_t)umem->buffer;
+}
+
static inline int
reserve_fill_queue(struct xsk_umem_info *umem, int reserve_size)
{
struct xsk_ring_prod *fq = &umem->fq;
+ struct rte_mbuf *mbuf;
uint32_t idx;
- void *addr = NULL;
+ uint64_t addr;
int i, ret;
ret = xsk_ring_prod__reserve(fq, reserve_size, &idx);
@@ -134,12 +158,17 @@ reserve_fill_queue(struct xsk_umem_info *umem, int reserve_size)
for (i = 0; i < reserve_size; i++) {
__u64 *fq_addr;
- rte_ring_dequeue(umem->buf_ring, &addr);
+ mbuf = rte_pktmbuf_alloc(umem->mb_pool);
+ if (mbuf == NULL) {
+ i--;
+ break;
+ }
+ addr = mbuf_to_addr(umem, mbuf);
fq_addr = xsk_ring_prod__fill_addr(fq, idx++);
- *fq_addr = (uint64_t)addr;
+ *fq_addr = addr;
}
- xsk_ring_prod__submit(fq, reserve_size);
+ xsk_ring_prod__submit(fq, i);
return 0;
}
@@ -189,7 +218,7 @@ eth_af_xdp_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
} else {
dropped++;
}
- rte_ring_enqueue(umem->buf_ring, (void *)addr);
+ rte_pktmbuf_free(addr_to_mbuf(umem, addr));
}
xsk_ring_cons__release(rx, rcvd);
@@ -213,7 +242,7 @@ static void pull_umem_cq(struct xsk_umem_info *umem, int size)
for (i = 0; i < n; i++) {
uint64_t addr;
addr = *xsk_ring_cons__comp_addr(cq, idx_cq++);
- rte_ring_enqueue(umem->buf_ring, (void *)addr);
+ rte_pktmbuf_free(addr_to_mbuf(umem, addr));
}
xsk_ring_cons__release(cq, n);
@@ -242,7 +271,7 @@ eth_af_xdp_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
struct pkt_tx_queue *txq = queue;
struct xsk_umem_info *umem = txq->pair->umem;
struct rte_mbuf *mbuf;
- void *addrs[ETH_AF_XDP_TX_BATCH_SIZE];
+ struct rte_mbuf *mbuf_to_tx;
unsigned long tx_bytes = 0;
int i, valid = 0;
uint32_t idx_tx;
@@ -251,11 +280,6 @@ eth_af_xdp_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
pull_umem_cq(umem, nb_pkts);
- nb_pkts = rte_ring_dequeue_bulk(umem->buf_ring, addrs,
- nb_pkts, NULL);
- if (nb_pkts == 0)
- return 0;
-
if (xsk_ring_prod__reserve(&txq->tx, nb_pkts, &idx_tx) != nb_pkts) {
kick_tx(txq);
return 0;
@@ -269,7 +293,12 @@ eth_af_xdp_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
desc = xsk_ring_prod__tx_desc(&txq->tx, idx_tx + i);
mbuf = bufs[i];
if (mbuf->pkt_len <= buf_len) {
- desc->addr = (uint64_t)addrs[valid];
+ mbuf_to_tx = rte_pktmbuf_alloc(umem->mb_pool);
+ if (mbuf_to_tx == NULL) {
+ rte_pktmbuf_free(mbuf);
+ continue;
+ }
+ desc->addr = mbuf_to_addr(umem, mbuf_to_tx);
desc->len = mbuf->pkt_len;
pkt = xsk_umem__get_data(umem->buffer,
desc->addr);
@@ -285,10 +314,6 @@ eth_af_xdp_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
kick_tx(txq);
- if (valid < nb_pkts)
- rte_ring_enqueue_bulk(umem->buf_ring, &addrs[valid],
- nb_pkts - valid, NULL);
-
txq->stats.err_pkts += nb_pkts - valid;
txq->stats.tx_pkts += valid;
txq->stats.tx_bytes += tx_bytes;
@@ -437,16 +462,29 @@ eth_link_update(struct rte_eth_dev *dev __rte_unused,
static void xdp_umem_destroy(struct xsk_umem_info *umem)
{
- free(umem->buffer);
- umem->buffer = NULL;
-
- rte_ring_free(umem->buf_ring);
- umem->buf_ring = NULL;
+ rte_mempool_free(umem->mb_pool);
+ umem->mb_pool = NULL;
free(umem);
umem = NULL;
}
+static inline uint64_t get_base_addr(struct rte_mempool *mp)
+{
+ struct rte_mempool_memhdr *memhdr;
+
+ memhdr = STAILQ_FIRST(&mp->mem_list);
+ return (uint64_t)(memhdr->addr);
+}
+
+static inline uint64_t get_len(struct rte_mempool *mp)
+{
+ struct rte_mempool_memhdr *memhdr;
+
+ memhdr = STAILQ_FIRST(&mp->mem_list);
+ return (uint64_t)(memhdr->len);
+}
+
static struct xsk_umem_info *xdp_umem_configure(void)
{
struct xsk_umem_info *umem;
@@ -455,9 +493,8 @@ static struct xsk_umem_info *xdp_umem_configure(void)
.comp_size = ETH_AF_XDP_DFLT_NUM_DESCS,
.frame_size = ETH_AF_XDP_FRAME_SIZE,
.frame_headroom = ETH_AF_XDP_DATA_HEADROOM };
- void *bufs = NULL;
+ void *base_addr = NULL;
int ret;
- uint64_t i;
umem = rte_zmalloc_socket("umem", sizeof(*umem), 0, rte_socket_id());
if (umem == NULL) {
@@ -465,27 +502,22 @@ static struct xsk_umem_info *xdp_umem_configure(void)
return NULL;
}
- umem->buf_ring = rte_ring_create("af_xdp_ring",
- ETH_AF_XDP_NUM_BUFFERS,
- SOCKET_ID_ANY,
- 0x0);
- if (umem->buf_ring == NULL) {
+ umem->mb_pool = rte_pktmbuf_pool_create_with_flags("af_xdp_mempool",
+ ETH_AF_XDP_NUM_BUFFERS,
+ 250, 0,
+ ETH_AF_XDP_FRAME_SIZE -
+ ETH_AF_XDP_MBUF_OVERHEAD,
+ MEMPOOL_F_NO_SPREAD | MEMPOOL_F_PAGE_ALIGN,
+ SOCKET_ID_ANY);
+
+ if (umem->mb_pool == NULL || umem->mb_pool->nb_mem_chunks != 1) {
RTE_LOG(ERR, AF_XDP,
- "Failed to create rte_ring\n");
+ "Failed to create rte_mempool\n");
goto err;
}
+ base_addr = (void *)get_base_addr(umem->mb_pool);
- for (i = 0; i < ETH_AF_XDP_NUM_BUFFERS; i++)
- rte_ring_enqueue(umem->buf_ring,
- (void *)(i * ETH_AF_XDP_FRAME_SIZE +
- ETH_AF_XDP_DATA_HEADROOM));
-
- if (posix_memalign(&bufs, getpagesize(),
- ETH_AF_XDP_NUM_BUFFERS * ETH_AF_XDP_FRAME_SIZE)) {
- RTE_LOG(ERR, AF_XDP, "Failed to allocate memory pool.\n");
- goto err;
- }
- ret = xsk_umem__create(&umem->umem, bufs,
+ ret = xsk_umem__create(&umem->umem, base_addr,
ETH_AF_XDP_NUM_BUFFERS * ETH_AF_XDP_FRAME_SIZE,
&umem->fq, &umem->cq,
&usr_config);
@@ -494,7 +526,7 @@ static struct xsk_umem_info *xdp_umem_configure(void)
RTE_LOG(ERR, AF_XDP, "Failed to create umem");
goto err;
}
- umem->buffer = bufs;
+ umem->buffer = base_addr;
return umem;
@@ -911,8 +943,7 @@ rte_pmd_af_xdp_remove(struct rte_vdev_device *dev)
internals = eth_dev->data->dev_private;
- rte_ring_free(internals->umem->buf_ring);
- rte_free(internals->umem->buffer);
+ rte_mempool_free(internals->umem->mb_pool);
rte_free(internals->umem);
rte_eth_dev_release_port(eth_dev);
--
2.17.1
next prev parent reply other threads:[~2019-03-21 9:22 UTC|newest]
Thread overview: 399+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-01 8:09 [dpdk-dev] [PATCH v1 0/6] Introduce AF_XDP PMD Xiaolong Ye
2019-03-01 8:09 ` [dpdk-dev] [PATCH v1 1/6] net/af_xdp: introduce AF_XDP PMD driver Xiaolong Ye
2019-03-01 15:38 ` Luca Boccassi
2019-03-02 8:14 ` Ye Xiaolong
2019-03-17 3:34 ` Ye Xiaolong
2019-03-17 3:34 ` Ye Xiaolong
2019-03-24 12:07 ` Luca Boccassi
2019-03-24 12:07 ` Luca Boccassi
2019-03-25 2:45 ` Ye Xiaolong
2019-03-25 2:45 ` Ye Xiaolong
2019-03-25 10:42 ` Luca Boccassi
2019-03-25 10:42 ` Luca Boccassi
2019-03-25 12:22 ` Ye Xiaolong
2019-03-25 12:22 ` Ye Xiaolong
2019-03-26 2:18 ` Ye Xiaolong
2019-03-26 2:18 ` Ye Xiaolong
2019-03-26 10:14 ` Luca Boccassi
2019-03-26 10:14 ` Luca Boccassi
2019-03-26 12:12 ` Ye Xiaolong
2019-03-26 12:12 ` Ye Xiaolong
2019-03-01 18:31 ` Stephen Hemminger
2019-03-02 8:08 ` Ye Xiaolong
2019-03-01 18:32 ` Stephen Hemminger
2019-03-02 8:07 ` Ye Xiaolong
2019-03-05 8:25 ` David Marchand
2019-03-07 3:19 ` Ye Xiaolong
2019-03-11 16:20 ` Ferruh Yigit
2019-03-12 15:54 ` Ye Xiaolong
2019-03-13 10:54 ` Ferruh Yigit
2019-03-13 11:12 ` Ye Xiaolong
2019-03-17 3:35 ` Ye Xiaolong
2019-03-17 3:35 ` Ye Xiaolong
2019-03-01 8:09 ` [dpdk-dev] [PATCH v1 2/6] lib/mbuf: enable parse flags when create mempool Xiaolong Ye
2019-03-05 8:30 ` David Marchand
2019-03-07 3:07 ` Ye Xiaolong
2019-03-01 8:09 ` [dpdk-dev] [PATCH v1 3/6] lib/mempool: allow page size aligned mempool Xiaolong Ye
2019-03-01 8:09 ` [dpdk-dev] [PATCH v1 4/6] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-01 8:09 ` [dpdk-dev] [PATCH v1 5/6] net/af_xdp: enable zero copy Xiaolong Ye
2019-03-01 8:09 ` [dpdk-dev] [PATCH v1 6/6] app/testpmd: add mempool flags parameter Xiaolong Ye
2019-03-01 18:34 ` Stephen Hemminger
2019-03-02 8:06 ` Ye Xiaolong
2019-03-11 16:46 ` Ferruh Yigit
2019-03-12 15:10 ` Ye Xiaolong
2019-03-11 16:43 ` [dpdk-dev] [PATCH v1 0/6] Introduce AF_XDP PMD Ferruh Yigit
2019-03-11 17:19 ` Thomas Monjalon
2019-03-12 1:51 ` Zhang, Qi Z
2019-03-12 7:55 ` Karlsson, Magnus
2019-03-19 7:12 ` [dpdk-dev] [PATCH v2 " Xiaolong Ye
2019-03-19 7:12 ` Xiaolong Ye
2019-03-19 7:12 ` [dpdk-dev] [PATCH v2 1/6] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-03-19 7:12 ` Xiaolong Ye
2019-03-19 9:07 ` Mattias Rönnblom
2019-03-19 9:07 ` Mattias Rönnblom
2019-03-19 9:49 ` Ye Xiaolong
2019-03-19 9:49 ` Ye Xiaolong
2019-03-19 16:14 ` Stephen Hemminger
2019-03-19 16:14 ` Stephen Hemminger
2019-03-20 2:32 ` Ye Xiaolong
2019-03-20 2:32 ` Ye Xiaolong
2019-03-19 16:16 ` Stephen Hemminger
2019-03-19 16:16 ` Stephen Hemminger
2019-03-19 16:33 ` Bruce Richardson
2019-03-19 16:33 ` Bruce Richardson
2019-03-20 2:07 ` Ye Xiaolong
2019-03-20 2:07 ` Ye Xiaolong
2019-03-20 2:05 ` Ye Xiaolong
2019-03-20 2:05 ` Ye Xiaolong
2019-03-20 9:23 ` David Marchand
2019-03-20 9:23 ` David Marchand
2019-03-20 15:20 ` Ye Xiaolong
2019-03-20 15:20 ` Ye Xiaolong
2019-03-19 7:12 ` [dpdk-dev] [PATCH v2 2/6] lib/mbuf: introduce helper to create mempool with flags Xiaolong Ye
2019-03-19 7:12 ` Xiaolong Ye
2019-03-19 7:12 ` [dpdk-dev] [PATCH v2 3/6] lib/mempool: allow page size aligned mempool Xiaolong Ye
2019-03-19 7:12 ` Xiaolong Ye
2019-03-19 7:12 ` [dpdk-dev] [PATCH v2 4/6] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-19 7:12 ` Xiaolong Ye
2019-03-19 7:12 ` [dpdk-dev] [PATCH v2 5/6] net/af_xdp: enable zero copy Xiaolong Ye
2019-03-19 7:12 ` Xiaolong Ye
2019-03-19 8:12 ` Mattias Rönnblom
2019-03-19 8:12 ` Mattias Rönnblom
2019-03-19 8:39 ` Ye Xiaolong
2019-03-19 8:39 ` Ye Xiaolong
2019-03-20 9:22 ` David Marchand
2019-03-20 9:22 ` David Marchand
2019-03-20 9:48 ` Zhang, Qi Z
2019-03-20 9:48 ` Zhang, Qi Z
2019-03-19 7:12 ` [dpdk-dev] [PATCH v2 6/6] app/testpmd: add mempool flags parameter Xiaolong Ye
2019-03-19 7:12 ` Xiaolong Ye
2019-03-19 23:36 ` Jerin Jacob Kollanukkaran
2019-03-19 23:36 ` Jerin Jacob Kollanukkaran
2019-03-20 2:08 ` Ye Xiaolong
2019-03-20 2:08 ` Ye Xiaolong
2019-03-20 9:23 ` David Marchand
2019-03-20 9:23 ` David Marchand
2019-03-20 15:22 ` Ye Xiaolong
2019-03-20 15:22 ` Ye Xiaolong
2019-03-21 9:18 ` [dpdk-dev] [PATCH v3 0/5] Introduce AF_XDP PMD Xiaolong Ye
2019-03-21 9:18 ` Xiaolong Ye
2019-03-21 9:18 ` [dpdk-dev] [PATCH v3 1/5] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-03-21 9:18 ` Xiaolong Ye
2019-03-21 15:24 ` Stephen Hemminger
2019-03-21 15:24 ` Stephen Hemminger
2019-03-22 2:05 ` Ye Xiaolong
2019-03-22 2:05 ` Ye Xiaolong
2019-03-21 15:25 ` Stephen Hemminger
2019-03-21 15:25 ` Stephen Hemminger
2019-03-22 2:05 ` Ye Xiaolong
2019-03-22 2:05 ` Ye Xiaolong
2019-03-21 15:27 ` Stephen Hemminger
2019-03-21 15:27 ` Stephen Hemminger
2019-03-22 2:04 ` Ye Xiaolong
2019-03-22 2:04 ` Ye Xiaolong
2019-03-21 15:28 ` Stephen Hemminger
2019-03-21 15:28 ` Stephen Hemminger
2019-03-22 2:15 ` Ye Xiaolong
2019-03-22 2:15 ` Ye Xiaolong
2019-03-22 15:38 ` Stephen Hemminger
2019-03-22 15:38 ` Stephen Hemminger
2019-03-22 23:20 ` Ye Xiaolong
2019-03-22 23:20 ` Ye Xiaolong
2019-03-21 15:30 ` Stephen Hemminger
2019-03-21 15:30 ` Stephen Hemminger
2019-03-22 2:01 ` Ye Xiaolong
2019-03-22 2:01 ` Ye Xiaolong
2019-03-22 15:37 ` Stephen Hemminger
2019-03-22 15:37 ` Stephen Hemminger
2019-03-22 23:19 ` Ye Xiaolong
2019-03-22 23:19 ` Ye Xiaolong
2019-03-21 15:31 ` Stephen Hemminger
2019-03-21 15:31 ` Stephen Hemminger
2019-03-22 1:55 ` Ye Xiaolong
2019-03-22 1:55 ` Ye Xiaolong
2019-03-21 15:32 ` Stephen Hemminger
2019-03-21 15:32 ` Stephen Hemminger
2019-03-22 1:54 ` Ye Xiaolong
2019-03-22 1:54 ` Ye Xiaolong
2019-03-21 15:36 ` Stephen Hemminger
2019-03-21 15:36 ` Stephen Hemminger
2019-03-22 1:49 ` Ye Xiaolong
2019-03-22 1:49 ` Ye Xiaolong
2019-03-22 9:32 ` Bruce Richardson
2019-03-22 9:32 ` Bruce Richardson
2019-03-21 9:18 ` [dpdk-dev] [PATCH v3 2/5] lib/mbuf: introduce helper to create mempool with flags Xiaolong Ye
2019-03-21 9:18 ` Xiaolong Ye
2019-03-21 9:18 ` [dpdk-dev] [PATCH v3 3/5] lib/mempool: allow page size aligned mempool Xiaolong Ye
2019-03-21 9:18 ` Xiaolong Ye
2019-03-21 14:00 ` Ananyev, Konstantin
2019-03-21 14:00 ` Ananyev, Konstantin
2019-03-21 14:23 ` Zhang, Qi Z
2019-03-21 14:23 ` Zhang, Qi Z
2019-03-21 9:18 ` Xiaolong Ye [this message]
2019-03-21 9:18 ` [dpdk-dev] [PATCH v3 4/5] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-21 9:18 ` [dpdk-dev] [PATCH v3 5/5] net/af_xdp: enable zero copy Xiaolong Ye
2019-03-21 9:18 ` Xiaolong Ye
2019-03-22 13:01 ` [dpdk-dev] [PATCH v4 0/5] Introduce AF_XDP PMD Xiaolong Ye
2019-03-22 13:01 ` Xiaolong Ye
2019-03-22 13:01 ` [dpdk-dev] [PATCH v4 1/5] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-03-22 13:01 ` Xiaolong Ye
2019-03-22 14:32 ` Maxime Coquelin
2019-03-22 14:32 ` Maxime Coquelin
2019-03-24 9:32 ` Ye Xiaolong
2019-03-24 9:32 ` Ye Xiaolong
2019-03-24 12:10 ` Luca Boccassi
2019-03-24 12:10 ` Luca Boccassi
2019-03-24 16:27 ` Thomas Monjalon
2019-03-24 16:27 ` Thomas Monjalon
2019-03-22 13:01 ` [dpdk-dev] [PATCH v4 2/5] lib/mbuf: introduce helper to create mempool with flags Xiaolong Ye
2019-03-22 13:01 ` Xiaolong Ye
2019-03-22 14:36 ` Maxime Coquelin
2019-03-22 14:36 ` Maxime Coquelin
2019-03-24 9:08 ` Ye Xiaolong
2019-03-24 9:08 ` Ye Xiaolong
2019-03-22 13:01 ` [dpdk-dev] [PATCH v4 3/5] lib/mempool: allow page size aligned mempool Xiaolong Ye
2019-03-22 13:01 ` Xiaolong Ye
2019-03-22 13:01 ` [dpdk-dev] [PATCH v4 4/5] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-22 13:01 ` Xiaolong Ye
2019-03-22 14:51 ` Maxime Coquelin
2019-03-22 14:51 ` Maxime Coquelin
2019-03-24 9:08 ` Ye Xiaolong
2019-03-24 9:08 ` Ye Xiaolong
2019-03-24 11:52 ` Ye Xiaolong
2019-03-24 11:52 ` Ye Xiaolong
2019-03-22 13:01 ` [dpdk-dev] [PATCH v4 5/5] net/af_xdp: enable zero copy Xiaolong Ye
2019-03-22 13:01 ` Xiaolong Ye
2019-03-25 6:03 ` [dpdk-dev] [PATCH v5 0/5] Introduce AF_XDP PMD Xiaolong Ye
2019-03-25 6:03 ` Xiaolong Ye
2019-03-25 6:03 ` [dpdk-dev] [PATCH v5 1/5] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-03-25 6:03 ` Xiaolong Ye
2019-03-25 15:58 ` Stephen Hemminger
2019-03-25 15:58 ` Stephen Hemminger
2019-03-26 2:13 ` Ye Xiaolong
2019-03-26 2:13 ` Ye Xiaolong
2019-03-25 6:03 ` [dpdk-dev] [PATCH v5 2/5] lib/mbuf: introduce helper to create mempool with flags Xiaolong Ye
2019-03-25 6:03 ` Xiaolong Ye
2019-03-25 6:03 ` [dpdk-dev] [PATCH v5 3/5] lib/mempool: allow page size aligned mempool Xiaolong Ye
2019-03-25 6:03 ` Xiaolong Ye
2019-03-25 9:04 ` Andrew Rybchenko
2019-03-25 9:04 ` Andrew Rybchenko
2019-03-26 3:27 ` Ye Xiaolong
2019-03-26 3:27 ` Ye Xiaolong
2019-03-25 6:03 ` [dpdk-dev] [PATCH v5 4/5] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-25 6:03 ` Xiaolong Ye
2019-03-25 6:04 ` [dpdk-dev] [PATCH v5 5/5] net/af_xdp: enable zero copy Xiaolong Ye
2019-03-25 6:04 ` Xiaolong Ye
2019-03-26 12:20 ` [dpdk-dev] [PATCH v6 0/5] Introduce AF_XDP PMD Xiaolong Ye
2019-03-26 12:20 ` Xiaolong Ye
2019-03-26 12:20 ` [dpdk-dev] [PATCH v6 1/5] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-03-26 12:20 ` Xiaolong Ye
2019-03-26 19:08 ` Stephen Hemminger
2019-03-26 19:08 ` Stephen Hemminger
2019-03-27 5:33 ` Ye Xiaolong
2019-03-27 5:33 ` Ye Xiaolong
2019-03-26 12:20 ` [dpdk-dev] [PATCH v6 2/5] lib/mbuf: introduce helper to create mempool with flags Xiaolong Ye
2019-03-26 12:20 ` Xiaolong Ye
2019-03-26 12:20 ` [dpdk-dev] [PATCH v6 3/5] lib/mempool: allow page size aligned mempool Xiaolong Ye
2019-03-26 12:20 ` Xiaolong Ye
2019-03-26 12:20 ` [dpdk-dev] [PATCH v6 4/5] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-26 12:20 ` Xiaolong Ye
2019-03-29 17:42 ` Olivier Matz
2019-03-29 17:42 ` Olivier Matz
2019-03-31 12:38 ` Ye Xiaolong
2019-03-31 12:38 ` Ye Xiaolong
2019-04-01 5:47 ` Zhang, Qi Z
2019-04-01 5:47 ` Zhang, Qi Z
2019-03-26 12:20 ` [dpdk-dev] [PATCH v6 5/5] net/af_xdp: enable zero copy Xiaolong Ye
2019-03-26 12:20 ` Xiaolong Ye
2019-03-27 9:00 ` [dpdk-dev] [PATCH v7 0/5] Introduce AF_XDP PMD Xiaolong Ye
2019-03-27 9:00 ` Xiaolong Ye
2019-03-27 9:00 ` [dpdk-dev] [PATCH v7 1/5] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-03-27 9:00 ` Xiaolong Ye
2019-03-28 17:51 ` Ferruh Yigit
2019-03-28 17:51 ` Ferruh Yigit
2019-03-28 18:52 ` Luca Boccassi
2019-03-28 18:52 ` Luca Boccassi
2019-04-02 19:55 ` Ferruh Yigit
2019-04-02 19:55 ` Ferruh Yigit
2019-03-29 2:05 ` Ye Xiaolong
2019-03-29 2:05 ` Ye Xiaolong
2019-03-29 8:10 ` Ferruh Yigit
2019-03-29 8:10 ` Ferruh Yigit
2019-03-27 9:00 ` [dpdk-dev] [PATCH v7 2/5] lib/mbuf: introduce helper to create mempool with flags Xiaolong Ye
2019-03-27 9:00 ` Xiaolong Ye
2019-03-28 19:30 ` Ferruh Yigit
2019-03-28 19:30 ` Ferruh Yigit
2019-03-27 9:00 ` [dpdk-dev] [PATCH v7 3/5] lib/mempool: allow page size aligned mempool Xiaolong Ye
2019-03-27 9:00 ` Xiaolong Ye
2019-03-28 19:34 ` Ferruh Yigit
2019-03-28 19:34 ` Ferruh Yigit
2019-03-29 10:37 ` Andrew Rybchenko
2019-03-29 10:37 ` Andrew Rybchenko
2019-03-29 17:42 ` Olivier Matz
2019-03-29 17:42 ` Olivier Matz
2019-03-27 9:00 ` [dpdk-dev] [PATCH v7 4/5] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-27 9:00 ` Xiaolong Ye
2019-03-27 9:00 ` [dpdk-dev] [PATCH v7 5/5] net/af_xdp: enable zero copy Xiaolong Ye
2019-03-27 9:00 ` Xiaolong Ye
2019-03-28 18:44 ` Ferruh Yigit
2019-03-28 18:44 ` Ferruh Yigit
2019-03-29 1:53 ` Ye Xiaolong
2019-03-29 1:53 ` Ye Xiaolong
2019-04-02 10:45 ` [dpdk-dev] [PATCH v8 0/1] AF_XDP PMD Xiaolong Ye
2019-04-02 10:45 ` Xiaolong Ye
2019-04-02 10:45 ` [dpdk-dev] [PATCH v8 1/1] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-04-02 10:45 ` Xiaolong Ye
2019-04-02 14:58 ` Stephen Hemminger
2019-04-02 14:58 ` Stephen Hemminger
2019-04-02 15:10 ` Ye Xiaolong
2019-04-02 15:10 ` Ye Xiaolong
2019-04-02 15:46 ` [dpdk-dev] [PATCH v9 0/1] Introduce AF_XDP PMD Xiaolong Ye
2019-04-02 15:46 ` Xiaolong Ye
2019-04-02 15:46 ` [dpdk-dev] [PATCH v9 1/1] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-04-02 15:46 ` Xiaolong Ye
2019-04-02 18:56 ` Stephen Hemminger
2019-04-02 18:56 ` Stephen Hemminger
2019-04-02 23:01 ` Ye Xiaolong
2019-04-02 23:01 ` Ye Xiaolong
2019-04-02 19:19 ` Luca Boccassi
2019-04-02 19:19 ` Luca Boccassi
2019-04-03 9:59 ` Ye Xiaolong
2019-04-03 9:59 ` Ye Xiaolong
2019-04-03 10:36 ` Luca Boccassi
2019-04-03 10:36 ` Luca Boccassi
2019-04-03 10:42 ` Luca Boccassi
2019-04-03 10:42 ` Luca Boccassi
2019-04-03 11:18 ` Ferruh Yigit
2019-04-03 11:18 ` Ferruh Yigit
2019-04-03 11:35 ` Luca Boccassi
2019-04-03 11:35 ` Luca Boccassi
2019-04-03 12:16 ` Luca Boccassi
2019-04-03 12:16 ` Luca Boccassi
2019-04-03 12:33 ` Ferruh Yigit
2019-04-03 12:33 ` Ferruh Yigit
2019-04-03 13:09 ` Ferruh Yigit
2019-04-03 13:09 ` Ferruh Yigit
2019-04-03 13:29 ` Luca Boccassi
2019-04-03 13:29 ` Luca Boccassi
2019-04-03 14:43 ` Ye Xiaolong
2019-04-03 14:43 ` Ye Xiaolong
2019-04-03 14:51 ` Luca Boccassi
2019-04-03 14:51 ` Luca Boccassi
2019-04-03 15:14 ` Ye Xiaolong
2019-04-03 15:14 ` Ye Xiaolong
2019-04-03 15:23 ` Bruce Richardson
2019-04-03 15:23 ` Bruce Richardson
2019-04-03 15:34 ` Ye Xiaolong
2019-04-03 15:34 ` Ye Xiaolong
2019-04-03 14:22 ` Ye Xiaolong
2019-04-03 14:22 ` Ye Xiaolong
2019-04-03 15:52 ` Ferruh Yigit
2019-04-03 15:52 ` Ferruh Yigit
2019-04-03 15:57 ` Ye Xiaolong
2019-04-03 15:57 ` Ye Xiaolong
2019-04-17 12:30 ` [dpdk-dev] [BUG] net/af_xdp: Current code can only create one af_xdp device Markus Theil
2019-04-17 12:30 ` Markus Theil
2019-04-18 1:05 ` Ye Xiaolong
2019-04-18 1:05 ` Ye Xiaolong
2019-04-23 16:23 ` Markus Theil
2019-04-23 16:23 ` Markus Theil
2019-04-24 6:35 ` Ye Xiaolong
2019-04-24 6:35 ` Ye Xiaolong
2019-04-24 9:21 ` Markus Theil
2019-04-24 9:21 ` Markus Theil
2019-04-24 14:47 ` Ye Xiaolong
2019-04-24 14:47 ` Ye Xiaolong
2019-04-24 20:33 ` Markus Theil
2019-04-24 20:33 ` Markus Theil
2019-04-25 5:43 ` Ye Xiaolong
2019-04-25 5:43 ` Ye Xiaolong
2019-04-18 15:20 ` [dpdk-dev] [PATCH v1 1/2] net/af_xdp: name the buf ring dynamically Xiaolong Ye
2019-04-18 15:20 ` Xiaolong Ye
2019-04-18 15:20 ` [dpdk-dev] [PATCH v1 2/2] net/af_xdp: name the umem memzone dynamically Xiaolong Ye
2019-04-18 15:20 ` Xiaolong Ye
2019-04-19 9:47 ` David Marchand
2019-04-19 9:47 ` David Marchand
2019-04-19 12:33 ` Ferruh Yigit
2019-04-19 12:33 ` Ferruh Yigit
2019-04-19 15:05 ` Ye Xiaolong
2019-04-19 15:05 ` Ye Xiaolong
2019-04-19 9:46 ` [dpdk-dev] [PATCH v1 1/2] net/af_xdp: name the buf ring dynamically David Marchand
2019-04-19 9:46 ` David Marchand
2019-04-19 12:47 ` [dpdk-dev] [PATCH v2] net/af_xdp: fix creating multiple instance Ferruh Yigit
2019-04-19 12:47 ` Ferruh Yigit
2019-04-19 12:51 ` Ferruh Yigit
2019-04-19 12:51 ` Ferruh Yigit
2019-04-02 19:43 ` [dpdk-dev] [PATCH v9 1/1] net/af_xdp: introduce AF XDP PMD driver Ferruh Yigit
2019-04-02 19:43 ` Ferruh Yigit
2019-04-03 13:22 ` Bruce Richardson
2019-04-03 13:22 ` Bruce Richardson
2019-04-03 13:34 ` Ferruh Yigit
2019-04-03 13:34 ` Ferruh Yigit
2019-04-03 16:59 ` [dpdk-dev] [PATCH v10 0/1] Introduce AF_XDP PMD Xiaolong Ye
2019-04-03 16:59 ` Xiaolong Ye
2019-04-03 16:59 ` [dpdk-dev] [PATCH v10 1/1] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-04-03 16:59 ` Xiaolong Ye
2019-04-03 17:32 ` Luca Boccassi
2019-04-03 17:32 ` Luca Boccassi
2019-04-03 17:44 ` Ferruh Yigit
2019-04-03 17:44 ` Ferruh Yigit
2019-04-03 18:52 ` Luca Boccassi
2019-04-03 18:52 ` Luca Boccassi
2019-04-04 5:36 ` Ye Xiaolong
2019-04-04 5:36 ` Ye Xiaolong
2019-04-04 5:55 ` Ye Xiaolong
2019-04-04 5:55 ` Ye Xiaolong
2019-04-04 7:01 ` Phil Yang (Arm Technology China)
2019-04-04 7:01 ` Phil Yang (Arm Technology China)
2019-04-04 8:39 ` Luca Boccassi
2019-04-04 8:39 ` Luca Boccassi
2019-04-04 8:40 ` Ye Xiaolong
2019-04-04 8:40 ` Ye Xiaolong
2019-04-04 5:29 ` Ye Xiaolong
2019-04-04 5:29 ` Ye Xiaolong
2019-04-04 8:51 ` [dpdk-dev] [PATCH v11 0/1] Introduce AF_XDP PMD Xiaolong Ye
2019-04-04 8:51 ` Xiaolong Ye
2019-04-04 8:51 ` [dpdk-dev] [PATCH v11 1/1] net/af_xdp: introduce AF XDP PMD driver Xiaolong Ye
2019-04-04 8:51 ` Xiaolong Ye
2019-04-04 16:20 ` Luca Boccassi
2019-04-04 16:20 ` Luca Boccassi
2019-04-04 16:41 ` Stephen Hemminger
2019-04-04 16:41 ` Stephen Hemminger
2019-04-04 17:05 ` Ferruh Yigit
2019-04-04 17:05 ` Ferruh Yigit
2019-04-04 23:39 ` Ferruh Yigit
2019-04-04 23:39 ` Ferruh Yigit
2019-04-05 15:05 ` Ye Xiaolong
2019-04-05 15:05 ` Ye Xiaolong
2019-04-05 15:17 ` Ferruh Yigit
2019-04-05 15:17 ` Ferruh Yigit
2019-04-05 15:22 ` Ye Xiaolong
2019-04-05 15:22 ` Ye Xiaolong
2019-04-05 15:23 ` Bruce Richardson
2019-04-05 15:23 ` Bruce Richardson
2019-04-05 15:31 ` Ferruh Yigit
2019-04-05 15:31 ` Ferruh Yigit
2019-04-05 15:35 ` Bruce Richardson
2019-04-05 15:35 ` Bruce Richardson
2019-04-04 16:13 ` [dpdk-dev] [PATCH v11 0/1] Introduce AF_XDP PMD Ferruh Yigit
2019-04-04 16:13 ` Ferruh Yigit
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=20190321091845.78495-5-xiaolong.ye@intel.com \
--to=xiaolong.ye@intel.com \
--cc=bjorn.topel@intel.com \
--cc=dev@dpdk.org \
--cc=magnus.karlsson@intel.com \
--cc=qi.z.zhang@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).