mem: improve best-effort allocation
authorAnatoly Burakov <anatoly.burakov@intel.com>
Fri, 22 Feb 2019 16:14:02 +0000 (16:14 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 28 Mar 2019 22:28:54 +0000 (23:28 +0100)
commitbec5625588d936acabc35f097b36f626d46a11c3
tree97a7e9809517487884815849b9d6597e9d33601c
parent7353ee7344b45426b921b91c56aa211ab0e58a89
mem: improve best-effort allocation

Previously, when using non-exact allocation, we were requesting
N pages to be allocated, but allowed the memory subsystem to
allocate less than requested. However, we were still expecting
to see N contigous free pages in the memseg list.

This presents a problem because there is no way to try and
allocate as many pages as possible, even if there isn't
enough contiguous free entries in the list.

To address this, use the new "find biggest" fbarray API's when
allocating non-exact number of pages. This way, we will first
check how many entries in the list are actually available, and
then try to allocate up to that number.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
lib/librte_eal/linux/eal/eal_memalloc.c