<...snipped...> > > > > @@ -155,40 +156,41 @@ rte_timer_subsystem_init_v1905(void) > > struct rte_timer_data *data; > > int i, lcore_id; > > static const char *mz_name = "rte_timer_mz"; > > + const size_t data_arr_size = > > + RTE_MAX_DATA_ELS * > sizeof(*rte_timer_data_arr); > > + bool do_full_init; > > > > if (rte_timer_subsystem_initialized) > > return -EALREADY; > > > > - if (rte_eal_process_type() != RTE_PROC_PRIMARY) { > > - mz = rte_memzone_lookup(mz_name); > > - if (mz == NULL) > > - return -EEXIST; > > +lookup: > > + mz = rte_memzone_lookup(mz_name); > > Wouldn't it be better to attempt to reserve outright, and then do a lookup on > EEXIST?
It's probably the expected order; I've made the change and submitted v2. Thanks for the review, Erik > > > + if (mz == NULL) { > > + mz = rte_memzone_reserve_aligned(mz_name, > data_arr_size, > > + SOCKET_ID_ANY, 0, RTE_CACHE_LINE_SIZE); > > + if (mz == NULL) { > > + if (rte_errno == EEXIST) > > + goto lookup; > > > > > -- > Thanks, > Anatoly