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>
Subject: [PATCH v1 0/6] mempool: add bucket driver
Date: Mon, 26 Mar 2018 17:12:53 +0100	[thread overview]
Message-ID: <1522080779-25472-1-git-send-email-arybchenko@solarflare.com> (raw)
In-Reply-To: <1516713372-10572-1-git-send-email-arybchenko@solarflare.com>

The initial patch series [1] (RFCv1 is [2]) is split into two to simplify
processing.  It is the second part which relies on the first one [3].

It should be applied on top of [4] and [3].

The patch series adds bucket mempool driver which allows to allocate
(both physically and virtually) contiguous blocks of objects and adds
mempool API to do it. It is still capable to provide separate objects,
but it is definitely more heavy-weight than ring/stack drivers.
The driver will be used by the future Solarflare driver enhancements
which allow to utilize physical contiguous blocks in the NIC firmware.

The target usecase is dequeue in blocks and enqueue separate objects
back (which are collected in buckets to be dequeued). So, the memory
pool with bucket driver is created by an application and provided to
networking PMD receive queue. The choice of bucket driver is done using
rte_eth_dev_pool_ops_supported(). A PMD that relies upon contiguous
block allocation should report the bucket driver as the only supported
and preferred one.

Introduction of the contiguous block dequeue operation is proven by
performance measurements using autotest with minor enhancements:
 - in the original test bulks are powers of two, which is unacceptable
   for us, so they are changed to multiple of contig_block_size;
 - the test code is duplicated to support plain dequeue and
   dequeue_contig_blocks;
 - all the extra test variations (with/without cache etc) are eliminated;
 - a fake read from the dequeued buffer is added (in both cases) to
   simulate mbufs access.

start performance test for bucket (without cache)
mempool_autotest cache=   0 cores= 1 n_get_bulk=  15 n_put_bulk=   1 n_keep=  30 Srate_persec=   111935488
mempool_autotest cache=   0 cores= 1 n_get_bulk=  15 n_put_bulk=   1 n_keep=  60 Srate_persec=   115290931
mempool_autotest cache=   0 cores= 1 n_get_bulk=  15 n_put_bulk=  15 n_keep=  30 Srate_persec=   353055539
mempool_autotest cache=   0 cores= 1 n_get_bulk=  15 n_put_bulk=  15 n_keep=  60 Srate_persec=   353330790
mempool_autotest cache=   0 cores= 2 n_get_bulk=  15 n_put_bulk=   1 n_keep=  30 Srate_persec=   224657407
mempool_autotest cache=   0 cores= 2 n_get_bulk=  15 n_put_bulk=   1 n_keep=  60 Srate_persec=   230411468
mempool_autotest cache=   0 cores= 2 n_get_bulk=  15 n_put_bulk=  15 n_keep=  30 Srate_persec=   706700902
mempool_autotest cache=   0 cores= 2 n_get_bulk=  15 n_put_bulk=  15 n_keep=  60 Srate_persec=   703673139
mempool_autotest cache=   0 cores= 4 n_get_bulk=  15 n_put_bulk=   1 n_keep=  30 Srate_persec=   425236887
mempool_autotest cache=   0 cores= 4 n_get_bulk=  15 n_put_bulk=   1 n_keep=  60 Srate_persec=   437295512
mempool_autotest cache=   0 cores= 4 n_get_bulk=  15 n_put_bulk=  15 n_keep=  30 Srate_persec=  1343409356
mempool_autotest cache=   0 cores= 4 n_get_bulk=  15 n_put_bulk=  15 n_keep=  60 Srate_persec=  1336567397
start performance test for bucket (without cache + contiguous dequeue)
mempool_autotest cache=   0 cores= 1 n_get_bulk=  15 n_put_bulk=   1 n_keep=  30 Crate_persec=   122945536
mempool_autotest cache=   0 cores= 1 n_get_bulk=  15 n_put_bulk=   1 n_keep=  60 Crate_persec=   126458265
mempool_autotest cache=   0 cores= 1 n_get_bulk=  15 n_put_bulk=  15 n_keep=  30 Crate_persec=   374262988
mempool_autotest cache=   0 cores= 1 n_get_bulk=  15 n_put_bulk=  15 n_keep=  60 Crate_persec=   377316966
mempool_autotest cache=   0 cores= 2 n_get_bulk=  15 n_put_bulk=   1 n_keep=  30 Crate_persec=   244842496
mempool_autotest cache=   0 cores= 2 n_get_bulk=  15 n_put_bulk=   1 n_keep=  60 Crate_persec=   251618917
mempool_autotest cache=   0 cores= 2 n_get_bulk=  15 n_put_bulk=  15 n_keep=  30 Crate_persec=   751226060
mempool_autotest cache=   0 cores= 2 n_get_bulk=  15 n_put_bulk=  15 n_keep=  60 Crate_persec=   756233010
mempool_autotest cache=   0 cores= 4 n_get_bulk=  15 n_put_bulk=   1 n_keep=  30 Crate_persec=   462068120
mempool_autotest cache=   0 cores= 4 n_get_bulk=  15 n_put_bulk=   1 n_keep=  60 Crate_persec=   476997221
mempool_autotest cache=   0 cores= 4 n_get_bulk=  15 n_put_bulk=  15 n_keep=  30 Crate_persec=  1432171313
mempool_autotest cache=   0 cores= 4 n_get_bulk=  15 n_put_bulk=  15 n_keep=  60 Crate_persec=  1438829771

The number of objects in the contiguous block is a function of bucket
memory size (.config option) and total element size. In the future
additional API with possibility to pass parameters on mempool allocation
may be added.

It breaks ABI since changes rte_mempool_ops. The ABI version is already
bumped in [4].


[1] https://dpdk.org/ml/archives/dev/2018-January/088698.html
[2] https://dpdk.org/ml/archives/dev/2017-November/082335.html
[3] https://dpdk.org/ml/archives/dev/2018-March/093807.html
[4] https://dpdk.org/ml/archives/dev/2018-March/093196.html


RFCv2 -> v1:
  - rebased on top of [3]
  - cleanup deprecation notice when it is done
  - mark a new API experimental
  - move contig blocks dequeue debug checks/processing to the library function
  - add contig blocks get stats
  - add release notes

RFCv1 -> RFCv2:
  - change info API to get information from driver required to
    API user to know contiguous block size
  - use SPDX tags
  - avoid all objects affinity to single lcore
  - fix bucket get_count
  - fix NO_CACHE_ALIGN case in bucket mempool


Andrew Rybchenko (1):
  doc: advertise bucket mempool driver

Artem V. Andreev (5):
  mempool/bucket: implement bucket mempool manager
  mempool: implement abstract mempool info API
  mempool: support block dequeue operation
  mempool/bucket: implement block dequeue operation
  mempool/bucket: do not allow one lcore to grab all buckets

 MAINTAINERS                                        |   9 +
 config/common_base                                 |   2 +
 doc/guides/rel_notes/deprecation.rst               |   7 -
 doc/guides/rel_notes/release_18_05.rst             |   9 +
 drivers/mempool/Makefile                           |   1 +
 drivers/mempool/bucket/Makefile                    |  27 +
 drivers/mempool/bucket/meson.build                 |   9 +
 drivers/mempool/bucket/rte_mempool_bucket.c        | 627 +++++++++++++++++++++
 .../mempool/bucket/rte_mempool_bucket_version.map  |   4 +
 lib/librte_mempool/Makefile                        |   1 +
 lib/librte_mempool/meson.build                     |   2 +
 lib/librte_mempool/rte_mempool.c                   |  39 ++
 lib/librte_mempool/rte_mempool.h                   | 190 +++++++
 lib/librte_mempool/rte_mempool_ops.c               |  16 +
 lib/librte_mempool/rte_mempool_version.map         |   8 +
 mk/rte.app.mk                                      |   1 +
 16 files changed, 945 insertions(+), 7 deletions(-)
 create mode 100644 drivers/mempool/bucket/Makefile
 create mode 100644 drivers/mempool/bucket/meson.build
 create mode 100644 drivers/mempool/bucket/rte_mempool_bucket.c
 create mode 100644 drivers/mempool/bucket/rte_mempool_bucket_version.map

-- 
2.7.4

  parent reply	other threads:[~2018-03-26 16:13 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   ` [PATCH v3 00/11] mempool: prepare to add bucket driver Andrew Rybchenko
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   ` Andrew Rybchenko [this message]
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=1522080779-25472-1-git-send-email-arybchenko@solarflare.com \
    --to=arybchenko@solarflare.com \
    --cc=dev@dpdk.org \
    --cc=olivier.matz@6wind.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 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.