From a08a5dd20e51100792a5bf55b33088837055520c Mon Sep 17 00:00:00 2001 From: Anatoly Burakov Date: Fri, 5 Jul 2019 14:10:32 +0100 Subject: [PATCH] eal: uninline wait for complete init Currently, the function to wait until config completion is static inline for no reason. Move its implementation to an EAL common file. Signed-off-by: Anatoly Burakov Acked-by: Stephen Hemminger Acked-by: David Marchand --- lib/librte_eal/common/eal_common_mcfg.c | 10 ++++++++++ lib/librte_eal/common/eal_memcfg.h | 10 +++------- lib/librte_eal/freebsd/eal/eal.c | 3 ++- lib/librte_eal/linux/eal/eal.c | 2 +- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/lib/librte_eal/common/eal_common_mcfg.c b/lib/librte_eal/common/eal_common_mcfg.c index 337890a61a..30969c6bf0 100644 --- a/lib/librte_eal/common/eal_common_mcfg.c +++ b/lib/librte_eal/common/eal_common_mcfg.c @@ -7,6 +7,16 @@ #include "eal_memcfg.h" +void +eal_mcfg_wait_complete(void) +{ + struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config; + + /* wait until shared mem_config finish initialising */ + while (mcfg->magic != RTE_MAGIC) + rte_pause(); +} + void rte_mcfg_mem_read_lock(void) { diff --git a/lib/librte_eal/common/eal_memcfg.h b/lib/librte_eal/common/eal_memcfg.h index e5b90e31d2..6c08652fe6 100644 --- a/lib/librte_eal/common/eal_memcfg.h +++ b/lib/librte_eal/common/eal_memcfg.h @@ -69,12 +69,8 @@ struct rte_mem_config { uint8_t dma_maskbits; /**< Keeps the more restricted dma mask. */ }; -static inline void -rte_eal_mcfg_wait_complete(struct rte_mem_config *mcfg) -{ - /* wait until shared mem_config finish initialising */ - while (mcfg->magic != RTE_MAGIC) - rte_pause(); -} +/* wait until primary process initialization is complete */ +void +eal_mcfg_wait_complete(void); #endif /* EAL_MEMCFG_H */ diff --git a/lib/librte_eal/freebsd/eal/eal.c b/lib/librte_eal/freebsd/eal/eal.c index a8b9b8b3a7..7840094635 100644 --- a/lib/librte_eal/freebsd/eal/eal.c +++ b/lib/librte_eal/freebsd/eal/eal.c @@ -52,6 +52,7 @@ #include "eal_filesystem.h" #include "eal_hugepages.h" #include "eal_options.h" +#include "eal_memcfg.h" #define MEMSIZE_IF_NO_HUGE_PAGE (64ULL * 1024ULL * 1024ULL) @@ -382,7 +383,7 @@ rte_config_init(void) case RTE_PROC_SECONDARY: if (rte_eal_config_attach() < 0) return -1; - rte_eal_mcfg_wait_complete(rte_config.mem_config); + eal_mcfg_wait_complete(); if (rte_eal_config_reattach() < 0) return -1; break; diff --git a/lib/librte_eal/linux/eal/eal.c b/lib/librte_eal/linux/eal/eal.c index 228d6b3ec6..03d5e71705 100644 --- a/lib/librte_eal/linux/eal/eal.c +++ b/lib/librte_eal/linux/eal/eal.c @@ -506,7 +506,7 @@ rte_config_init(void) case RTE_PROC_SECONDARY: if (rte_eal_config_attach() < 0) return -1; - rte_eal_mcfg_wait_complete(rte_config.mem_config); + eal_mcfg_wait_complete(); if (rte_eal_config_reattach() < 0) return -1; eal_update_internal_config(); -- 2.20.1