[dpdk-dev] [PATCH v5 6/9] eal: uninline wait for mcfg complete function
Anatoly Burakov
anatoly.burakov at intel.com
Fri Jul 5 19:26:24 CEST 2019
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 <anatoly.burakov at intel.com>
Acked-by: Stephen Hemminger <stephen at networkplumber.org>
Acked-by: David Marchand <david.marchand at redhat.com>
---
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 337890a61..30969c6bf 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 e5b90e31d..6c08652fe 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 71ba380e0..78022f68a 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 f974cec1c..561a4f3f3 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.17.1
More information about the dev
mailing list