From 2536874e85e78902230a41aa4540548fa3fbebf6 Mon Sep 17 00:00:00 2001 From: Paul Luse Date: Wed, 18 Apr 2018 16:25:05 -0700 Subject: [PATCH] env: Add SPDK wrapper for rte_mempool_get_bulk() Needed for crypto vbdev work. Change-Id: Ib18ce3aaecf2388cf2cdc4dea110db514c8c1f1b Signed-off-by: Paul Luse Reviewed-on: https://review.gerrithub.io/408256 Tested-by: SPDK Automated Test System Reviewed-by: Daniel Verkamp Reviewed-by: Ben Walker --- CHANGELOG.md | 4 ++++ include/spdk/env.h | 11 +++++++++++ lib/env_dpdk/env.c | 6 ++++++ 3 files changed, 21 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f30ee8600..3f2841cd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## v18.04: (Upcoming Release) +## Env + +Add wrapper for DPDK rte_mempool_get_bulk() via spdk_mempool_get_bulk(). + ### Bdev Add new optional bdev module interface function, init_complete, to notify bdev modules diff --git a/include/spdk/env.h b/include/spdk/env.h index e50ff5f7f..81bfd29ab 100644 --- a/include/spdk/env.h +++ b/include/spdk/env.h @@ -284,6 +284,17 @@ void spdk_mempool_free(struct spdk_mempool *mp); */ void *spdk_mempool_get(struct spdk_mempool *mp); +/** + * Get multiple elements from a memory pool. + * + * \param mp Memory pool to get multiple elements from. + * \param ele_arr Array of the elements to fill. + * \param count Count of elements to get. + * + * \return 0 on success, negative errno on failure. + */ +int spdk_mempool_get_bulk(struct spdk_mempool *mp, void **ele_arr, size_t count); + /** * Put an element back into the memory pool. * diff --git a/lib/env_dpdk/env.c b/lib/env_dpdk/env.c index d13210307..da7696900 100644 --- a/lib/env_dpdk/env.c +++ b/lib/env_dpdk/env.c @@ -224,6 +224,12 @@ spdk_mempool_get(struct spdk_mempool *mp) return ele; } +int +spdk_mempool_get_bulk(struct spdk_mempool *mp, void **ele_arr, size_t count) +{ + return rte_mempool_get_bulk((struct rte_mempool *)mp, ele_arr, count); +} + void spdk_mempool_put(struct spdk_mempool *mp, void *ele) {