DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ye Xiaolong <xiaolong.ye@intel.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: dev@dpdk.org, Qi Zhang <qi.z.zhang@intel.com>,
	Karlsson Magnus <magnus.karlsson@intel.com>,
	Topel Bjorn <bjorn.topel@intel.com>
Subject: Re: [dpdk-dev] [PATCH v2 1/6] net/af_xdp: introduce AF XDP PMD driver
Date: Wed, 20 Mar 2019 10:32:52 +0800	[thread overview]
Message-ID: <20190320023252.GF16135@intel.com> (raw)
Message-ID: <20190320023252.OBf4MriAivXDrf50XKXWlXCoVLJryJlVAGRU00cuwpI@z> (raw)
In-Reply-To: <20190319091417.61554ec2@shemminger-XPS-13-9360>

Hi, Stephen

On 03/19, Stephen Hemminger wrote:
>Lots of little review comments. This is what I saw in 30 minutes.
>Expect more.

Thanks for taking time to review my patch. They are all valuable inputs.

>
>
>On Tue, 19 Mar 2019 15:12:51 +0800
>Xiaolong Ye <xiaolong.ye@intel.com> wrote:
>
>> +	nb_pkts = nb_pkts < ETH_AF_XDP_RX_BATCH_SIZE ?
>> +		nb_pkts : ETH_AF_XDP_RX_BATCH_SIZE;
>
>Maybe use RTE_MIN() ?

Will do.

>
>> +		mbuf = rte_pktmbuf_alloc(rxq->mb_pool);
>> +		if (mbuf) {
>> +			memcpy(rte_pktmbuf_mtod(mbuf, void*), pkt, len);
>
>Space necessary in "void*"
>Use rte_memcpy.

Will do.

>
>> +static void pull_umem_cq(struct xsk_umem_info *umem, int size)
>> +{
>> +	struct xsk_ring_cons *cq = &umem->cq;
>> +	int i, n;
>> +	uint32_t idx_cq;
>> +	uint64_t addr;
>> +
>> +	n = xsk_ring_cons__peek(cq, size, &idx_cq);
>> +	if (n > 0) {
>> +		for (i = 0; i < n; i++) {
>
>You don't need the if (n > 0) since if n <= 0 the for loop
>would happen 0 times.

Will remove the redundant "if (n > 0)"

>
>> +
>> +static void kick_tx(struct pkt_tx_queue *txq)
>> +{
>> +	struct xsk_umem_info *umem = txq->pair->umem;
>> +	int ret;
>> +
>> +	while (1) {
>> +		ret = sendto(xsk_socket__fd(txq->pair->xsk), NULL, 0,
>> +			     MSG_DONTWAIT, NULL, 0);
>> +
>> +		/* everything is ok */
>> +		if (ret >= 0)
>> +			break;
>
>I would prefer:
>	while ((send(xsk_socket__fd(fd, NULL, 0, MSG_DONTWAIT) < 0) {
>
>Because:
>	- use while() to make looping clearer rather than while(1)
>	- use send() rather than sendto() because you aren't sending with addr
>	- you don't care about return value (ie.ret)
>
>> +
>> +		/* some thing unexpected */
>> +		if (errno != EBUSY && errno != EAGAIN)
>> +			break;
>
>What about EINTR
>
>
>
>> +static void
>> +eth_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>> +{
>> +	struct pmd_internals *internals = dev->data->dev_private;
>> +
>> +	dev_info->if_index = internals->if_index;
>> +	dev_info->max_mac_addrs = 1;
>> +	dev_info->max_rx_pktlen = (uint32_t)ETH_FRAME_LEN;
>
>Cast here is unnecessary.

Got it.

>
>> +	dev_info->max_rx_queues = 1;
>> +	dev_info->max_tx_queues = 1;
>> +	dev_info->min_rx_bufsize = 0;
>
>dev_info is already zero, don't need to fill other values.

Got it.

>
>> +
>> +static void
>> +eth_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>> +{
>> +	struct pmd_internals *internals = dev->data->dev_private;
>> +
>> +	dev_info->if_index = internals->if_index;
>> +	dev_info->max_mac_addrs = 1;
>> +	dev_info->max_rx_pktlen = (uint32_t)ETH_FRAME_LEN;
>> +	dev_info->max_rx_queues = 1;
>> +	dev_info->max_tx_queues = 1;
>> +	dev_info->min_rx_bufsize = 0;
>> +
>> +	dev_info->default_rxportconf.nb_queues = 1;
>> +	dev_info->default_txportconf.nb_queues = 1;
>> +	dev_info->default_rxportconf.ring_size = ETH_AF_XDP_DFLT_NUM_DESCS;
>> +	dev_info->default_txportconf.ring_size = ETH_AF_XDP_DFLT_NUM_DESCS;
>> +}
>> +
>> +static int
>> +eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
>> +{
>> +	struct pmd_internals *internals = dev->data->dev_private;
>> +	struct xdp_statistics xdp_stats;
>> +	struct pkt_rx_queue *rxq;
>> +	socklen_t optlen;
>> +	int i;
>> +
>> +	optlen = sizeof(struct xdp_statistics);
>
>In theory each call to getsockopt() could change or reduce the value of
>optlen. Best to initialize in loop before each call.

Got it.

>
>> +	for (i = 0; i < dev->data->nb_rx_queues; i++) {
>> +		rxq = &internals->rx_queues[i];
>> +		stats->q_ipackets[i] = internals->rx_queues[i].rx_pkts;
>> +		stats->q_ibytes[i] = internals->rx_queues[i].rx_bytes;
>> +
>> +		stats->q_opackets[i] = internals->tx_queues[i].tx_pkts;
>> +		stats->q_obytes[i] = internals->tx_queues[i].tx_bytes;
>> +
>> +		stats->ipackets += stats->q_ipackets[i];
>> +		stats->ibytes += stats->q_ibytes[i];
>> +		stats->imissed += internals->rx_queues[i].rx_dropped;
>> +		getsockopt(xsk_socket__fd(rxq->xsk), SOL_XDP, XDP_STATISTICS,
>> +				&xdp_stats, &optlen);
>
>You need to check return value of getsockopt() otherwise coverity will complain.

Got it.

>
>> +static void
>> +eth_stats_reset(struct rte_eth_dev *dev)
>> +{
>> +	struct pmd_internals *internals = dev->data->dev_private;
>> +	int i;
>> +
>> +	for (i = 0; i < ETH_AF_XDP_MAX_QUEUE_PAIRS; i++) {
>> +		internals->rx_queues[i].rx_pkts = 0;
>> +		internals->rx_queues[i].rx_bytes = 0;
>> +		internals->rx_queues[i].rx_dropped = 0;
>> +
>> +		internals->tx_queues[i].tx_pkts = 0;
>> +		internals->tx_queues[i].err_pkts = 0;
>> +		internals->tx_queues[i].tx_bytes = 0;
>
>Put all the statistics together and use memset?

Sounds good, will do.

>
>> +static struct xsk_umem_info *xdp_umem_configure(void)
>> +{
>> +	struct xsk_umem_info *umem;
>> +	struct xsk_umem_config usr_config = {
>> +		.fill_size = ETH_AF_XDP_DFLT_NUM_DESCS,
>> +		.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;
>> +	char ring_name[0x100];
>
>0x100 is unconvential here. Instead use RTE_RING_NAMESIZE
>but variable is unnecessary, see below

Got it.

>
>> +	int ret;
>> +	uint64_t i;
>> +
>> +	umem = calloc(1, sizeof(*umem));
>
>Why not use rte_zmalloc_node to:
>   1. work with primary/secondary
>   2. guarantee memory on correct numa node?

Will do.

>
>> +	if (!umem) {
>> +		RTE_LOG(ERR, AF_XDP, "Failed to allocate umem info");
>> +		return NULL;
>> +	}
>> +
>> +	snprintf(ring_name, 0x100, "af_xdp_ring");
>
>If ring is always the same, why copy it. Just use string literal

Got it.

>
>> +/** parse name argument */
>> +static int
>> +parse_name_arg(const char *key __rte_unused,
>> +	       const char *value, void *extra_args)
>> +{
>> +	char *name = extra_args;
>> +
>> +	if (strlen(value) > IFNAMSIZ) {
>
>Why not:
>	if (strnlen(value, IFNAMSIZ) >= IFNAMSIZ) {

Will do.

>
>> +
>> +static int
>> +init_internals(struct rte_vdev_device *dev,
>> +	       const char *if_name,
>> +	       int queue_idx,
>> +	       struct rte_eth_dev **eth_dev)
>
>If you changed the function to return the new eth_dev (and return NULL on error)
>then you wouldn't have to pass eth_dev by reference.
>
>static struct rte_eth_dev *
>allocate_ethdev(struct rte_vdev_device *dev, const char *if_name, uint16_t queue_idx)

Sounds better, will do.

>{ 
>
>> +{
>> +	const char *name = rte_vdev_device_name(dev);
>> +	const unsigned int numa_node = dev->device.numa_node;
>> +	struct pmd_internals *internals = NULL;
>
>Useless initialization, first thing you do is allocate this.

Got it.

Thanks,
Xiaolong

>
>
>> +	int ret;
>> +	int i;
>> +
>> +	internals = rte_zmalloc_socket(name, sizeof(*internals), 0, numa_node);
>

  parent reply	other threads:[~2019-03-20  2:36 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 [this message]
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   ` [dpdk-dev] [PATCH v3 4/5] net/af_xdp: use mbuf mempool for buffer management Xiaolong Ye
2019-03-21  9:18     ` 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=20190320023252.GF16135@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 \
    --cc=stephen@networkplumber.org \
    /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).