From: "Liu, Mingxia" <mingxia.liu@intel.com>
To: Ferruh Yigit <ferruh.yigit@amd.com>,
"Xing, Beilei" <beilei.xing@intel.com>,
"Zhang, Yuying" <yuying.zhang@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: RE: [PATCH v7 01/21] net/cpfl: support device initialization
Date: Tue, 28 Feb 2023 11:12:44 +0000 [thread overview]
Message-ID: <PH0PR11MB58774941658AB56ADF79E9CFECAC9@PH0PR11MB5877.namprd11.prod.outlook.com> (raw)
In-Reply-To: <215a5adc-c59e-bfef-be70-5ce5f1a28a47@amd.com>
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@amd.com>
> Sent: Tuesday, February 28, 2023 5:44 AM
> To: Liu, Mingxia <mingxia.liu@intel.com>; Xing, Beilei <beilei.xing@intel.com>;
> Zhang, Yuying <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
>
> 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.
>
[Liu, Mingxia] ok, got it! Thanks!
> > 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.
>
[Liu, Mingxia] ok, will update it, thanks!
> > 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
>
[Liu, Mingxia] ok, will update it, thanks!
> > 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.
>
[Liu, Mingxia] ok, will add it, thanks!
>
> > +
> > +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"?
>
[Liu, Mingxia] Yes, refer to ice and i40e .rst.
> > +
> > +- ``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?
>
[beilei] we’re using this ID to map physical port to vport as default receive and transmit interface.
> 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?
>
[beilei] sure, will add the description.
> <...>
>
> > 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.
>
[Liu, Mingxia] ok, thanks will update it.
> <...>
>
> > +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;
>
[Liu, Mingxia] Thanks, good idea, will update.
> <...>
>
> > +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.
>
[Liu, Mingxia] Thanks, good idea, will update.
> <...>
>
> > +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"
>
[beilei] We won’t support this case. Will add check in idpf_parse_devargs.
> <...>
>
> > +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()'?
>
[beilei] Yes, thanks for the catch, will fix it in next version.
> > + 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.
>
[beilei] OK, will update the log in the next version.
> > + ret = -EINVAL;
> > + goto bail;
> > + }
> > + }
>
> same here, both for 'cpfl_args->req_vport_nb' & 'cpfl_args->req_vports[]',
> they are not updated yet.
>
[beilei] Yes, thanks for the catch, will fix it in next version.
> <...>
>
> > +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.
>
[Liu, Mingxia] ok, got it, I'll update them, for your comments.
> <...>
>
> > +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.
>
[Liu, Mingxia] ok, thanks!
> <...>
>
> > +
> > +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.
>
[beilei] Yes, need to update the two fields.
> <...>
>
> > +
> > +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?
>
[Liu, Mingxia] It's related to runtime creating vport in the future, but now the version doesn't support runtime.
> <...>
>
> > +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][,..]\]"
>
[Liu, Mingxia] Good idea, thanks!
> <...>
>
> > +
> > +#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?
>
>
[Liu, Mingxia] yes, we'll try.
> > +#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.
>
[Liu, Mingxia] ok, thanks! Will delete it.
> <...>
>
> > @@ -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'?
>
[Liu, Mingxia] Good idea, I'll simplify the code.
> Btw, both 'PMD_DRV_LOG_RAW' seems adding double '\n', one as part of
> 'fmt', other in the rte_log().
next prev parent reply other threads:[~2023-02-28 11:13 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
2023-02-28 11:12 ` Liu, Mingxia [this message]
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=PH0PR11MB58774941658AB56ADF79E9CFECAC9@PH0PR11MB5877.namprd11.prod.outlook.com \
--to=mingxia.liu@intel.com \
--cc=beilei.xing@intel.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@amd.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).