Updated version of the user-owned cache patchset. It applies on top of the latest v15 external mempool manager patches from David Hunt [1].
[1] http://dpdk.org/ml/archives/dev/2016-June/042004.html v5 changes: * Rework error path macros in tests. * Update documentation. * Style fixes. v4 changes: * Fix compilation with shared libraries * Add a GOTO_ERR() macro to factorize code in test_mempool.c * Change title of patch 2 to conform to check-git-log.sh v3 changes: * Deprecate specific mempool API calls instead of removing them. * Split deprecation into a separate commit to limit noise. * Fix cache flush by setting cache->len = 0 and make it inline. * Remove cache->size == 0 checks and ensure size != 0 at creation. * Fix tests to check if cache creation succeeded. * Fix tests to free allocated resources on error. 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. Also, deprecate the explicit {mp,sp}_put and {mc,sc}_get calls and re-route them through the new generic calls. Minor cleanup to pass the mempool bit flags instead of using specific is_mp and is_mc. The old cache-oblivious API calls use the per-lcore default local cache. The mempool and mempool_perf tests are also updated to handle the user-owned cache case. Introduced 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) rte_mempool_generic_put(mp, obj_table, n, cache, flags) rte_mempool_generic_get(mp, obj_table, n, cache, flags) Deprecated API calls: rte_mempool_mp_put_bulk(mp, obj_table, n) rte_mempool_sp_put_bulk(mp, obj_table, n) rte_mempool_mp_put(mp, obj) rte_mempool_sp_put(mp, obj) rte_mempool_mc_get_bulk(mp, obj_table, n) rte_mempool_sc_get_bulk(mp, obj_table, n) rte_mempool_mc_get(mp, obj_p) rte_mempool_sc_get(mp, obj_p) Lazaros Koromilas (3): mempool: deprecate specific get and put functions mempool: use bit flags to set multi consumers and producers mempool: allow for user-owned mempool caches app/test/test_mempool.c | 83 +++++--- app/test/test_mempool_perf.c | 73 ++++++- doc/guides/prog_guide/env_abstraction_layer.rst | 4 +- doc/guides/prog_guide/mempool_lib.rst | 6 +- lib/librte_mempool/rte_mempool.c | 66 +++++- lib/librte_mempool/rte_mempool.h | 257 ++++++++++++++++++------ lib/librte_mempool/rte_mempool_version.map | 6 + 7 files changed, 385 insertions(+), 110 deletions(-) -- 1.9.1