Hi Olivier, On Tuesday 18 April 2017 07:12 PM, Olivier MATZ wrote:
> Hi Santosh, > > On Tue, 18 Apr 2017 14:04:46 +0530, Santosh Shukla > <santosh.shu...@caviumnetworks.com> wrote: >> Cc: sta...@dpdk.org >> Signed-off-by: Santosh Shukla <santosh.shu...@caviumnetworks.com> >> --- >> v3: >> - Cleanup code change as per discussion in >> http://dpdk.org/dev/patchwork/patch/23262/ >> >> test/test/test_mempool_perf.c | 61 >> ++++++++++++++++++++++--------------------- >> 1 file changed, 31 insertions(+), 30 deletions(-) >> >> diff --git a/test/test/test_mempool_perf.c b/test/test/test_mempool_perf.c >> index ebf1721ac..213fcba5d 100644 >> --- a/test/test/test_mempool_perf.c >> +++ b/test/test/test_mempool_perf.c >> @@ -109,8 +109,6 @@ >> goto label; \ >> } while (0) >> >> -static struct rte_mempool *mp; >> -static struct rte_mempool *mp_cache, *mp_nocache; >> static int use_external_cache; >> static unsigned external_cache_size = RTE_MEMPOOL_CACHE_MAX_SIZE; >> >> @@ -144,10 +142,11 @@ my_obj_init(struct rte_mempool *mp, >> __attribute__((unused)) void *arg, >> } >> >> static int >> -per_lcore_mempool_test(__attribute__((unused)) void *arg) >> +per_lcore_mempool_test(void *arg) >> { >> void *obj_table[MAX_KEEP]; >> unsigned i, idx; >> + struct rte_mempool *mp = (struct rte_mempool *)arg; > as a nit: the cast is not required. > Will consider in v4. >> unsigned lcore_id = rte_lcore_id(); >> int ret = 0; >> uint64_t start_cycles, end_cycles; >> @@ -221,7 +220,7 @@ per_lcore_mempool_test(__attribute__((unused)) void *arg) >> >> /* launch all the per-lcore test, and display the result */ >> static int >> -launch_cores(unsigned cores) >> +launch_cores(struct rte_mempool *mp, unsigned cores) >> { >> unsigned lcore_id; >> uint64_t rate; >> @@ -249,13 +248,13 @@ launch_cores(unsigned cores) >> break; >> cores--; >> rte_eal_remote_launch(per_lcore_mempool_test, >> - NULL, lcore_id); >> + mp, lcore_id); >> } >> >> /* start synchro and launch test on master */ >> rte_atomic32_set(&synchro, 1); >> >> - ret = per_lcore_mempool_test(NULL); >> + ret = per_lcore_mempool_test(mp); >> >> cores = cores_save; >> RTE_LCORE_FOREACH_SLAVE(lcore_id) { >> @@ -282,7 +281,7 @@ launch_cores(unsigned cores) >> >> /* for a given number of core, launch all test cases */ >> static int >> -do_one_mempool_test(unsigned cores) >> +do_one_mempool_test(struct rte_mempool *mp, unsigned cores) >> { >> unsigned bulk_tab_get[] = { 1, 4, 32, 0 }; >> unsigned bulk_tab_put[] = { 1, 4, 32, 0 }; >> @@ -299,7 +298,7 @@ do_one_mempool_test(unsigned cores) >> n_get_bulk = *get_bulk_ptr; >> n_put_bulk = *put_bulk_ptr; >> n_keep = *keep_ptr; >> - ret = launch_cores(cores); >> + ret = launch_cores(mp, cores); >> >> if (ret < 0) >> return -1; >> @@ -312,26 +311,28 @@ do_one_mempool_test(unsigned cores) >> static int >> test_mempool_perf(void) >> { >> + struct rte_mempool *mp = NULL; >> + struct rte_mempool *mp_cache = NULL; >> + struct rte_mempool *mp_nocache = NULL; >> + >> rte_atomic32_init(&synchro); >> >> /* create a mempool (without cache) */ >> - if (mp_nocache == NULL) >> - mp_nocache = rte_mempool_create("perf_test_nocache", >> MEMPOOL_SIZE, >> - MEMPOOL_ELT_SIZE, 0, 0, >> - NULL, NULL, >> - my_obj_init, NULL, >> - SOCKET_ID_ANY, 0); >> + mp_nocache = rte_mempool_create("perf_test_nocache", MEMPOOL_SIZE, >> + MEMPOOL_ELT_SIZE, 0, 0, >> + NULL, NULL, >> + my_obj_init, NULL, >> + SOCKET_ID_ANY, 0); >> if (mp_nocache == NULL) >> return -1; >> >> /* create a mempool (with cache) */ >> - if (mp_cache == NULL) >> - mp_cache = rte_mempool_create("perf_test_cache", MEMPOOL_SIZE, >> - MEMPOOL_ELT_SIZE, >> - RTE_MEMPOOL_CACHE_MAX_SIZE, 0, >> - NULL, NULL, >> - my_obj_init, NULL, >> - SOCKET_ID_ANY, 0); >> + mp_cache = rte_mempool_create("perf_test_cache", MEMPOOL_SIZE, >> + MEMPOOL_ELT_SIZE, >> + RTE_MEMPOOL_CACHE_MAX_SIZE, 0, >> + NULL, NULL, >> + my_obj_init, NULL, >> + SOCKET_ID_ANY, 0); >> if (mp_cache == NULL) >> return -1; >> >> @@ -339,26 +340,26 @@ test_mempool_perf(void) >> printf("start performance test (without cache)\n"); >> mp = mp_nocache; >> >> - if (do_one_mempool_test(1) < 0) >> + if (do_one_mempool_test(mp, 1) < 0) >> return -1; > We could even do shorter: the mp variable can probably be removed, and > directly replaced by mp_nocache or mp_cache in function calls. In v4. Thanks, Santosh > > Thanks, > Olivier