numam-dpdk/lib/librte_mempool
Anatoly Burakov 460354cd4e mempool: fix virtual address population
Currently, populate_virt will check if mempool is already populated.
This will cause inability to reserve multi-chunk mempools if
contiguous memory is not a hard requirement, because if allocating
all-contiguous memory fails, mempool will retry with virtual addresses
and will call populate_virt. It seems that the original code never
anticipated more than one non-physically contiguous area.

Fix it by removing the check in populate virt. populate_anon() function
calls populate_virt() also, and it can be reasonably inferred that it is
expecting that virtual area is not already populated. Even though a
similar check is already in place there, also add the check that was
part of populate_virt() just in case.

Fixes: aab4f62d6c ("mempool: support no hugepage mode")
Cc: stable@dpdk.org

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-05-15 16:30:14 +02:00
..
Makefile mempool: support block dequeue operation 2018-04-26 23:34:07 +02:00
meson.build mempool: support block dequeue operation 2018-04-26 23:34:07 +02:00
rte_mempool_ops_default.c mempool: deprecate xmem functions 2018-04-24 02:17:41 +02:00
rte_mempool_ops.c mempool: support block dequeue operation 2018-04-26 23:34:07 +02:00
rte_mempool_version.map lib: clear experimental version tag in linker scripts 2018-05-14 03:37:28 +02:00
rte_mempool.c mempool: fix virtual address population 2018-05-15 16:30:14 +02:00
rte_mempool.h mempool: support block dequeue operation 2018-04-26 23:34:07 +02:00