408bb168ac
The following assumes we use env_dpdk underneath. rte_mempools use rte_rings internally. When creating a mempool with capacity N, we internally try to create a ring with least N+1 size. That's because rte_rings need one extra empty element to differentiate between the full and empty state. To make it worse, the ring size has to be a power of two, so rte_mempools use `rte_align32pow2(mp->size + 1)` for the size calculation. And rte_ring memory has to be physically contiguous. Allocating a mempool of capacity 262144 requires at least (2 * 262144) * sizeof(void *) = 4MB memory. This made us require at least 2 physically contiguous 2MB hugepages. Change-Id: Iabc984a29a60c0b2cf5309a78cd1bcce28ac7b3d Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com> Reviewed-on: https://review.gerrithub.io/408925 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>