mem: do not leave unmapped holes in EAL memory area
authorDariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Fri, 1 Jun 2018 12:59:19 +0000 (14:59 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 12 Jul 2018 22:25:05 +0000 (00:25 +0200)
commit637175ab95ed1dad3790a3c565fe8eaf422aa2c3
tree241cdf6561c885db2c4aeb8bd861b8822bb7eae7
parenta3783ebf7bc35cf13622e09abf12195ec34f7631
mem: do not leave unmapped holes in EAL memory area

EAL reserves a huge area in virtual address space
to provide virtual address contiguity for e.g.
future memory extensions (memory hotplug). During
memory hotplug, if the hugepage mmap succeeds but
doesn't suffice EAL's requiriments, the EAL would
unmap this mapping straight away, leaving a hole in
its virtual memory area and making it available
to everyone. As EAL still thinks it owns the entire
region, it may try to mmap it later with MAP_FIXED,
possibly overriding a user's mapping that was made
in the meantime.

This patch ensures each hole is mapped back by EAL,
so that it won't be available to anyone else.

Fixes: 582bed1e1d1d ("mem: support mapping hugepages at runtime")
Cc: stable@dpdk.org
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
lib/librte_eal/linuxapp/eal/eal_memalloc.c