Snipped > > > +struct topology_config { > > +#ifdef RTE_EAL_HWLOC_TOPOLOGY_PROBE > > + hwloc_topology_t topology; > > +#endif > > + > > + /* domain count */ > > + uint16_t l1_count; > > + uint16_t l2_count; > > + uint8_t l3_count; > > + uint8_t io_count; > > + > > + /* total cores under all domain */ > > + uint16_t l1_core_count; > > + uint16_t l2_core_count; > > + uint16_t l3_core_count; > > + uint16_t io_core_count; > > + > > + /* two dimensional array for each domain */ > > + struct core_domain_mapping **l1; > > + struct core_domain_mapping **l2; > > + struct core_domain_mapping **l3; > > + struct core_domain_mapping **io; }; extern struct > > +topology_config topo_cnfg; > > + > > To work with primary/secondary process model, it might be better to keep this > info > in hugpage/shared memory. I.e put topology_config into space allocated with > rte_malloc() and populated by primary process.
Initially we did use `rte_memzone_reserve` and moved it under `rte_cnfg structure` for primary and secondary. Exploring on the use cases we noticed in multiprocessor scenarios, lcore of the primary did not share. Hence we moved to using `malloc` as local allocator. We can easily move to rte_malloc, but do we need to share the HW topology based lcore grouping to multi-process?