DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@amd.com>
To: Mingxia Liu <mingxia.liu@intel.com>,
	beilei.xing@intel.com, yuying.zhang@intel.com
Cc: dev@dpdk.org, "Yigit, Ferruh" <ferruh.yigit@amd.com>
Subject: Re: [PATCH v7 01/21] net/cpfl: support device initialization
Date: Mon, 27 Feb 2023 21:43:33 +0000	[thread overview]
Message-ID: <215a5adc-c59e-bfef-be70-5ce5f1a28a47@amd.com> (raw)
In-Reply-To: <20230216003010.3439881-2-mingxia.liu@intel.com>

On 2/16/2023 12:29 AM, Mingxia Liu wrote:
> Support device init and add the following dev ops:
>  - dev_configure
>  - dev_close
>  - dev_infos_get
>  - link_update
>  - dev_supported_ptypes_get
> 
> Signed-off-by: Mingxia Liu <mingxia.liu@intel.com>
> ---
>  MAINTAINERS                            |   8 +
>  doc/guides/nics/cpfl.rst               |  66 +++

Need to add file to toctree (doc/guides/nics/index.rst) to make it visible.

>  doc/guides/nics/features/cpfl.ini      |  12 +
>  doc/guides/rel_notes/release_23_03.rst |   6 +
>  drivers/net/cpfl/cpfl_ethdev.c         | 768 +++++++++++++++++++++++++
>  drivers/net/cpfl/cpfl_ethdev.h         |  78 +++
>  drivers/net/cpfl/cpfl_logs.h           |  32 ++
>  drivers/net/cpfl/cpfl_rxtx.c           | 244 ++++++++
>  drivers/net/cpfl/cpfl_rxtx.h           |  25 +

cpfl_rxtx.[ch] not used at all in this patch,
'cpfl_tx_queue_setup()' is added in this patch and next patch (2/21)
looks a better place for it.

>  drivers/net/cpfl/meson.build           |  14 +
>  drivers/net/meson.build                |   1 +
>  11 files changed, 1254 insertions(+)
>  create mode 100644 doc/guides/nics/cpfl.rst
>  create mode 100644 doc/guides/nics/features/cpfl.ini
>  create mode 100644 drivers/net/cpfl/cpfl_ethdev.c
>  create mode 100644 drivers/net/cpfl/cpfl_ethdev.h
>  create mode 100644 drivers/net/cpfl/cpfl_logs.h
>  create mode 100644 drivers/net/cpfl/cpfl_rxtx.c
>  create mode 100644 drivers/net/cpfl/cpfl_rxtx.h
>  create mode 100644 drivers/net/cpfl/meson.build
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 9a0f416d2e..af80edaf6e 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -783,6 +783,14 @@ F: drivers/common/idpf/
>  F: doc/guides/nics/idpf.rst
>  F: doc/guides/nics/features/idpf.ini
>  
> +Intel cpfl
> +M: Yuying Zhang <yuying.zhang@intel.com>
> +M: Beilei Xing <beilei.xing@intel.com>
> +T: git://dpdk.org/next/dpdk-next-net-intel
> +F: drivers/net/cpfl/
> +F: doc/guides/nics/cpfl.rst
> +F: doc/guides/nics/features/cpfl.ini
> +

Documentation mentions driver is experimental, can you please highlight
this in the maintainers file too, as:
Intel cpfl - EXPERIMENTAL

>  Intel igc
>  M: Junfeng Guo <junfeng.guo@intel.com>
>  M: Simei Su <simei.su@intel.com>
> diff --git a/doc/guides/nics/cpfl.rst b/doc/guides/nics/cpfl.rst
> new file mode 100644
> index 0000000000..7c5aff0789
> --- /dev/null
> +++ b/doc/guides/nics/cpfl.rst
> @@ -0,0 +1,66 @@
> +.. SPDX-License-Identifier: BSD-3-Clause
> +   Copyright(c) 2022 Intel Corporation.
> +

s/2022/2023/

> +.. include:: <isonum.txt>
> +
> +CPFL Poll Mode Driver
> +=====================
> +
> +The [*EXPERIMENTAL*] cpfl PMD (**librte_net_cpfl**) provides poll mode driver support
> +for Intel\ |reg| Infrastructure Processing Unit (Intel\ |reg| IPU) E2100.
> +

Can you please provide a link for the mentioned device?

So, interested users can evaluate, learn more about the mentioned hardware.


> +
> +Linux Prerequisites
> +-------------------
> +
> +Follow the DPDK :doc:`../linux_gsg/index` to setup the basic DPDK environment.
> +
> +To get better performance on Intel platforms,
> +please follow the :doc:`../linux_gsg/nic_perf_intel_platform`.
> +
> +
> +Pre-Installation Configuration
> +------------------------------
> +
> +Runtime Config Options
> +~~~~~~~~~~~~~~~~~~~~~~

Is "Runtime Config Options", a sub section of "Pre-Installation
Configuration"?

> +
> +- ``vport`` (default ``0``)
> +
> +  The PMD supports creation of multiple vports for one PCI device,
> +  each vport corresponds to a single ethdev.
> +  The user can specify the vports with specific ID to be created, for example::
> +
> +    -a ca:00.0,vport=[0,2,3]
> +
> +  Then the PMD will create 3 vports (ethdevs) for device ``ca:00.0``.
> +

Why need specific IDs?

other option is just provide number of requested vports and they get
sequential ids, but since vport ids are got from user instead there must
be some significance of them, can you please briefly document why ids
matter.

> +  If the parameter is not provided, the vport 0 will be created by default.
> +
> +- ``rx_single`` (default ``0``)
> +
> +  There are two queue modes supported by Intel\ |reg| IPU Ethernet E2100 Series,
> +  single queue mode and split queue mode for Rx queue.

Can you please describe in the documentation what 'split queue' and
'single queue' are and what is the difference between them?

<...>

> index 07914170a7..b0b23d1a44 100644
> --- a/doc/guides/rel_notes/release_23_03.rst
> +++ b/doc/guides/rel_notes/release_23_03.rst
> @@ -88,6 +88,12 @@ New Features
>    * Added timesync API support.
>    * Added packet pacing(launch time offloading) support.
>  
> +* **Added Intel cpfl driver.**
> +
> +  Added the new ``cpfl`` net driver
> +  for Intel\ |reg| Infrastructure Processing Unit (Intel\ |reg| IPU) E2100.
> +  See the :doc:`../nics/cpfl` NIC guide for more details on this new driver.
> +

"New Features" section is grouped, an that grouping is documented in the
section comment.

Can you please move the update to the proper location in the section.

<...>

> +static int
> +cpfl_dev_link_update(struct rte_eth_dev *dev,
> +		     __rte_unused int wait_to_complete)
> +{
> +	struct idpf_vport *vport = dev->data->dev_private;
> +	struct rte_eth_link new_link;
> +
> +	memset(&new_link, 0, sizeof(new_link));
> +
> +	switch (vport->link_speed) {
> +	case RTE_ETH_SPEED_NUM_10M:
> +		new_link.link_speed = RTE_ETH_SPEED_NUM_10M;
> +		break;
> +	case RTE_ETH_SPEED_NUM_100M:
> +		new_link.link_speed = RTE_ETH_SPEED_NUM_100M;
> +		break;
> +	case RTE_ETH_SPEED_NUM_1G:
> +		new_link.link_speed = RTE_ETH_SPEED_NUM_1G;
> +		break;
> +	case RTE_ETH_SPEED_NUM_10G:
> +		new_link.link_speed = RTE_ETH_SPEED_NUM_10G;
> +		break;
> +	case RTE_ETH_SPEED_NUM_20G:
> +		new_link.link_speed = RTE_ETH_SPEED_NUM_20G;
> +		break;
> +	case RTE_ETH_SPEED_NUM_25G:
> +		new_link.link_speed = RTE_ETH_SPEED_NUM_25G;
> +		break;
> +	case RTE_ETH_SPEED_NUM_40G:
> +		new_link.link_speed = RTE_ETH_SPEED_NUM_40G;
> +		break;
> +	case RTE_ETH_SPEED_NUM_50G:
> +		new_link.link_speed = RTE_ETH_SPEED_NUM_50G;
> +		break;
> +	case RTE_ETH_SPEED_NUM_100G:
> +		new_link.link_speed = RTE_ETH_SPEED_NUM_100G;
> +		break;
> +	case RTE_ETH_SPEED_NUM_200G:
> +		new_link.link_speed = RTE_ETH_SPEED_NUM_200G;
> +		break;

What about:
```
switch (vport->link_speed) {
case RTE_ETH_SPEED_NUM_10M:
case RTE_ETH_SPEED_NUM_100M:
...
case RTE_ETH_SPEED_NUM_200G:
	new_link.link_speed = vport->link_speed;
	break;
default:
	new_link.link_speed = RTE_ETH_SPEED_NUM_UNKNOWN;
```

OR

```
for (i = 0; i < RTE_DIM(supported_speeds); i++) {
	if (vport->link_speed == supported_speeds[i]) {
		new_link.link_speed = vport->link_speed;
		break;
	}
}

if (i == RTE_DIM(supported_speeds))
	new_link.link_speed = RTE_ETH_SPEED_NUM_UNKNOWN;
```

> +	default:
> +		new_link.link_speed = RTE_ETH_SPEED_NUM_NONE;

I think this should be :

if (link_up)
	new_link.link_speed = RTE_ETH_SPEED_NUM_UNKNOWN;
else
	new_link.link_speed = RTE_ETH_SPEED_NUM_NONE;

<...>

> +static int
> +insert_value(struct cpfl_devargs *devargs, uint16_t id)
> +{
> +	uint16_t i;
> +
> +	/* ignore duplicate */
> +	for (i = 0; i < devargs->req_vport_nb; i++) {
> +		if (devargs->req_vports[i] == id)
> +			return 0;
> +	}
> +
> +	if (devargs->req_vport_nb >= RTE_DIM(devargs->req_vports)) {
> +		PMD_INIT_LOG(ERR, "Total vport number can't be > %d",
> +			     CPFL_MAX_VPORT_NUM);

Check is using 'RTE_DIM(devargs->req_vports)' and log is using
'CPFL_MAX_VPORT_NUM', they are same value but better to stick to one of
them.

<...>

> +static int
> +parse_vport(const char *key, const char *value, void *args)
> +{
> +	struct cpfl_devargs *devargs = args;
> +	const char *pos = value;
> +
> +	devargs->req_vport_nb = 0;
> +

if "vport" can be provided multiple times, above assignment is wrong, like:
"vport=1,vport=3-5"

<...>

> +static int
> +cpfl_parse_devargs(struct rte_pci_device *pci_dev, struct cpfl_adapter_ext *adapter,
> +		   struct cpfl_devargs *cpfl_args)
> +{
> +	struct rte_devargs *devargs = pci_dev->device.devargs;
> +	struct rte_kvargs *kvlist;
> +	int i, ret;
> +
> +	cpfl_args->req_vport_nb = 0;
> +
> +	if (devargs == NULL)
> +		return 0;
> +
> +	kvlist = rte_kvargs_parse(devargs->args, cpfl_valid_args);
> +	if (kvlist == NULL) {
> +		PMD_INIT_LOG(ERR, "invalid kvargs key");
> +		return -EINVAL;
> +	}
> +
> +	/* check parsed devargs */
> +	if (adapter->cur_vport_nb + cpfl_args->req_vport_nb >
> +	    CPFL_MAX_VPORT_NUM) {

At this stage 'cpfl_args->req_vport_nb' is 0 since CPFL_VPORT is not
parsed yet, is the intention to do this check after 'rte_kvargs_processs()'?

> +		PMD_INIT_LOG(ERR, "Total vport number can't be > %d",
> +			     CPFL_MAX_VPORT_NUM);
> +		ret = -EINVAL;
> +		goto bail;
> +	}
> +
> +	for (i = 0; i < cpfl_args->req_vport_nb; i++) {> +		if (adapter->cur_vports & RTE_BIT32(cpfl_args->req_vports[i])) {
> +			PMD_INIT_LOG(ERR, "Vport %d has been created",
> +				     cpfl_args->req_vports[i]);

This is just argument parsing, nothing created yet, I suggest updating
log accordingly.

> +			ret = -EINVAL;
> +			goto bail;
> +		}
> +	}

same here, both for 'cpfl_args->req_vport_nb' &
'cpfl_args->req_vports[]', they are not updated yet.

<...>

> +static void
> +cpfl_handle_virtchnl_msg(struct cpfl_adapter_ext *adapter_ex)
> +{
> +	struct idpf_adapter *adapter = &adapter_ex->base;

Everywhere else, 'struct cpfl_adapter_ext' type variable name is 'adapter',
here it is 'adapter_ex' and 'struct idpf_adapter' type is 'adapter'.

As far as I understand 'struct cpfl_adapter_ext' is something like
"extended adapter" and extended version of 'struct idpf_adapter', so in
the context of this driver what do you think to refer:
'struct cpfl_adapter_ext' as 'adapter'
'struct idpf_adapter'     as 'base' (or 'adapter_base'), consistently.

<...>

> +static const struct eth_dev_ops cpfl_eth_dev_ops = {
> +	.dev_configure			= cpfl_dev_configure,
> +	.dev_close			= cpfl_dev_close,
> +	.dev_infos_get			= cpfl_dev_info_get,
> +	.link_update			= cpfl_dev_link_update,
> +	.dev_supported_ptypes_get	= cpfl_dev_supported_ptypes_get,
> +};

Can you please move the block just after 'cpfl_dev_close()', to group
dev_ops related code together.

<...>

> +
> +static int
> +cpfl_dev_vport_init(struct rte_eth_dev *dev, void *init_params)
> +{
> +	struct idpf_vport *vport = dev->data->dev_private;
> +	struct cpfl_vport_param *param = init_params;
> +	struct cpfl_adapter_ext *adapter = param->adapter;
> +	/* for sending create vport virtchnl msg prepare */
> +	struct virtchnl2_create_vport create_vport_info;
> +	int ret = 0;
> +
> +	dev->dev_ops = &cpfl_eth_dev_ops;
> +	vport->adapter = &adapter->base;
> +	vport->sw_idx = param->idx;
> +	vport->devarg_id = param->devarg_id;
> +	vport->dev = dev;
> +
> +	memset(&create_vport_info, 0, sizeof(create_vport_info));
> +	ret = idpf_vport_info_init(vport, &create_vport_info);
> +	if (ret != 0) {
> +		PMD_INIT_LOG(ERR, "Failed to init vport req_info.");
> +		goto err;
> +	}
> +
> +	ret = idpf_vport_init(vport, &create_vport_info, dev->data);
> +	if (ret != 0) {
> +		PMD_INIT_LOG(ERR, "Failed to init vports.");
> +		goto err;
> +	}
> +
> +	adapter->vports[param->idx] = vport;
> +	adapter->cur_vports |= RTE_BIT32(param->devarg_id);
> +	adapter->cur_vport_nb++;
> +
> +	dev->data->mac_addrs = rte_zmalloc(NULL, RTE_ETHER_ADDR_LEN, 0);
> +	if (dev->data->mac_addrs == NULL) {
> +		PMD_INIT_LOG(ERR, "Cannot allocate mac_addr memory.");
> +		ret = -ENOMEM;
> +		goto err_mac_addrs;
> +	}
> +
> +	rte_ether_addr_copy((struct rte_ether_addr *)vport->default_mac_addr,
> +			    &dev->data->mac_addrs[0]);
> +
> +	return 0;
> +
> +err_mac_addrs:
> +	adapter->vports[param->idx] = NULL;  /* reset */

shouln't update 'cur_vports' & 'cur_vport_nb' too in this error path.

<...>

> +
> +err:
> +	if (first_probe) {
> +		rte_spinlock_lock(&cpfl_adapter_lock);
> +		TAILQ_REMOVE(&cpfl_adapter_list, adapter, next);
> +		rte_spinlock_unlock(&cpfl_adapter_lock);
> +		cpfl_adapter_ext_deinit(adapter);
> +		rte_free(adapter);
> +	}


Why 'first_probe' is needed, it looks like it is for the case when
probe() called multiple time for same pci_dev, can this happen?

<...>

> +RTE_PMD_REGISTER_PCI(net_cpfl, rte_cpfl_pmd);
> +RTE_PMD_REGISTER_PCI_TABLE(net_cpfl, pci_id_cpfl_map);
> +RTE_PMD_REGISTER_KMOD_DEP(net_cpfl, "* igb_uio | vfio-pci");
> +RTE_PMD_REGISTER_PARAM_STRING(net_cpfl,
> +			      CPFL_TX_SINGLE_Q "=<0|1> "
> +			      CPFL_RX_SINGLE_Q "=<0|1> "
> +			      CPFL_VPORT "=[vport_set0,[vport_set1],...]");

What about:
"\[vport0_begin[-vport0_end][,vport1_begin[-vport1_end][,..]\]"

<...>

> +
> +#define CPFL_MAX_VPORT_NUM	8
> +
It looks like there is a dynamic max vport number
(adapter->base.caps.max_vports), and there is above hardcoded define,
for requested (devargs) vports.

The dynamic max is received via 'cpfl_adapter_ext_init()' before parsing
dev_arg, so can it be possible to remove this hardcoded max completely?


> +#define CPFL_INVALID_VPORT_IDX	0xffff
> +
> +#define CPFL_MIN_BUF_SIZE	1024
> +#define CPFL_MAX_FRAME_SIZE	9728
> +#define CPFL_DEFAULT_MTU	RTE_ETHER_MTU
> +
> +#define CPFL_NUM_MACADDR_MAX	64

The macro is not used, can you please add them when they are used.

<...>

> @@ -0,0 +1,32 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2023 Intel Corporation
> + */
> +
> +#ifndef _CPFL_LOGS_H_
> +#define _CPFL_LOGS_H_
> +
> +#include <rte_log.h>
> +
> +extern int cpfl_logtype_init;
> +extern int cpfl_logtype_driver;
> +
> +#define PMD_INIT_LOG(level, ...) \
> +	rte_log(RTE_LOG_ ## level, \
> +		cpfl_logtype_init, \
> +		RTE_FMT("%s(): " \
> +			RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
> +			__func__, \
> +			RTE_FMT_TAIL(__VA_ARGS__,)))
> +
> +#define PMD_DRV_LOG_RAW(level, ...) \
> +	rte_log(RTE_LOG_ ## level, \
> +		cpfl_logtype_driver, \
> +		RTE_FMT("%s(): " \
> +			RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
> +			__func__, \
> +			RTE_FMT_TAIL(__VA_ARGS__,)))
> +
> +#define PMD_DRV_LOG(level, fmt, args...) \
> +	PMD_DRV_LOG_RAW(level, fmt "\n", ## args)
> +

Is 'PMD_DRV_LOG_RAW' required at all, why not define 'PMD_DRV_LOG'
directly as it is done with 'PMD_INIT_LOG'?

Btw, both 'PMD_DRV_LOG_RAW' seems adding double '\n', one as part of
'fmt', other in the rte_log().


  parent reply	other threads:[~2023-02-27 21:43 UTC|newest]

Thread overview: 263+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-23  1:55 [PATCH 00/21] add support for cpfl PMD in DPDK Mingxia Liu
2022-12-23  1:55 ` [PATCH 01/21] net/cpfl: support device initialization Mingxia Liu
2022-12-23  1:55 ` [PATCH 02/21] net/cpfl: add Tx queue setup Mingxia Liu
2022-12-23  1:55 ` [PATCH 03/21] net/cpfl: add Rx " Mingxia Liu
2022-12-23  1:55 ` [PATCH 04/21] net/cpfl: support device start and stop Mingxia Liu
2022-12-23  1:55 ` [PATCH 05/21] net/cpfl: support queue start Mingxia Liu
2022-12-23  1:55 ` [PATCH 06/21] net/cpfl: support queue stop Mingxia Liu
2022-12-23  1:55 ` [PATCH 07/21] net/cpfl: support queue release Mingxia Liu
2022-12-23  1:55 ` [PATCH 08/21] net/cpfl: support MTU configuration Mingxia Liu
2022-12-23  1:55 ` [PATCH 09/21] net/cpfl: support basic Rx data path Mingxia Liu
2022-12-23  1:55 ` [PATCH 10/21] net/cpfl: support basic Tx " Mingxia Liu
2022-12-23  1:55 ` [PATCH 11/21] net/cpfl: support write back based on ITR expire Mingxia Liu
2022-12-23  1:55 ` [PATCH 12/21] net/cpfl: support RSS Mingxia Liu
2022-12-23  1:55 ` [PATCH 13/21] net/cpfl: support Rx offloading Mingxia Liu
2022-12-23  1:55 ` [PATCH 14/21] net/cpfl: support Tx offloading Mingxia Liu
2022-12-23  1:55 ` [PATCH 15/21] net/cpfl: add AVX512 data path for single queue model Mingxia Liu
2022-12-23  1:55 ` [PATCH 16/21] net/cpfl: support timestamp offload Mingxia Liu
2022-12-23  1:55 ` [PATCH 17/21] net/cpfl: add AVX512 data path for split queue model Mingxia Liu
2022-12-23  1:55 ` [PATCH 18/21] net/cpfl: add hw statistics Mingxia Liu
2022-12-23  1:55 ` [PATCH 19/21] net/cpfl: add RSS set/get ops Mingxia Liu
2022-12-23  1:55 ` [PATCH 20/21] net/cpfl: support single q scatter RX datapath Mingxia Liu
2022-12-23  1:55 ` [PATCH 21/21] net/cpfl: add xstats ops Mingxia Liu
2023-01-13  8:19 ` [PATCH v2 00/21] add support for cpfl PMD in DPDK Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 01/21] net/cpfl: support device initialization Mingxia Liu
2023-01-13 13:32     ` Zhang, Helin
2023-01-13  8:19   ` [PATCH v2 02/21] net/cpfl: add Tx queue setup Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 03/21] net/cpfl: add Rx " Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 04/21] net/cpfl: support device start and stop Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 05/21] net/cpfl: support queue start Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 06/21] net/cpfl: support queue stop Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 07/21] net/cpfl: support queue release Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 08/21] net/cpfl: support MTU configuration Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 09/21] net/cpfl: support basic Rx data path Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 10/21] net/cpfl: support basic Tx " Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 11/21] net/cpfl: support write back based on ITR expire Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 12/21] net/cpfl: support RSS Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 13/21] net/cpfl: support Rx offloading Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 14/21] net/cpfl: support Tx offloading Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 15/21] net/cpfl: add AVX512 data path for single queue model Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 16/21] net/cpfl: support timestamp offload Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 17/21] net/cpfl: add AVX512 data path for split queue model Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 18/21] net/cpfl: add hw statistics Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 19/21] net/cpfl: add RSS set/get ops Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 20/21] net/cpfl: support single q scatter RX datapath Mingxia Liu
2023-01-13  8:19   ` [PATCH v2 21/21] net/cpfl: add xstats ops Mingxia Liu
2023-01-13 12:49   ` [PATCH v2 00/21] add support for cpfl PMD in DPDK Zhang, Helin
2023-01-18  7:31   ` [PATCH v3 " Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 01/21] net/cpfl: support device initialization Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 02/21] net/cpfl: add Tx queue setup Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 03/21] net/cpfl: add Rx " Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 04/21] net/cpfl: support device start and stop Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 05/21] net/cpfl: support queue start Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 06/21] net/cpfl: support queue stop Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 07/21] net/cpfl: support queue release Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 08/21] net/cpfl: support MTU configuration Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 09/21] net/cpfl: support basic Rx data path Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 10/21] net/cpfl: support basic Tx " Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 11/21] net/cpfl: support write back based on ITR expire Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 12/21] net/cpfl: support RSS Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 13/21] net/cpfl: support Rx offloading Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 14/21] net/cpfl: support Tx offloading Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 16/21] net/cpfl: support timestamp offload Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 18/21] net/cpfl: add hw statistics Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 19/21] net/cpfl: add RSS set/get ops Mingxia Liu
2023-01-18  7:31     ` [PATCH v3 21/21] net/cpfl: add xstats ops Mingxia Liu
2023-01-18  7:33   ` [PATCH v3 15/21] net/cpfl: add AVX512 data path for single queue model Mingxia Liu
2023-01-18  7:33     ` [PATCH v3 17/21] net/cpfl: add AVX512 data path for split " Mingxia Liu
2023-01-18  7:33     ` [PATCH v3 20/21] net/cpfl: support single q scatter RX datapath Mingxia Liu
2023-01-18  7:57   ` [PATCH v4 00/21] add support for cpfl PMD in DPDK Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 01/21] net/cpfl: support device initialization Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 02/21] net/cpfl: add Tx queue setup Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 03/21] net/cpfl: add Rx " Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 04/21] net/cpfl: support device start and stop Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 05/21] net/cpfl: support queue start Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 06/21] net/cpfl: support queue stop Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 07/21] net/cpfl: support queue release Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 08/21] net/cpfl: support MTU configuration Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 09/21] net/cpfl: support basic Rx data path Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 10/21] net/cpfl: support basic Tx " Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 11/21] net/cpfl: support write back based on ITR expire Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 12/21] net/cpfl: support RSS Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 13/21] net/cpfl: support Rx offloading Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 14/21] net/cpfl: support Tx offloading Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 15/21] net/cpfl: add AVX512 data path for single queue model Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 16/21] net/cpfl: support timestamp offload Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 17/21] net/cpfl: add AVX512 data path for split queue model Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 18/21] net/cpfl: add hw statistics Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 19/21] net/cpfl: add RSS set/get ops Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 20/21] net/cpfl: support single q scatter RX datapath Mingxia Liu
2023-01-18  7:57     ` [PATCH v4 21/21] net/cpfl: add xstats ops Mingxia Liu
2023-02-09  8:45     ` [PATCH v5 00/21] add support for cpfl PMD in DPDK Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 01/21] net/cpfl: support device initialization Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 02/21] net/cpfl: add Tx queue setup Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 03/21] net/cpfl: add Rx " Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 04/21] net/cpfl: support device start and stop Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 05/21] net/cpfl: support queue start Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 06/21] net/cpfl: support queue stop Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 07/21] net/cpfl: support queue release Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 08/21] net/cpfl: support MTU configuration Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 09/21] net/cpfl: support basic Rx data path Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 10/21] net/cpfl: support basic Tx " Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 11/21] net/cpfl: support write back based on ITR expire Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 12/21] net/cpfl: support RSS Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 13/21] net/cpfl: support Rx offloading Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 14/21] net/cpfl: support Tx offloading Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 15/21] net/cpfl: add AVX512 data path for single queue model Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 16/21] net/cpfl: support timestamp offload Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 17/21] net/cpfl: add AVX512 data path for split queue model Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 18/21] net/cpfl: add HW statistics Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 19/21] net/cpfl: add RSS set/get ops Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 20/21] net/cpfl: support scalar scatter Rx datapath for single queue model Mingxia Liu
2023-02-09  8:45       ` [PATCH v5 21/21] net/cpfl: add xstats ops Mingxia Liu
2023-02-09 16:47       ` [PATCH v5 00/21] add support for cpfl PMD in DPDK Stephen Hemminger
2023-02-13  1:37         ` Liu, Mingxia
2023-02-13  2:19       ` [PATCH v6 " Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 01/21] net/cpfl: support device initialization Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 02/21] net/cpfl: add Tx queue setup Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 03/21] net/cpfl: add Rx " Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 04/21] net/cpfl: support device start and stop Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 05/21] net/cpfl: support queue start Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 06/21] net/cpfl: support queue stop Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 07/21] net/cpfl: support queue release Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 08/21] net/cpfl: support MTU configuration Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 09/21] net/cpfl: support basic Rx data path Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 10/21] net/cpfl: support basic Tx " Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 11/21] net/cpfl: support write back based on ITR expire Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 12/21] net/cpfl: support RSS Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 13/21] net/cpfl: support Rx offloading Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 14/21] net/cpfl: support Tx offloading Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 15/21] net/cpfl: add AVX512 data path for single queue model Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 16/21] net/cpfl: support timestamp offload Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 17/21] net/cpfl: add AVX512 data path for split queue model Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 18/21] net/cpfl: add HW statistics Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 19/21] net/cpfl: add RSS set/get ops Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 20/21] net/cpfl: support scalar scatter Rx datapath for single queue model Mingxia Liu
2023-02-13  2:19         ` [PATCH v6 21/21] net/cpfl: add xstats ops Mingxia Liu
2023-02-15 14:04         ` [PATCH v6 00/21] add support for cpfl PMD in DPDK Ferruh Yigit
2023-02-16  1:16           ` Liu, Mingxia
2023-02-16  0:29         ` [PATCH v7 " Mingxia Liu
2023-02-16  0:29           ` [PATCH v7 01/21] net/cpfl: support device initialization Mingxia Liu
2023-02-27 13:46             ` Ferruh Yigit
2023-02-27 15:45               ` Thomas Monjalon
2023-02-27 23:38                 ` Ferruh Yigit
2023-02-28  2:06                 ` Liu, Mingxia
2023-02-28  9:53                   ` Ferruh Yigit
2023-02-27 21:43             ` Ferruh Yigit [this message]
2023-02-28 11:12               ` Liu, Mingxia
2023-02-28 11:34                 ` Ferruh Yigit
2023-02-16  0:29           ` [PATCH v7 02/21] net/cpfl: add Tx queue setup Mingxia Liu
2023-02-27 21:44             ` Ferruh Yigit
2023-02-28  2:40               ` Liu, Mingxia
2023-02-16  0:29           ` [PATCH v7 03/21] net/cpfl: add Rx " Mingxia Liu
2023-02-27 21:46             ` Ferruh Yigit
2023-02-28  3:03               ` Liu, Mingxia
2023-02-28 10:02                 ` Ferruh Yigit
2023-02-16  0:29           ` [PATCH v7 04/21] net/cpfl: support device start and stop Mingxia Liu
2023-02-16  0:29           ` [PATCH v7 05/21] net/cpfl: support queue start Mingxia Liu
2023-02-27 21:47             ` Ferruh Yigit
2023-02-28  3:14               ` Liu, Mingxia
2023-02-28  3:28                 ` Liu, Mingxia
2023-02-16  0:29           ` [PATCH v7 06/21] net/cpfl: support queue stop Mingxia Liu
2023-02-27 21:48             ` Ferruh Yigit
2023-02-16  0:29           ` [PATCH v7 07/21] net/cpfl: support queue release Mingxia Liu
2023-02-16  0:29           ` [PATCH v7 08/21] net/cpfl: support MTU configuration Mingxia Liu
2023-02-16  0:29           ` [PATCH v7 09/21] net/cpfl: support basic Rx data path Mingxia Liu
2023-02-16  0:29           ` [PATCH v7 10/21] net/cpfl: support basic Tx " Mingxia Liu
2023-02-16  0:30           ` [PATCH v7 11/21] net/cpfl: support write back based on ITR expire Mingxia Liu
2023-02-27 21:49             ` Ferruh Yigit
2023-02-28 11:31               ` Liu, Mingxia
2023-02-16  0:30           ` [PATCH v7 12/21] net/cpfl: support RSS Mingxia Liu
2023-02-27 21:50             ` Ferruh Yigit
2023-02-28 11:28               ` Liu, Mingxia
2023-02-28 11:34                 ` Ferruh Yigit
2023-02-16  0:30           ` [PATCH v7 13/21] net/cpfl: support Rx offloading Mingxia Liu
2023-02-27 21:50             ` Ferruh Yigit
2023-02-28  5:48               ` Liu, Mingxia
2023-02-16  0:30           ` [PATCH v7 14/21] net/cpfl: support Tx offloading Mingxia Liu
2023-02-16  0:30           ` [PATCH v7 15/21] net/cpfl: add AVX512 data path for single queue model Mingxia Liu
2023-02-27 21:51             ` Ferruh Yigit
2023-02-28  3:19               ` Liu, Mingxia
2023-02-16  0:30           ` [PATCH v7 16/21] net/cpfl: support timestamp offload Mingxia Liu
2023-02-16  0:30           ` [PATCH v7 17/21] net/cpfl: add AVX512 data path for split queue model Mingxia Liu
2023-02-27 21:52             ` Ferruh Yigit
2023-02-16  0:30           ` [PATCH v7 18/21] net/cpfl: add HW statistics Mingxia Liu
2023-02-27 21:52             ` Ferruh Yigit
2023-02-28  6:46               ` Liu, Mingxia
2023-02-28 10:01                 ` Ferruh Yigit
2023-02-28 11:47                   ` Liu, Mingxia
2023-02-28 12:04                     ` Ferruh Yigit
2023-02-28 12:12                       ` Bruce Richardson
2023-02-28 12:24                         ` Ferruh Yigit
2023-02-28 12:33                           ` Ferruh Yigit
2023-02-28 13:29                             ` Zhang, Qi Z
2023-02-28 13:34                               ` Ferruh Yigit
2023-02-28 14:04                                 ` Zhang, Qi Z
2023-02-28 14:24                                 ` Bruce Richardson
2023-02-28 16:14                                   ` Ferruh Yigit
2023-02-16  0:30           ` [PATCH v7 19/21] net/cpfl: add RSS set/get ops Mingxia Liu
2023-02-16  0:30           ` [PATCH v7 20/21] net/cpfl: support scalar scatter Rx datapath for single queue model Mingxia Liu
2023-02-16  0:30           ` [PATCH v7 21/21] net/cpfl: add xstats ops Mingxia Liu
2023-02-27 21:52             ` Ferruh Yigit
2023-02-28  5:28               ` Liu, Mingxia
2023-02-28  5:54               ` Liu, Mingxia
2023-02-27 21:43           ` [PATCH v7 00/21] add support for cpfl PMD in DPDK Ferruh Yigit
2023-02-28  1:44             ` Zhang, Qi Z
2023-03-02 10:35           ` [PATCH v8 " Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 01/21] net/cpfl: support device initialization Mingxia Liu
2023-03-02  9:31               ` Ferruh Yigit
2023-03-02 11:24                 ` Liu, Mingxia
2023-03-02 11:51                   ` Ferruh Yigit
2023-03-02 12:08                     ` Xing, Beilei
2023-03-02 13:11                     ` Liu, Mingxia
2023-03-02 12:08                 ` Xing, Beilei
2023-03-02 10:35             ` [PATCH v8 02/21] net/cpfl: add Tx queue setup Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 03/21] net/cpfl: add Rx " Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 04/21] net/cpfl: support device start and stop Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 05/21] net/cpfl: support queue start Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 06/21] net/cpfl: support queue stop Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 07/21] net/cpfl: support queue release Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 08/21] net/cpfl: support MTU configuration Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 09/21] net/cpfl: support basic Rx data path Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 10/21] net/cpfl: support basic Tx " Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 11/21] net/cpfl: support write back based on ITR expire Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 12/21] net/cpfl: support RSS Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 13/21] net/cpfl: support Rx offloading Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 14/21] net/cpfl: support Tx offloading Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 15/21] net/cpfl: add AVX512 data path for single queue model Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 16/21] net/cpfl: support timestamp offload Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 17/21] net/cpfl: add AVX512 data path for split queue model Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 18/21] net/cpfl: add HW statistics Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 19/21] net/cpfl: add RSS set/get ops Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 20/21] net/cpfl: support scalar scatter Rx datapath for single queue model Mingxia Liu
2023-03-02 10:35             ` [PATCH v8 21/21] net/cpfl: add xstats ops Mingxia Liu
2023-03-02  9:30               ` Ferruh Yigit
2023-03-02 11:19                 ` Liu, Mingxia
2023-03-02 21:20             ` [PATCH v9 00/21] add support for cpfl PMD in DPDK Mingxia Liu
2023-03-02 15:06               ` Ferruh Yigit
2023-03-02 21:20               ` [PATCH v9 01/21] net/cpfl: support device initialization Mingxia Liu
2023-03-07 14:11                 ` Ferruh Yigit
2023-03-07 15:03                   ` Ferruh Yigit
2023-03-08 17:03                     ` Ferruh Yigit
2023-03-09  0:59                       ` Liu, Mingxia
2023-03-09  1:42                     ` Liu, Mingxia
2023-03-02 21:20               ` [PATCH v9 02/21] net/cpfl: add Tx queue setup Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 03/21] net/cpfl: add Rx " Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 04/21] net/cpfl: support device start and stop Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 05/21] net/cpfl: support queue start Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 06/21] net/cpfl: support queue stop Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 07/21] net/cpfl: support queue release Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 08/21] net/cpfl: support MTU configuration Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 09/21] net/cpfl: support basic Rx data path Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 10/21] net/cpfl: support basic Tx " Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 11/21] net/cpfl: support write back based on ITR expire Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 12/21] net/cpfl: support RSS Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 13/21] net/cpfl: support Rx offloading Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 14/21] net/cpfl: support Tx offloading Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 15/21] net/cpfl: add AVX512 data path for single queue model Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 16/21] net/cpfl: support timestamp offload Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 17/21] net/cpfl: add AVX512 data path for split queue model Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 18/21] net/cpfl: add HW statistics Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 19/21] net/cpfl: add RSS set/get ops Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 20/21] net/cpfl: support scalar scatter Rx datapath for single queue model Mingxia Liu
2023-03-02 21:20               ` [PATCH v9 21/21] net/cpfl: add xstats ops Mingxia 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=215a5adc-c59e-bfef-be70-5ce5f1a28a47@amd.com \
    --to=ferruh.yigit@amd.com \
    --cc=beilei.xing@intel.com \
    --cc=dev@dpdk.org \
    --cc=mingxia.liu@intel.com \
    --cc=yuying.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).