Hi Everyone, Currently every mempool created has a footprint of 1.5Megs of memory just for the struct rte_mempool, this also includes all of the rte_pktmbuf creates as well. The issue is the local_cache adds about 1.5Megs of memory, which is a huge amount IMHO for non-cached based mempools. Without the local_cache the structure is about 192bytes. You can set the config option for the cache to ?n?, but then all allocations will not use the per core cache. I have some code I will send as a patch to have the local_cache allocated only when a mempool is created and the caller has a non-zero cache size set in the call.
This will break ABI for the struct rte_mempool, but does remove some of the ifdefs for RTE_MEMPOOL_CACHE_SIZE in the code. The performance appears to be the same, but will do some more testing before I submit the patch. Please let me know if this would be reasonable or other comments. Regards, Keith