[dpdk-dev,1/2] test/mempool_perf: Free mempool on exit
Checks
Commit Message
Mempool_perf test not freeing pool memory.
Cc: stable@dpdk.org
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
---
test/test/test_mempool_perf.c | 31 +++++++++++++++++++------------
1 file changed, 19 insertions(+), 12 deletions(-)
Comments
Hello Santosh,
On Wednesday 05 April 2017 02:21 PM, Santosh Shukla wrote:
> Mempool_perf test not freeing pool memory.
>
> Cc: stable@dpdk.org
> Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
> ---
> test/test/test_mempool_perf.c | 31 +++++++++++++++++++------------
> 1 file changed, 19 insertions(+), 12 deletions(-)
>
> diff --git a/test/test/test_mempool_perf.c b/test/test/test_mempool_perf.c
> index ebf1721..3c45971 100644
> --- a/test/test/test_mempool_perf.c
> +++ b/test/test/test_mempool_perf.c
> @@ -312,6 +312,8 @@ struct mempool_test_stats {
> static int
> test_mempool_perf(void)
> {
> + int ret = -1;
> +
> rte_atomic32_init(&synchro);
>
> /* create a mempool (without cache) */
> @@ -322,7 +324,7 @@ struct mempool_test_stats {
Can you check why the patch is showing "struct mempool_test_stats" as
the context?
I tried creating this patch and it shows "test_mempool_perf(void)" as
context.
off the topic, does it matter to maintainers if context is not correct?
> my_obj_init, NULL,
> SOCKET_ID_ANY, 0);
> if (mp_nocache == NULL)
> - return -1;
> + goto err;
>
> /* create a mempool (with cache) */
> if (mp_cache == NULL)
[...]
> +err:
> + rte_mempool_free(mp_cache);
> + rte_mempool_free(mp_nocache);
> + return ret;
> }
>
> REGISTER_TEST_COMMAND(mempool_perf_autotest, test_mempool_perf);
>
Other than that:
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
@@ -312,6 +312,8 @@ struct mempool_test_stats {
static int
test_mempool_perf(void)
{
+ int ret = -1;
+
rte_atomic32_init(&synchro);
/* create a mempool (without cache) */
@@ -322,7 +324,7 @@ struct mempool_test_stats {
my_obj_init, NULL,
SOCKET_ID_ANY, 0);
if (mp_nocache == NULL)
- return -1;
+ goto err;
/* create a mempool (with cache) */
if (mp_cache == NULL)
@@ -333,33 +335,33 @@ struct mempool_test_stats {
my_obj_init, NULL,
SOCKET_ID_ANY, 0);
if (mp_cache == NULL)
- return -1;
+ goto err;
/* performance test with 1, 2 and max cores */
printf("start performance test (without cache)\n");
mp = mp_nocache;
if (do_one_mempool_test(1) < 0)
- return -1;
+ goto err;
if (do_one_mempool_test(2) < 0)
- return -1;
+ goto err;
if (do_one_mempool_test(rte_lcore_count()) < 0)
- return -1;
+ goto err;
/* performance test with 1, 2 and max cores */
printf("start performance test (with cache)\n");
mp = mp_cache;
if (do_one_mempool_test(1) < 0)
- return -1;
+ goto err;
if (do_one_mempool_test(2) < 0)
- return -1;
+ goto err;
if (do_one_mempool_test(rte_lcore_count()) < 0)
- return -1;
+ goto err;
/* performance test with 1, 2 and max cores */
printf("start performance test (with user-owned cache)\n");
@@ -367,17 +369,22 @@ struct mempool_test_stats {
use_external_cache = 1;
if (do_one_mempool_test(1) < 0)
- return -1;
+ goto err;
if (do_one_mempool_test(2) < 0)
- return -1;
+ goto err;
if (do_one_mempool_test(rte_lcore_count()) < 0)
- return -1;
+ goto err;
rte_mempool_list_dump(stdout);
- return 0;
+ ret = 0;
+
+err:
+ rte_mempool_free(mp_cache);
+ rte_mempool_free(mp_nocache);
+ return ret;
}
REGISTER_TEST_COMMAND(mempool_perf_autotest, test_mempool_perf);