mempool: allow user-owned cache
authorLazaros Koromilas <l@nofutznetworks.com>
Tue, 28 Jun 2016 23:47:38 +0000 (00:47 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 30 Jun 2016 09:28:10 +0000 (11:28 +0200)
commit4b5062755aa74517ed1d7bd6829b7e9f28b801d8
treed4977fe1748d224efbc737074699d2f06eccb795
parentd6f78df6feadaddd001ccf6e9e5062e388d1d98d
mempool: allow user-owned cache

The mempool cache is only available to EAL threads as a per-lcore
resource. Change this so that the user can create and provide their own
cache on mempool get and put operations. This works with non-EAL threads
too. This commit introduces the new API calls:

    rte_mempool_cache_create(size, socket_id)
    rte_mempool_cache_free(cache)
    rte_mempool_cache_flush(cache, mp)
    rte_mempool_default_cache(mp, lcore_id)

Changes the API calls:

    rte_mempool_generic_put(mp, obj_table, n, cache, flags)
    rte_mempool_generic_get(mp, obj_table, n, cache, flags)

The cache-oblivious API calls use the per-lcore default local cache.

Signed-off-by: Lazaros Koromilas <l@nofutznetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
app/test/test_mempool.c
app/test/test_mempool_perf.c
doc/guides/prog_guide/env_abstraction_layer.rst
doc/guides/prog_guide/mempool_lib.rst
doc/guides/rel_notes/deprecation.rst
doc/guides/rel_notes/release_16_07.rst
lib/librte_mempool/rte_mempool.c
lib/librte_mempool/rte_mempool.h
lib/librte_mempool/rte_mempool_version.map