All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Rybchenko <arybchenko@solarflare.com>
To: <dev@dpdk.org>
Cc: Olivier MATZ <olivier.matz@6wind.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	Anatoly Burakov <anatoly.burakov@intel.com>,
	Santosh Shukla <santosh.shukla@caviumnetworks.com>,
	Jerin Jacob <jerin.jacob@caviumnetworks.com>,
	Hemant Agrawal <hemant.agrawal@nxp.com>,
	Shreyansh Jain <shreyansh.jain@nxp.com>
Subject: [PATCH v3 00/11] mempool: prepare to add bucket driver
Date: Mon, 26 Mar 2018 17:09:40 +0100	[thread overview]
Message-ID: <1522080591-24705-1-git-send-email-arybchenko@solarflare.com> (raw)
In-Reply-To: <1516713372-10572-1-git-send-email-arybchenko@solarflare.com>

The patch series should be applied on top of [7].

The initial patch series [1] is split into two to simplify processing.
The second series relies on this one and will add bucket mempool driver
and related ops.

The patch series has generic enhancements suggested by Olivier.
Basically it adds driver callbacks to calculate required memory size and
to populate objects using provided memory area. It allows to remove
so-called capability flags used before to tell generic code how to
allocate and slice allocated memory into mempool objects.
Clean up which removes get_capabilities and register_memory_area is
not strictly required, but I think right thing to do.
Existing mempool drivers are updated.

rte_mempool_populate_iova_tab() is also deprecated in v2 as agreed in [2].
Unfortunately it requires addition of -Wno-deprecated-declarations flag
to librte_mempool since the function is used by deprecated earlier
rte_mempool_populate_phys_tab(). If the later may be removed in the
release, we can avoid addition of the flag to allow usage of deprecated
functions.

One open question remains from previous review [3].

The patch series interfere with memory hotplug for DPDK [4] ([5] to be
precise). So, rebase may be required.

A new patch is added to the series to rename MEMPOOL_F_NO_PHYS_CONTIG
as MEMPOOL_F_NO_IOVA_CONTIG as agreed in [6].
MEMPOOL_F_CAPA_PHYS_CONTIG is not renamed since it removed in this
patchset.

It breaks ABI since changes rte_mempool_ops. Also it removes
rte_mempool_ops_register_memory_area() and
rte_mempool_ops_get_capabilities() since corresponding callbacks are
removed.

Internal global functions are not listed in map file since it is not
a part of external API.

[1] https://dpdk.org/ml/archives/dev/2018-January/088698.html
[2] https://dpdk.org/ml/archives/dev/2018-March/093186.html
[3] https://dpdk.org/ml/archives/dev/2018-March/093329.html
[4] https://dpdk.org/ml/archives/dev/2018-March/092070.html
[5] https://dpdk.org/ml/archives/dev/2018-March/092088.html
[6] https://dpdk.org/ml/archives/dev/2018-March/093345.html
[7] https://dpdk.org/ml/archives/dev/2018-March/093196.html

v2 -> v3:
  - fix build error in mempool/dpaa: prepare to remove register memory area op

v1 -> v2:
  - deprecate rte_mempool_populate_iova_tab()
  - add patch to fix memory leak if no objects are populated
  - add patch to rename MEMPOOL_F_NO_PHYS_CONTIG
  - minor fixes (typos, blank line at the end of file)
  - highlight meaning of min_chunk_size (when it is virtual or
    physical contiguous)
  - make sure that mempool is initialized in rte_mempool_populate_anon()
  - move patch to ensure that mempool is initialized earlier in the series

RFCv2 -> v1:
  - split the series in two
  - squash octeontx patches which implement calc_mem_size and populate
    callbacks into the patch which removes get_capabilities since it is
    the easiest way to untangle the tangle of tightly related library
    functions and flags advertised by the driver
  - consistently name default callbacks
  - move default callbacks to dedicated file
  - see detailed description in patches

RFCv1 -> RFCv2:
  - add driver ops to calculate required memory size and populate
    mempool objects, remove extra flags which were required before
    to control it
  - transition of octeontx and dpaa drivers to the new callbacks
  - change info API to get information from driver required to
    API user to know contiguous block size
  - remove get_capabilities (not required any more and may be
    substituted with more in info get API)
  - remove register_memory_area since it is substituted with
    populate callback which can do more
  - use SPDX tags
  - avoid all objects affinity to single lcore
  - fix bucket get_count
  - deprecate XMEM API
  - avoid introduction of a new function to flush cache
  - fix NO_CACHE_ALIGN case in bucket mempool

Andrew Rybchenko (9):
  mempool: fix memhdr leak when no objects are populated
  mempool: rename flag to control IOVA-contiguous objects
  mempool: add op to calculate memory size to be allocated
  mempool: add op to populate objects using provided memory
  mempool: remove callback to get capabilities
  mempool: deprecate xmem functions
  mempool/octeontx: prepare to remove register memory area op
  mempool/dpaa: prepare to remove register memory area op
  mempool: remove callback to register memory area

Artem V. Andreev (2):
  mempool: ensure the mempool is initialized before populating
  mempool: support flushing the default cache of the mempool

 doc/guides/rel_notes/deprecation.rst            |  12 +-
 doc/guides/rel_notes/release_18_05.rst          |  33 ++-
 drivers/mempool/dpaa/dpaa_mempool.c             |  13 +-
 drivers/mempool/octeontx/rte_mempool_octeontx.c |  64 ++++--
 drivers/net/thunderx/nicvf_ethdev.c             |   2 +-
 lib/librte_mempool/Makefile                     |   6 +-
 lib/librte_mempool/meson.build                  |  17 +-
 lib/librte_mempool/rte_mempool.c                | 179 ++++++++-------
 lib/librte_mempool/rte_mempool.h                | 280 +++++++++++++++++-------
 lib/librte_mempool/rte_mempool_ops.c            |  37 ++--
 lib/librte_mempool/rte_mempool_ops_default.c    |  51 +++++
 lib/librte_mempool/rte_mempool_version.map      |  10 +-
 test/test/test_mempool.c                        |  31 ---
 13 files changed, 485 insertions(+), 250 deletions(-)
 create mode 100644 lib/librte_mempool/rte_mempool_ops_default.c

-- 
2.7.4

  parent reply	other threads:[~2018-03-26 16:10 UTC|newest]

Thread overview: 197+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-24 16:06 [RFC PATCH 0/6] mempool: add bucket mempool driver Andrew Rybchenko
2017-11-24 16:06 ` [RFC PATCH 1/6] mempool: implement abstract mempool info API Andrew Rybchenko
2017-12-14 13:36   ` Olivier MATZ
2018-01-17 15:03     ` Andrew Rybchenko
2017-11-24 16:06 ` [RFC PATCH 2/6] mempool: implement clustered object allocation Andrew Rybchenko
2017-12-14 13:37   ` Olivier MATZ
2018-01-17 15:03     ` Andrew Rybchenko
2018-01-17 15:55       ` santosh
2018-01-17 16:37         ` Andrew Rybchenko
2017-11-24 16:06 ` [RFC PATCH 3/6] mempool/bucket: implement bucket mempool manager Andrew Rybchenko
2017-12-14 13:38   ` Olivier MATZ
2018-01-17 15:06     ` Andrew Rybchenko
2017-11-24 16:06 ` [RFC PATCH 4/6] mempool: add a function to flush default cache Andrew Rybchenko
2017-12-14 13:38   ` Olivier MATZ
2018-01-17 15:07     ` Andrew Rybchenko
2017-11-24 16:06 ` [RFC PATCH 5/6] mempool: support block dequeue operation Andrew Rybchenko
2017-12-14 13:38   ` Olivier MATZ
2017-11-24 16:06 ` [RFC PATCH 6/6] mempool/bucket: implement " Andrew Rybchenko
2017-12-14 13:36 ` [RFC PATCH 0/6] mempool: add bucket mempool driver Olivier MATZ
2018-01-17 15:03   ` Andrew Rybchenko
2018-01-23 13:15 ` [RFC v2 00/17] " Andrew Rybchenko
2018-01-23 13:15   ` [RFC v2 01/17] mempool: fix phys contig check if populate default skipped Andrew Rybchenko
2018-01-31 16:45     ` Olivier Matz
2018-02-01  5:05       ` santosh
2018-02-01  6:54         ` Andrew Rybchenko
2018-02-01  9:09           ` santosh
2018-02-01  9:18             ` Andrew Rybchenko
2018-02-01  9:30               ` santosh
2018-02-01 10:00                 ` Andrew Rybchenko
2018-02-01 10:14                   ` Olivier Matz
2018-02-01 10:33                     ` santosh
2018-02-01 14:02                       ` Andrew Rybchenko
2018-02-01 10:17                   ` santosh
2018-02-01 14:02     ` [PATCH] " Andrew Rybchenko
2018-02-05 23:53       ` [dpdk-stable] " Thomas Monjalon
2018-01-23 13:15   ` [RFC v2 02/17] mempool: add op to calculate memory size to be allocated Andrew Rybchenko
2018-01-31 16:45     ` Olivier Matz
2018-02-01  7:15       ` Andrew Rybchenko
2018-01-23 13:15   ` [RFC v2 03/17] mempool/octeontx: add callback to calculate memory size Andrew Rybchenko
     [not found]     ` <BN3PR07MB2513732462EB5FE5E1B05713E3FA0@BN3PR07MB2513.namprd07.prod.outlook.com>
2018-02-01 10:01       ` santosh
2018-02-01 13:40         ` santosh
2018-03-10 15:49           ` Andrew Rybchenko
2018-03-11  6:31             ` santosh
2018-01-23 13:15   ` [RFC v2 04/17] mempool: add op to populate objects using provided memory Andrew Rybchenko
2018-01-31 16:45     ` Olivier Matz
2018-02-01  8:51       ` Andrew Rybchenko
2018-01-23 13:16   ` [RFC v2 05/17] mempool/octeontx: implement callback to populate objects Andrew Rybchenko
2018-01-23 13:16   ` [RFC v2 06/17] mempool: remove callback to get capabilities Andrew Rybchenko
2018-01-23 13:16   ` [RFC v2 07/17] mempool: deprecate xmem functions Andrew Rybchenko
2018-01-23 13:16   ` [RFC v2 08/17] mempool/octeontx: prepare to remove register memory area op Andrew Rybchenko
2018-01-23 13:16   ` [RFC v2 09/17] mempool/dpaa: convert to use populate driver op Andrew Rybchenko
2018-01-23 13:16   ` [RFC v2 10/17] mempool: remove callback to register memory area Andrew Rybchenko
2018-01-23 13:16   ` [RFC v2 11/17] mempool: ensure the mempool is initialized before populating Andrew Rybchenko
2018-01-31 16:45     ` Olivier Matz
2018-02-01  8:53       ` Andrew Rybchenko
2018-01-23 13:16   ` [RFC v2 12/17] mempool/bucket: implement bucket mempool manager Andrew Rybchenko
2018-01-23 13:16   ` [RFC v2 13/17] mempool: support flushing the default cache of the mempool Andrew Rybchenko
2018-01-23 13:16   ` [RFC v2 14/17] mempool: implement abstract mempool info API Andrew Rybchenko
2018-01-23 13:16   ` [RFC v2 15/17] mempool: support block dequeue operation Andrew Rybchenko
2018-01-23 13:16   ` [RFC v2 16/17] mempool/bucket: implement " Andrew Rybchenko
2018-01-23 13:16   ` [RFC v2 17/17] mempool/bucket: do not allow one lcore to grab all buckets Andrew Rybchenko
2018-01-31 16:44   ` [RFC v2 00/17] mempool: add bucket mempool driver Olivier Matz
2018-03-10 15:39   ` [PATCH v1 0/9] mempool: prepare to add bucket driver Andrew Rybchenko
2018-03-10 15:39     ` [PATCH v1 1/9] mempool: add op to calculate memory size to be allocated Andrew Rybchenko
2018-03-11 12:51       ` santosh
2018-03-12  6:53         ` Andrew Rybchenko
2018-03-19 17:03       ` Olivier Matz
2018-03-20 10:29         ` Andrew Rybchenko
2018-03-20 14:41         ` Bruce Richardson
2018-03-10 15:39     ` [PATCH v1 2/9] mempool: add op to populate objects using provided memory Andrew Rybchenko
2018-03-19 17:04       ` Olivier Matz
2018-03-21  7:05         ` Andrew Rybchenko
2018-03-10 15:39     ` [PATCH v1 3/9] mempool: remove callback to get capabilities Andrew Rybchenko
2018-03-14 14:40       ` Burakov, Anatoly
2018-03-14 16:12         ` Andrew Rybchenko
2018-03-14 16:53           ` Burakov, Anatoly
2018-03-14 17:24             ` Andrew Rybchenko
2018-03-15  9:48               ` Burakov, Anatoly
2018-03-15 11:49                 ` Andrew Rybchenko
2018-03-15 12:00                   ` Burakov, Anatoly
2018-03-15 12:44                     ` Andrew Rybchenko
2018-03-19 17:05                       ` Olivier Matz
2018-03-19 17:06       ` Olivier Matz
2018-03-10 15:39     ` [PATCH v1 4/9] mempool: deprecate xmem functions Andrew Rybchenko
2018-03-10 15:39     ` [PATCH v1 5/9] mempool/octeontx: prepare to remove register memory area op Andrew Rybchenko
2018-03-10 15:39     ` [PATCH v1 6/9] mempool/dpaa: " Andrew Rybchenko
2018-03-10 15:39     ` [PATCH v1 7/9] mempool: remove callback to register memory area Andrew Rybchenko
2018-03-10 15:39     ` [PATCH v1 8/9] mempool: ensure the mempool is initialized before populating Andrew Rybchenko
2018-03-19 17:06       ` Olivier Matz
2018-03-20 13:32         ` Andrew Rybchenko
2018-03-20 16:57           ` Olivier Matz
2018-03-10 15:39     ` [PATCH v1 9/9] mempool: support flushing the default cache of the mempool Andrew Rybchenko
2018-03-14 15:49     ` [PATCH v1 0/9] mempool: prepare to add bucket driver santosh
2018-03-14 15:57       ` Andrew Rybchenko
2018-03-19 17:03     ` Olivier Matz
2018-03-20 10:09       ` Andrew Rybchenko
2018-03-20 11:04         ` Thomas Monjalon
2018-03-25 16:20   ` [PATCH v2 00/11] " Andrew Rybchenko
2018-03-25 16:20     ` [PATCH v2 01/11] mempool: fix memhdr leak when no objects are populated Andrew Rybchenko
2018-03-25 16:20     ` [PATCH v2 02/11] mempool: rename flag to control IOVA-contiguous objects Andrew Rybchenko
2018-03-25 16:20     ` [PATCH v2 03/11] mempool: ensure the mempool is initialized before populating Andrew Rybchenko
2018-03-25 16:20     ` [PATCH v2 04/11] mempool: add op to calculate memory size to be allocated Andrew Rybchenko
2018-03-25 16:20     ` [PATCH v2 05/11] mempool: add op to populate objects using provided memory Andrew Rybchenko
2018-03-25 16:20     ` [PATCH v2 06/11] mempool: remove callback to get capabilities Andrew Rybchenko
2018-03-25 16:20     ` [PATCH v2 07/11] mempool: deprecate xmem functions Andrew Rybchenko
2018-03-25 16:20     ` [PATCH v2 08/11] mempool/octeontx: prepare to remove register memory area op Andrew Rybchenko
2018-03-25 16:20     ` [PATCH v2 09/11] mempool/dpaa: " Andrew Rybchenko
2018-03-26  7:13       ` Andrew Rybchenko
2018-03-25 16:20     ` [PATCH v2 10/11] mempool: remove callback to register memory area Andrew Rybchenko
2018-03-25 16:20     ` [PATCH v2 11/11] mempool: support flushing the default cache of the mempool Andrew Rybchenko
2018-03-26 16:09   ` Andrew Rybchenko [this message]
2018-03-26 16:09     ` [PATCH v3 01/11] mempool: fix memhdr leak when no objects are populated Andrew Rybchenko
2018-04-06 15:50       ` Olivier Matz
2018-03-26 16:09     ` [PATCH v3 02/11] mempool: rename flag to control IOVA-contiguous objects Andrew Rybchenko
2018-04-06 15:50       ` Olivier Matz
2018-03-26 16:09     ` [PATCH v3 03/11] mempool: ensure the mempool is initialized before populating Andrew Rybchenko
2018-04-04 15:06       ` santosh
2018-04-06 15:50       ` Olivier Matz
2018-03-26 16:09     ` [PATCH v3 04/11] mempool: add op to calculate memory size to be allocated Andrew Rybchenko
2018-04-04 15:08       ` santosh
2018-04-06 15:51       ` Olivier Matz
2018-04-12 15:22       ` Burakov, Anatoly
2018-03-26 16:09     ` [PATCH v3 05/11] mempool: add op to populate objects using provided memory Andrew Rybchenko
2018-04-04 15:09       ` santosh
2018-04-06 15:51       ` Olivier Matz
2018-03-26 16:09     ` [PATCH v3 06/11] mempool: remove callback to get capabilities Andrew Rybchenko
2018-04-04 15:10       ` santosh
2018-04-06 15:51       ` Olivier Matz
2018-03-26 16:09     ` [PATCH v3 07/11] mempool: deprecate xmem functions Andrew Rybchenko
2018-04-06 15:52       ` Olivier Matz
2018-03-26 16:09     ` [PATCH v3 08/11] mempool/octeontx: prepare to remove register memory area op Andrew Rybchenko
2018-04-04 15:12       ` santosh
2018-03-26 16:09     ` [PATCH v3 09/11] mempool/dpaa: " Andrew Rybchenko
2018-04-05  8:25       ` Hemant Agrawal
2018-03-26 16:09     ` [PATCH v3 10/11] mempool: remove callback to register memory area Andrew Rybchenko
2018-04-04 15:13       ` santosh
2018-04-06 15:52       ` Olivier Matz
2018-03-26 16:09     ` [PATCH v3 11/11] mempool: support flushing the default cache of the mempool Andrew Rybchenko
2018-04-06 15:53       ` Olivier Matz
2018-03-26 16:12   ` [PATCH v1 0/6] mempool: add bucket driver Andrew Rybchenko
2018-03-26 16:12     ` [PATCH v1 1/6] mempool/bucket: implement bucket mempool manager Andrew Rybchenko
2018-03-26 16:12     ` [PATCH v1 2/6] mempool: implement abstract mempool info API Andrew Rybchenko
2018-04-19 16:42       ` Olivier Matz
2018-04-25  9:57         ` Andrew Rybchenko
2018-04-25 10:26           ` Olivier Matz
2018-03-26 16:12     ` [PATCH v1 3/6] mempool: support block dequeue operation Andrew Rybchenko
2018-04-19 16:41       ` Olivier Matz
2018-04-25  9:49         ` Andrew Rybchenko
2018-03-26 16:12     ` [PATCH v1 4/6] mempool/bucket: implement " Andrew Rybchenko
2018-03-26 16:12     ` [PATCH v1 5/6] mempool/bucket: do not allow one lcore to grab all buckets Andrew Rybchenko
2018-03-26 16:12     ` [PATCH v1 6/6] doc: advertise bucket mempool driver Andrew Rybchenko
2018-04-19 16:43       ` Olivier Matz
2018-04-19 16:41     ` [PATCH v1 0/6] mempool: add bucket driver Olivier Matz
2018-04-16 13:24 ` [PATCH v4 00/11] mempool: prepare to " Andrew Rybchenko
2018-04-16 13:24   ` [PATCH v4 01/11] mempool: fix memhdr leak when no objects are populated Andrew Rybchenko
2018-04-16 13:24   ` [PATCH v4 02/11] mempool: rename flag to control IOVA-contiguous objects Andrew Rybchenko
2018-04-16 13:24   ` [PATCH v4 03/11] mempool: ensure the mempool is initialized before populating Andrew Rybchenko
2018-04-16 13:24   ` [PATCH v4 04/11] mempool: add op to calculate memory size to be allocated Andrew Rybchenko
2018-04-16 15:33     ` Olivier Matz
2018-04-16 15:41       ` Andrew Rybchenko
2018-04-17 10:23     ` Burakov, Anatoly
2018-04-16 13:24   ` [PATCH v4 05/11] mempool: add op to populate objects using provided memory Andrew Rybchenko
2018-04-16 13:24   ` [PATCH v4 06/11] mempool: remove callback to get capabilities Andrew Rybchenko
2018-04-16 13:24   ` [PATCH v4 07/11] mempool: deprecate xmem functions Andrew Rybchenko
2018-04-16 13:24   ` [PATCH v4 08/11] mempool/octeontx: prepare to remove register memory area op Andrew Rybchenko
2018-04-16 13:24   ` [PATCH v4 09/11] mempool/dpaa: " Andrew Rybchenko
2018-04-16 13:24   ` [PATCH v4 10/11] mempool: remove callback to register memory area Andrew Rybchenko
2018-04-16 13:24   ` [PATCH v4 11/11] mempool: support flushing the default cache of the mempool Andrew Rybchenko
2018-04-24  0:20   ` [PATCH v4 00/11] mempool: prepare to add bucket driver Thomas Monjalon
2018-04-16 13:33 ` [PATCH v2 0/6] mempool: " Andrew Rybchenko
2018-04-16 13:33   ` [PATCH v2 1/6] mempool/bucket: implement bucket mempool manager Andrew Rybchenko
2018-04-16 13:33   ` [PATCH v2 2/6] mempool: implement abstract mempool info API Andrew Rybchenko
2018-04-25  8:44     ` Olivier Matz
2018-04-16 13:33   ` [PATCH v2 3/6] mempool: support block dequeue operation Andrew Rybchenko
2018-04-25  8:45     ` Olivier Matz
2018-04-16 13:33   ` [PATCH v2 4/6] mempool/bucket: implement " Andrew Rybchenko
2018-04-16 13:33   ` [PATCH v2 5/6] mempool/bucket: do not allow one lcore to grab all buckets Andrew Rybchenko
2018-04-16 13:33   ` [PATCH v2 6/6] doc: advertise bucket mempool driver Andrew Rybchenko
2018-04-24 23:00   ` [PATCH v2 0/6] mempool: add bucket driver Thomas Monjalon
2018-04-25  8:43     ` Olivier Matz
2018-04-25 16:32 ` [PATCH v3 " Andrew Rybchenko
2018-04-25 16:32   ` [PATCH v3 1/6] mempool/bucket: implement bucket mempool manager Andrew Rybchenko
2018-04-25 16:32   ` [PATCH v3 2/6] mempool: implement abstract mempool info API Andrew Rybchenko
2018-04-25 16:32   ` [PATCH v3 3/6] mempool: support block dequeue operation Andrew Rybchenko
2018-04-25 16:32   ` [PATCH v3 4/6] mempool/bucket: implement " Andrew Rybchenko
2018-04-25 16:32   ` [PATCH v3 5/6] mempool/bucket: do not allow one lcore to grab all buckets Andrew Rybchenko
2018-04-25 16:32   ` [PATCH v3 6/6] doc: advertise bucket mempool driver Andrew Rybchenko
2018-04-25 21:56     ` Thomas Monjalon
2018-04-25 22:04       ` Thomas Monjalon
2018-04-26  9:50         ` Andrew Rybchenko
2018-04-26 10:59 ` [PATCH v4 0/5] mempool: add bucket driver Andrew Rybchenko
2018-04-26 10:59   ` [PATCH v4 1/5] mempool/bucket: implement bucket mempool manager Andrew Rybchenko
2018-04-26 10:59   ` [PATCH v4 2/5] mempool: implement abstract mempool info API Andrew Rybchenko
2018-04-26 10:59   ` [PATCH v4 3/5] mempool: support block dequeue operation Andrew Rybchenko
2018-04-26 10:59   ` [PATCH v4 4/5] mempool/bucket: implement " Andrew Rybchenko
2018-04-26 10:59   ` [PATCH v4 5/5] mempool/bucket: do not allow one lcore to grab all buckets Andrew Rybchenko
2018-04-26 21:35   ` [PATCH v4 0/5] mempool: add bucket driver Thomas Monjalon

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=1522080591-24705-1-git-send-email-arybchenko@solarflare.com \
    --to=arybchenko@solarflare.com \
    --cc=anatoly.burakov@intel.com \
    --cc=dev@dpdk.org \
    --cc=hemant.agrawal@nxp.com \
    --cc=jerin.jacob@caviumnetworks.com \
    --cc=olivier.matz@6wind.com \
    --cc=santosh.shukla@caviumnetworks.com \
    --cc=shreyansh.jain@nxp.com \
    --cc=thomas@monjalon.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.