Secondary initialization will just sync memory map with primary process. Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com> Tested-by: Santosh Shukla <santosh.shu...@caviumnetworks.com> Tested-by: Hemant Agrawal <hemant.agra...@nxp.com> ---
Notes: v3: - Improved handling of EAL hugepage info lib/librte_eal/common/eal_common_memory.c | 1 + lib/librte_eal/linuxapp/eal/eal_memory.c | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/librte_eal/common/eal_common_memory.c b/lib/librte_eal/common/eal_common_memory.c index d519f15..fe5fdfc 100644 --- a/lib/librte_eal/common/eal_common_memory.c +++ b/lib/librte_eal/common/eal_common_memory.c @@ -20,6 +20,7 @@ #include <rte_errno.h> #include <rte_log.h> +#include "eal_memalloc.h" #include "eal_private.h" #include "eal_internal_cfg.h" diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c index efa1202..7ec7129 100644 --- a/lib/librte_eal/linuxapp/eal/eal_memory.c +++ b/lib/librte_eal/linuxapp/eal/eal_memory.c @@ -1776,6 +1776,18 @@ eal_legacy_hugepage_attach(void) return -1; } +static int +eal_hugepage_attach(void) +{ + if (eal_memalloc_sync_with_primary()) { + RTE_LOG(ERR, EAL, "Could not map memory from primary process\n"); + if (aslr_enabled() > 0) + RTE_LOG(ERR, EAL, "It is recommended to disable ASLR in the kernel and retry running both primary and secondary processes\n"); + return -1; + } + return 0; +} + int rte_eal_hugepage_init(void) { @@ -1787,9 +1799,9 @@ rte_eal_hugepage_init(void) int rte_eal_hugepage_attach(void) { - if (internal_config.legacy_mem) - return eal_legacy_hugepage_attach(); - return -1; + return internal_config.legacy_mem ? + eal_legacy_hugepage_attach() : + eal_hugepage_attach(); } int -- 2.7.4