X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_mempool%2Frte_mempool.c;h=103c015e57915680314356a341160e48a987c3e8;hb=7508be4ccead7f092695d5534ab50b3b824baaad;hp=4660cc2f1f3d339c272392b79f3020ea011c3858;hpb=ba0009560c30fcd0cc350481d3877438616146e4;p=dpdk.git diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c index 4660cc2f1f..103c015e57 100644 --- a/lib/librte_mempool/rte_mempool.c +++ b/lib/librte_mempool/rte_mempool.c @@ -99,27 +99,28 @@ static unsigned optimize_object_size(unsigned obj_size) return new_obj_size * RTE_MEMPOOL_ALIGN; } +static int +find_min_pagesz(const struct rte_memseg_list *msl, void *arg) +{ + size_t *min = arg; + + if (msl->page_sz < *min) + *min = msl->page_sz; + + return 0; +} + static size_t get_min_page_size(void) { - const struct rte_mem_config *mcfg = - rte_eal_get_configuration()->mem_config; - int i; size_t min_pagesz = SIZE_MAX; - for (i = 0; i < RTE_MAX_MEMSEG; i++) { - const struct rte_memseg *ms = &mcfg->memseg[i]; - - if (ms->addr == NULL) - continue; - - if (ms->hugepage_sz < min_pagesz) - min_pagesz = ms->hugepage_sz; - } + rte_memseg_list_walk(find_min_pagesz, &min_pagesz); return min_pagesz == SIZE_MAX ? (size_t) getpagesize() : min_pagesz; } + static void mempool_add_elem(struct rte_mempool *mp, void *obj, rte_iova_t iova) {