From: Bruce Richardson <bruce.richardson@intel.com>
To: Panu Matilainen <pmatilai@redhat.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
"ann.zhuangyanying@huawei.com" <ann.zhuangyanying@huawei.com>
Subject: Re: [dpdk-dev] [RFC PATCH v2] vhost: Add VHOST PMD
Date: Wed, 21 Oct 2015 11:22:38 +0100 [thread overview]
Message-ID: <20151021102238.GB16140@bricha3-MOBL3> (raw)
In-Reply-To: <56272FC8.2020305@redhat.com>
On Wed, Oct 21, 2015 at 09:25:12AM +0300, Panu Matilainen wrote:
> On 10/21/2015 07:35 AM, Tetsuya Mukawa wrote:
> >On 2015/10/19 22:27, Richardson, Bruce wrote:
> >>>-----Original Message-----
> >>>From: Panu Matilainen [mailto:pmatilai@redhat.com]
> >>>Sent: Monday, October 19, 2015 2:26 PM
> >>>To: Tetsuya Mukawa <mukawa@igel.co.jp>; Richardson, Bruce
> >>><bruce.richardson@intel.com>; Loftus, Ciara <ciara.loftus@intel.com>
> >>>Cc: dev@dpdk.org; ann.zhuangyanying@huawei.com
> >>>Subject: Re: [dpdk-dev] [RFC PATCH v2] vhost: Add VHOST PMD
> >>>
> >>>On 10/19/2015 01:50 PM, Tetsuya Mukawa wrote:
> >>>>On 2015/10/19 18:45, Bruce Richardson wrote:
> >>>>>On Mon, Oct 19, 2015 at 10:32:50AM +0100, Loftus, Ciara wrote:
> >>>>>>>On 2015/10/16 21:52, Bruce Richardson wrote:
> >>>>>>>>On Mon, Aug 31, 2015 at 12:55:26PM +0900, Tetsuya Mukawa wrote:
> >>>>>>>>>The patch introduces a new PMD. This PMD is implemented as thin
> >>>>>>>wrapper
> >>>>>>>>>of librte_vhost. It means librte_vhost is also needed to compile
> >>>the PMD.
> >>>>>>>>>The PMD can have 'iface' parameter like below to specify a path
> >>>>>>>>>to
> >>>>>>>connect
> >>>>>>>>>to a virtio-net device.
> >>>>>>>>>
> >>>>>>>>>$ ./testpmd -c f -n 4 --vdev 'eth_vhost0,iface=/tmp/sock0' -- -i
> >>>>>>>>>
> >>>>>>>>>To connect above testpmd, here is qemu command example.
> >>>>>>>>>
> >>>>>>>>>$ qemu-system-x86_64 \
> >>>>>>>>> <snip>
> >>>>>>>>> -chardev socket,id=chr0,path=/tmp/sock0 \
> >>>>>>>>> -netdev vhost-user,id=net0,chardev=chr0,vhostforce \
> >>>>>>>>> -device virtio-net-pci,netdev=net0
> >>>>>>>>>
> >>>>>>>>>Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
> >>>>>>>>With this PMD in place, is there any need to keep the existing
> >>>>>>>>vhost library around as a separate entity? Can the existing
> >>>>>>>>library be
> >>>>>>>subsumed/converted into
> >>>>>>>>a standard PMD?
> >>>>>>>>
> >>>>>>>>/Bruce
> >>>>>>>Hi Bruce,
> >>>>>>>
> >>>>>>>I concern about whether the PMD has all features of librte_vhost,
> >>>>>>>because librte_vhost provides more features and freedom than ethdev
> >>>>>>>API provides.
> >>>>>>>In some cases, user needs to choose limited implementation without
> >>>>>>>librte_vhost.
> >>>>>>>I am going to eliminate such cases while implementing the PMD.
> >>>>>>>But I don't have strong belief that we can remove librte_vhost now.
> >>>>>>>
> >>>>>>>So how about keeping current separation in next DPDK?
> >>>>>>>I guess people will try to replace librte_vhost to vhost PMD,
> >>>>>>>because apparently using ethdev APIs will be useful in many cases.
> >>>>>>>And we will get feedbacks like "vhost PMD needs to support like this
> >>>usage".
> >>>>>>>(Or we will not have feedbacks, but it's also OK.) Then, we will be
> >>>>>>>able to merge librte_vhost and vhost PMD.
> >>>>>>I agree with the above. One the concerns I had when reviewing the
> >>>patch was that the PMD removes some freedom that is available with the
> >>>library. Eg. Ability to implement the new_device and destroy_device
> >>>callbacks. If using the PMD you are constrained to the implementations of
> >>>these in the PMD driver, but if using librte_vhost, you can implement your
> >>>own with whatever functionality you like - a good example of this can be
> >>>seen in the vhost sample app.
> >>>>>>On the other hand, the PMD is useful in that it removes a lot of
> >>>complexity for the user and may work for some more general use cases. So I
> >>>would be in favour of having both options available too.
> >>>>>>Ciara
> >>>>>>
> >>>>>Thanks.
> >>>>>However, just because the libraries are merged does not mean that you
> >>>>>need be limited by PMD functionality. Many PMDs provide additional
> >>>>>library-specific functions over and above their PMD capabilities. The
> >>>>>bonded PMD is a good example here, as it has a whole set of extra
> >>>>>functions to create and manipulate bonded devices - things that are
> >>>>>obviously not part of the general ethdev API. Other vPMDs similarly
> >>>include functions to allow them to be created on the fly too.
> >>>>>regards,
> >>>>>/Bruce
> >>>>Hi Bruce,
> >>>>
> >>>>I appreciate for showing a good example. I haven't noticed the PMD.
> >>>>I will check the bonding PMD, and try to remove librte_vhost without
> >>>>losing freedom and features of the library.
> >>>Hi,
> >>>
> >>>Just a gentle reminder - if you consider removing (even if by just
> >>>replacing/renaming) an entire library, it needs to happen the ABI
> >>>deprecation process.
> >>>
> >>>It seems obvious enough. But for all the ABI policing here, somehow we all
> >>>failed to notice the two compatibility breaking rename-elephants in the
> >>>room during 2.1 development:
> >>>- libintel_dpdk was renamed to libdpdk
> >>>- librte_pmd_virtio_uio was renamed to librte_pmd_virtio
> >>>
> >>>Of course these cases are easy to work around with symlinks, and are
> >>>unrelated to the matter at hand. Just wanting to make sure such things
> >>>dont happen again.
> >>>
> >>> - Panu -
> >>Still doesn't hurt to remind us, Panu! Thanks. :-)
> >
> >Hi,
> >
> >Thanks for reminder. I've checked the DPDK documentation.
> >I will submit deprecation notice to follow DPDK deprecation process.
> >(Probably we will be able to remove vhost library in DPDK-2.3 or later.)
> >
> >BTW, I will merge vhost library and PMD like below.
> >Step1. Move vhost library under vhost PMD.
> >Step2. Rename current APIs.
> >Step3. Add a function to get a pointer of "struct virtio_net device" by
> >a portno.
> >
> >Last steps allows us to be able to convert a portno to the pointer of
> >corresponding vrtio_net device.
> >And we can still use features and freedom vhost library APIs provided.
>
> Just wondering, is that *really* worth the price of breaking every single
> vhost library user out there?
>
> I mean, this is not about removing some bitrotten function or two which
> nobody cares about anymore but removing (by renaming) one of the more widely
> (AFAICS) used libraries and its entire API.
>
> If current APIs are kept then compatibility is largely a matter of planting
> a strategic symlink or two, but it might make the API look inconsistent.
>
> But just wondering about the benefit of this merge thing, compared to just
> adding a vhost pmd and leaving the library be. The ABI process is not there
> to make life miserable for DPDK developers, its there to help make DPDK
> nicer for *other* developers. And the first and the foremost rule is simply:
> dont break backwards compatibility. Not unless there's a damn good reason to
> doing so, and I fail to see that reason here.
>
> - Panu -
>
Good question, and I'll accept that maybe it's not worth doing. I'm not that
much of an expert on the internals and APIs of vhost library.
However, the merge I was looking for was more from a code locality point
of view, to have all the vhost code in one directory (under drivers/net),
than spread across multiple ones. What API's need to be deprecated
or not as part of that work, is a separate question, and so in theory we could
create a combined vhost library that does not deprecate anything (though to
avoid a build-up of technical debt, we'll probably want to deprecate some
functions).
I'll leave it up to the vhost experts do decide what's best, but for me, any
library that handles transmission and reception of packets outside of a DPDK
app should be a PMD library using ethdev rx/tx burst routines, and located
under drivers/net. (KNI is another obvious target for such a move and conversion).
Regards,
/Bruce
next prev parent reply other threads:[~2015-10-21 10:22 UTC|newest]
Thread overview: 199+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-31 3:55 [dpdk-dev] [RFC PATCH v2] " Tetsuya Mukawa
2015-08-31 3:55 ` [dpdk-dev] [RFC PATCH v2] vhost: " Tetsuya Mukawa
2015-09-23 17:47 ` Loftus, Ciara
2015-10-16 8:40 ` Tetsuya Mukawa
2015-10-20 14:13 ` Loftus, Ciara
2015-10-21 4:30 ` Tetsuya Mukawa
2015-10-21 10:09 ` Bruce Richardson
2015-10-16 12:52 ` Bruce Richardson
2015-10-19 1:51 ` Tetsuya Mukawa
2015-10-19 9:32 ` Loftus, Ciara
2015-10-19 9:45 ` Bruce Richardson
2015-10-19 10:50 ` Tetsuya Mukawa
2015-10-19 13:26 ` Panu Matilainen
2015-10-19 13:27 ` Richardson, Bruce
2015-10-21 4:35 ` Tetsuya Mukawa
2015-10-21 6:25 ` Panu Matilainen
2015-10-21 10:22 ` Bruce Richardson [this message]
2015-10-22 9:50 ` Tetsuya Mukawa
2015-10-27 13:44 ` Traynor, Kevin
2015-10-28 2:24 ` Tetsuya Mukawa
2015-10-22 9:45 ` [dpdk-dev] [RFC PATCH v3 0/2] " Tetsuya Mukawa
2015-10-22 9:45 ` [dpdk-dev] [RFC PATCH v3 1/2] vhost: Add callback and private data for vhost PMD Tetsuya Mukawa
2015-10-27 6:12 ` [dpdk-dev] [PATCH 0/3] Add VHOST PMD Tetsuya Mukawa
2015-10-27 6:12 ` [dpdk-dev] [PATCH 1/3] vhost: Fix wrong handling of virtqueue array index Tetsuya Mukawa
2015-10-27 6:29 ` Yuanhan Liu
2015-10-27 6:33 ` Yuanhan Liu
2015-10-27 6:47 ` Yuanhan Liu
2015-10-27 7:28 ` Tetsuya Mukawa
2015-10-27 7:34 ` Yuanhan Liu
2015-10-27 6:12 ` [dpdk-dev] [PATCH 2/3] vhost: Add callback and private data for vhost PMD Tetsuya Mukawa
2015-10-30 17:49 ` Loftus, Ciara
2015-11-02 3:15 ` Tetsuya Mukawa
2015-10-27 6:12 ` [dpdk-dev] [PATCH 3/3] vhost: Add VHOST PMD Tetsuya Mukawa
2015-11-02 3:58 ` [dpdk-dev] [PATCH v2 0/2] " Tetsuya Mukawa
2015-11-02 3:58 ` [dpdk-dev] [PATCH v2 1/2] vhost: Add callback and private data for vhost PMD Tetsuya Mukawa
2015-11-09 5:16 ` [dpdk-dev] [PATCH v3 0/2] Add VHOST PMD Tetsuya Mukawa
2015-11-09 5:17 ` [dpdk-dev] [PATCH v3 1/2] vhost: Add callback and private data for vhost PMD Tetsuya Mukawa
2015-11-09 18:16 ` Aaron Conole
2015-11-10 3:13 ` Tetsuya Mukawa
2015-11-10 7:16 ` Panu Matilainen
2015-11-10 9:48 ` Tetsuya Mukawa
2015-11-10 10:05 ` Panu Matilainen
2015-11-10 10:15 ` Tetsuya Mukawa
2015-11-09 5:17 ` [dpdk-dev] [PATCH v3 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2015-11-09 6:21 ` Yuanhan Liu
2015-11-09 6:27 ` Tetsuya Mukawa
2015-11-09 22:22 ` Stephen Hemminger
2015-11-10 3:14 ` Tetsuya Mukawa
2015-11-12 12:52 ` Wang, Zhihong
2015-11-13 3:09 ` Tetsuya Mukawa
2015-11-13 3:50 ` Wang, Zhihong
2015-11-13 4:03 ` Rich Lane
2015-11-13 4:29 ` Tetsuya Mukawa
2015-11-13 5:20 ` [dpdk-dev] [PATCH v4 0/2] " Tetsuya Mukawa
2015-11-13 5:20 ` [dpdk-dev] [PATCH v4 1/2] vhost: Add callback and private data for vhost PMD Tetsuya Mukawa
2015-11-17 13:29 ` Yuanhan Liu
2015-11-19 2:03 ` Tetsuya Mukawa
2015-11-19 2:18 ` Yuanhan Liu
2015-11-19 3:13 ` Tetsuya Mukawa
2015-11-19 3:33 ` Yuanhan Liu
2015-11-19 5:14 ` Tetsuya Mukawa
2015-11-19 5:45 ` Yuanhan Liu
2015-11-19 5:58 ` Tetsuya Mukawa
[not found] ` <20151119063137.GJ2326@yliu-dev.sh.intel.com>
2015-11-19 6:37 ` Tetsuya Mukawa
2015-11-13 5:20 ` [dpdk-dev] [PATCH v4 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2015-11-16 1:57 ` Wang, Zhihong
2015-11-20 11:43 ` Yuanhan Liu
2015-11-24 2:48 ` Tetsuya Mukawa
2015-11-24 3:40 ` Yuanhan Liu
2015-11-24 3:44 ` Tetsuya Mukawa
2015-11-21 0:15 ` Rich Lane
2015-11-24 4:41 ` Tetsuya Mukawa
2015-11-24 9:00 ` [dpdk-dev] [PATCH v5 0/3] " Tetsuya Mukawa
2015-11-24 9:00 ` [dpdk-dev] [PATCH v5 1/3] vhost: Add callback and private data for vhost PMD Tetsuya Mukawa
2015-12-17 11:42 ` Yuanhan Liu
2015-12-18 3:15 ` Tetsuya Mukawa
2015-12-18 3:36 ` Tetsuya Mukawa
2015-12-18 4:15 ` Yuanhan Liu
2015-12-18 4:28 ` Tetsuya Mukawa
2015-12-18 18:01 ` Rich Lane
2015-12-21 2:10 ` Tetsuya Mukawa
2015-12-22 4:36 ` Yuanhan Liu
2015-12-22 3:41 ` Yuanhan Liu
2015-12-22 4:47 ` Rich Lane
2015-12-22 5:47 ` Yuanhan Liu
2015-12-22 9:38 ` Rich Lane
2015-12-23 2:44 ` Yuanhan Liu
2015-12-23 22:00 ` Thomas Monjalon
2015-12-24 3:51 ` Yuanhan Liu
2015-12-24 4:07 ` Tetsuya Mukawa
2015-12-24 3:09 ` Tetsuya Mukawa
2015-12-24 3:54 ` Tetsuya Mukawa
2015-12-24 4:00 ` Yuanhan Liu
2015-12-24 4:23 ` Tetsuya Mukawa
2015-12-24 5:37 ` Rich Lane
2015-12-24 7:58 ` Tetsuya Mukawa
2015-12-28 21:59 ` Rich Lane
2016-01-06 3:56 ` Tetsuya Mukawa
2016-01-06 7:38 ` Yuanhan Liu
2015-12-18 10:03 ` Xie, Huawei
2015-12-21 2:10 ` Tetsuya Mukawa
2016-02-02 11:18 ` [dpdk-dev] [PATCH v6 0/2] Add VHOST PMD Tetsuya Mukawa
2016-02-02 19:52 ` Rich Lane
2016-02-02 11:18 ` [dpdk-dev] [PATCH v6 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-02-02 11:18 ` [dpdk-dev] [PATCH v6 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2016-02-02 23:43 ` Ferruh Yigit
2016-02-03 2:13 ` Tetsuya Mukawa
2016-02-03 7:48 ` Tetsuya Mukawa
2016-02-03 9:24 ` Ferruh Yigit
2016-02-03 9:35 ` Tetsuya Mukawa
2016-02-04 7:26 ` [dpdk-dev] [PATCH v7 0/2] " Tetsuya Mukawa
2016-02-04 7:26 ` [dpdk-dev] [PATCH v7 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-02-04 7:26 ` [dpdk-dev] [PATCH v7 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2016-02-04 11:17 ` Ferruh Yigit
2016-02-05 6:28 ` Tetsuya Mukawa
2016-02-05 6:35 ` Yuanhan Liu
2016-02-05 7:10 ` Tetsuya Mukawa
2016-02-08 9:42 ` Ferruh Yigit
2016-02-09 1:54 ` Tetsuya Mukawa
2016-02-05 11:28 ` [dpdk-dev] [PATCH v8 0/2] " Tetsuya Mukawa
2016-02-05 11:28 ` [dpdk-dev] [PATCH v8 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-02-06 4:57 ` Yuanhan Liu
2016-02-05 11:28 ` [dpdk-dev] [PATCH v8 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2016-02-06 5:12 ` Yuanhan Liu
2016-02-09 9:38 ` [dpdk-dev] [PATCH v9 0/2] " Tetsuya Mukawa
2016-02-24 2:45 ` Qiu, Michael
2016-02-24 5:09 ` Tetsuya Mukawa
2016-02-25 7:51 ` Qiu, Michael
2016-02-26 4:29 ` Tetsuya Mukawa
2016-02-26 8:35 ` Tetsuya Mukawa
2016-03-01 2:00 ` Qiu, Michael
2016-03-01 2:19 ` Tetsuya Mukawa
2016-03-02 2:24 ` Qiu, Michael
2016-03-04 1:12 ` Tetsuya Mukawa
2016-02-09 9:38 ` [dpdk-dev] [PATCH v9 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-03-04 4:17 ` [dpdk-dev] [PATCH v10 0/2] Add VHOST PMD Tetsuya Mukawa
2016-03-04 4:17 ` [dpdk-dev] [PATCH v10 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-03-04 4:17 ` [dpdk-dev] [PATCH v10 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2016-03-04 8:39 ` Yuanhan Liu
2016-03-04 9:58 ` Tetsuya Mukawa
2016-03-07 2:07 ` [dpdk-dev] [PATCH v11 0/2] " Tetsuya Mukawa
2016-03-07 2:07 ` [dpdk-dev] [PATCH v11 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-03-07 2:07 ` [dpdk-dev] [PATCH v11 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2016-03-14 12:02 ` Bruce Richardson
2016-03-15 5:35 ` Tetsuya Mukawa
2016-03-15 8:31 ` [dpdk-dev] [PATCH v12 0/2] " Tetsuya Mukawa
2016-03-15 8:31 ` [dpdk-dev] [PATCH v12 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-03-18 13:54 ` Thomas Monjalon
2016-03-15 8:31 ` [dpdk-dev] [PATCH v12 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2016-03-18 12:27 ` Bruce Richardson
2016-03-18 13:41 ` Tetsuya Mukawa
2016-03-18 13:52 ` Thomas Monjalon
2016-03-18 14:03 ` Tetsuya Mukawa
2016-03-18 14:13 ` Bruce Richardson
2016-03-18 14:21 ` Tetsuya Mukawa
2016-03-21 5:41 ` Tetsuya Mukawa
2016-03-21 5:45 ` [dpdk-dev] [PATCH v13 0/2] " Tetsuya Mukawa
2016-03-21 12:42 ` Bruce Richardson
2016-03-21 5:45 ` [dpdk-dev] [PATCH v13 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-03-21 8:37 ` Thomas Monjalon
2016-03-21 9:24 ` Tetsuya Mukawa
2016-03-21 11:05 ` Bruce Richardson
2016-03-21 13:51 ` Tetsuya Mukawa
2016-03-21 5:45 ` [dpdk-dev] [PATCH v13 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2016-03-21 15:40 ` Loftus, Ciara
2016-03-22 1:55 ` Tetsuya Mukawa
2016-03-22 2:50 ` Tetsuya Mukawa
2016-03-22 10:33 ` Loftus, Ciara
2016-02-09 9:38 ` [dpdk-dev] [PATCH v9 " Tetsuya Mukawa
2015-11-24 9:00 ` [dpdk-dev] [PATCH v5 2/3] " Tetsuya Mukawa
2015-12-18 7:45 ` Yuanhan Liu
2015-12-18 9:25 ` Tetsuya Mukawa
2015-11-24 9:00 ` [dpdk-dev] [PATCH v5 3/3] vhost: Add helper function to convert port id to virtio device pointer Tetsuya Mukawa
2015-12-17 11:47 ` Yuanhan Liu
2015-12-18 3:15 ` Tetsuya Mukawa
2015-12-18 4:19 ` Yuanhan Liu
2015-12-08 1:12 ` [dpdk-dev] [PATCH v5 0/3] Add VHOST PMD Tetsuya Mukawa
2015-12-08 2:03 ` Yuanhan Liu
2015-12-08 2:10 ` Tetsuya Mukawa
2015-11-13 5:32 ` [dpdk-dev] [PATCH v4 0/2] " Yuanhan Liu
2015-11-13 5:37 ` Tetsuya Mukawa
2015-11-13 6:50 ` Tetsuya Mukawa
2015-11-17 13:26 ` Yuanhan Liu
2015-11-19 1:20 ` Tetsuya Mukawa
2015-11-09 5:42 ` [dpdk-dev] [PATCH v3 " Yuanhan Liu
2015-11-02 3:58 ` [dpdk-dev] [PATCH v2 2/2] vhost: " Tetsuya Mukawa
2015-11-06 2:22 ` Yuanhan Liu
2015-11-06 3:54 ` Tetsuya Mukawa
2015-11-05 2:17 ` [dpdk-dev] [PATCH v2 0/2] " Tetsuya Mukawa
2015-11-09 22:25 ` [dpdk-dev] [PATCH 3/3] vhost: " Stephen Hemminger
2015-11-10 3:27 ` Tetsuya Mukawa
2015-10-27 7:54 ` [dpdk-dev] [PATCH 0/3] " Tetsuya Mukawa
2015-10-30 18:30 ` Thomas Monjalon
2015-11-02 3:15 ` Tetsuya Mukawa
2015-10-22 9:45 ` [dpdk-dev] [RFC PATCH v3 2/2] vhost: " Tetsuya Mukawa
2015-10-22 12:49 ` Bruce Richardson
2015-10-23 3:48 ` Tetsuya Mukawa
2015-10-29 14:25 ` Xie, Huawei
2015-10-30 1:18 ` Tetsuya Mukawa
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=20151021102238.GB16140@bricha3-MOBL3 \
--to=bruce.richardson@intel.com \
--cc=ann.zhuangyanying@huawei.com \
--cc=dev@dpdk.org \
--cc=pmatilai@redhat.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).