> > EAL memory init allocates all free hugepages of the whole system, > > which seen from sysfs, even when applications do not ask so many. > > When there is a limitation on how many hugepages an application can > > use (such as cgroup.hugetlb), or hugetlbfs is specified with an > > option of size (exceeding the quota of the fs), it just fails to > > start even there are enough hugepages allocated. > > > > To fix above issue, this patch: > > - Changes the logic to continue memory init to see if hugetlb > > requirement of application can be addressed by already allocated > > hugepages. > > - To make sure each hugepage is allocated successfully, we add a > > recover mechanism, which relies on a mem access to fault-in > > hugepages, and if it fails with SIGBUS, recover to previously > > saved stack environment with siglongjmp(). > > > > For the case of CONFIG_RTE_EAL_SINGLE_FILE_SEGMENTS (enabled by > > default when compiling IVSHMEM target), it's indispensable to > > mapp all free hugepages in the system. Under this case, it fails > > to start when allocating fails. [...] > > Signed-off-by: Jianfeng Tan<jianfeng.tan at intel.com> > > Acked-by: Neil Horman<nhorman at tuxdriver.com> > > Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy at intel.com>
Applied, thanks