Hi Jan, On 5/23/2016 1:45 PM, Jan Viktorin wrote: > On Thu, 19 May 2016 14:45:00 +0100 > David Hunt <david.hunt at intel.com> wrote:
--snip-- >> + * Loop though all the element pointers and allocate a chunk of memory, then > s/though/through/ Fixed. >> +static struct rte_mempool_handler mempool_handler_custom = { >> + .name = "custom_handler", >> + .alloc = custom_mempool_alloc, >> + .free = custom_mempool_free, >> + .put = custom_mempool_put, >> + .get = custom_mempool_get, >> + .get_count = custom_mempool_get_count, >> +}; >> + >> +MEMPOOL_REGISTER_HANDLER(mempool_handler_custom); > What about to drop the rte_mempool_handler.name field and derive the > name from the variable name given to the MEMPOOL_REGISTER_HANDLER. > The MEMPOOL_REGISTER_HANDLER sould do some macro magic inside and call > > rte_mempool_handler_register(name, handler); > > Just an idea... Lets see if anyone else has any strong opinions on this :) >> + >> +/* >> * save the object number in the first 4 bytes of object data. All >> * other bytes are set to 0. >> */ >> @@ -479,6 +569,7 @@ test_mempool(void) >> { >> struct rte_mempool *mp_cache = NULL; >> struct rte_mempool *mp_nocache = NULL; >> + struct rte_mempool *mp_ext = NULL; >> >> rte_atomic32_init(&synchro); >> >> @@ -507,6 +598,27 @@ test_mempool(void) >> goto err; >> } >> >> + /* create a mempool with an external handler */ >> + mp_ext = rte_mempool_create_empty("test_ext", >> + MEMPOOL_SIZE, >> + MEMPOOL_ELT_SIZE, >> + RTE_MEMPOOL_CACHE_MAX_SIZE, 0, >> + SOCKET_ID_ANY, 0); >> + >> + if (mp_ext == NULL) { >> + printf("cannot allocate mp_ext mempool\n"); >> + goto err; >> + } >> + if (rte_mempool_set_handler(mp_ext, "custom_handler") < 0) { >> + printf("cannot set custom handler\n"); >> + goto err; >> + } >> + if (rte_mempool_populate_default(mp_ext) < 0) { >> + printf("cannot populate mp_ext mempool\n"); >> + goto err; >> + } >> + rte_mempool_obj_iter(mp_ext, my_obj_init, NULL); >> + > The test becomes quite complex. What about having several smaller > tests with a clear setup and cleanup steps? I guess that's something we can look at in the future. For the moment can we leave it? Thanks, Dave.