27/06/2019 13:39, Anatoly Burakov: > +/** > + * the structure for the memory configuration for the RTE. > + * Used by the rte_config structure. It is separated out, as for > multi-process > + * support, the memory details should be shared across instances > + */ > +struct rte_mem_config { > + volatile uint32_t magic; /**< Magic number - Sanity check. */ > + > + /* memory topology */ > + uint32_t nchannel; /**< Number of channels (0 if unknown). */ > + uint32_t nrank; /**< Number of ranks (0 if unknown). */ > + > + /** > + * current lock nest order > + * - qlock->mlock (ring/hash/lpm) > + * - mplock->qlock->mlock (mempool) > + * Notice: > + * *ALWAYS* obtain qlock first if having to obtain both qlock and mlock > + */ > + rte_rwlock_t mlock; /**< only used by memzone LIB for thread-safe. */ > + rte_rwlock_t qlock; /**< used for tailq operation for thread safe. */ > + rte_rwlock_t mplock; /**< only used by mempool LIB for thread-safe. */ > + > + rte_rwlock_t memory_hotplug_lock; > + /**< indicates whether memory hotplug request is in progress. */ > + > + /* memory segments and zones */ > + struct rte_fbarray memzones; /**< Memzone descriptors. */ > + > + struct rte_memseg_list memsegs[RTE_MAX_MEMSEG_LISTS]; > + /**< list of dynamic arrays holding memsegs */ > + > + struct rte_tailq_head tailq_head[RTE_MAX_TAILQ]; > + /**< Tailqs for objects */ > + > + /* Heaps of Malloc */ > + struct malloc_heap malloc_heaps[RTE_MAX_HEAPS]; > + > + /* next socket ID for external malloc heap */ > + int next_socket_id; > + > + /* address of mem_config in primary process. used to map shared config > + * into exact same address the primary process maps it. > + */ > + uint64_t mem_cfg_addr; > + > + /* legacy mem and single file segments options are shared */ > + uint32_t legacy_mem; > + uint32_t single_file_segments; > + > + /* keeps the more restricted dma mask */ > + uint8_t dma_maskbits; > +} __attribute__((packed));
While moving it, you could take the opportunity to do some small cleanups of the comments, like removing "for the RTE", or adding some uppercases and dots, etc.