Hi Anatoly, > -----Original Message----- > From: Burakov, Anatoly > Sent: Tuesday, February 27, 2018 10:36 PM > To: dev@dpdk.org > Cc: Tan, Jianfeng > Subject: [PATCH v3 1/5] eal: add internal flag indicating init has completed > > Currently, primary process initialization is finalized by setting > the RTE_MAGIC value in the shared config. However, it is not > possible to check whether secondary process initialization has > completed. Add such a value to internal config.
A nit: "check whether secondary process initialization has completed" sounds like checking comes from another process. Does it look better, "check whether initialization has completed in secondary process"? > > Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com> Reviewed-by: Jianfeng Tan <jianfeng....@intel.com> Thanks, Jianfeng > --- > > Notes: > This patch is dependent upon earlier IPC fixes patchset [1]. > > [1] http://dpdk.org/dev/patchwork/bundle/aburakov/IPC_Fixes/ > > v3: no changes > > v2: no changes > > lib/librte_eal/common/eal_common_options.c | 1 + > lib/librte_eal/common/eal_internal_cfg.h | 2 ++ > lib/librte_eal/linuxapp/eal/eal.c | 2 ++ > 3 files changed, 5 insertions(+) > > diff --git a/lib/librte_eal/common/eal_common_options.c > b/lib/librte_eal/common/eal_common_options.c > index 9f2f8d2..0be80cb 100644 > --- a/lib/librte_eal/common/eal_common_options.c > +++ b/lib/librte_eal/common/eal_common_options.c > @@ -194,6 +194,7 @@ eal_reset_internal_config(struct internal_config > *internal_cfg) > internal_cfg->vmware_tsc_map = 0; > internal_cfg->create_uio_dev = 0; > internal_cfg->user_mbuf_pool_ops_name = NULL; > + internal_cfg->init_complete = 0; > } > > static int > diff --git a/lib/librte_eal/common/eal_internal_cfg.h > b/lib/librte_eal/common/eal_internal_cfg.h > index 1169fcc..4e2c2e6 100644 > --- a/lib/librte_eal/common/eal_internal_cfg.h > +++ b/lib/librte_eal/common/eal_internal_cfg.h > @@ -56,6 +56,8 @@ struct internal_config { > /**< user defined mbuf pool ops name */ > unsigned num_hugepage_sizes; /**< how many sizes on this > system */ > struct hugepage_info hugepage_info[MAX_HUGEPAGE_SIZES]; > + unsigned int init_complete; > + /**< indicates whether EAL has completed initialization */ > }; > extern struct internal_config internal_config; /**< Global EAL configuration. > */ > > diff --git a/lib/librte_eal/linuxapp/eal/eal.c > b/lib/librte_eal/linuxapp/eal/eal.c > index 38306bf..2ecd07b 100644 > --- a/lib/librte_eal/linuxapp/eal/eal.c > +++ b/lib/librte_eal/linuxapp/eal/eal.c > @@ -669,6 +669,8 @@ rte_eal_mcfg_complete(void) > /* ALL shared mem_config related INIT DONE */ > if (rte_config.process_type == RTE_PROC_PRIMARY) > rte_config.mem_config->magic = RTE_MAGIC; > + > + internal_config.init_complete = 1; > } > > /* > -- > 2.7.4