> From: Mattias Rönnblom [mailto:hof...@lysator.liu.se] > Sent: Wednesday, 2 November 2022 09.01 > > On 2022-10-31 12:26, Morten Brørup wrote:
[...] > > +++ b/lib/mempool/rte_mempool.h > > @@ -86,6 +86,21 @@ struct rte_mempool_cache { > > uint32_t size; /**< Size of the cache */ > > uint32_t flushthresh; /**< Threshold before we flush excess > elements */ > > uint32_t len; /**< Current cache count */ > > + uint32_t unused0; > > +#ifdef RTE_LIBRTE_MEMPOOL_STATS > > + /* > > + * Alternative location for the most frequently updated mempool > statistics (per-lcore), > > + * providing faster update access when using a mempool cache. > > + */ > > + struct { > > + uint64_t put_bulk; /**< Number of puts. */ > > + uint64_t put_objs; /**< Number of objects > successfully put. */ > > + uint64_t get_success_bulk; /**< Successful allocation > number. */ > > + uint64_t get_success_objs; /**< Objects successfully > allocated. */ > > + } stats; /**< Statistics */ > > +#else > > + uint64_t unused1[4]; > > Are a particular DPDK version supposed to be ABI compatible with > itself, > with different configuration options? E.g., with and without > RTE_LIBRTE_MEMPOOL_STATS. Is that why you have those 4 unused > uint64_ts? Valid point: There was no ABI compatibility between with and without RTE_LIBRTE_MEMPOOL_STATS before this patch, so there is no need to add partial ABI compatibility here. The #else part of this structure should be removed. Does anyone disagree? > > +#endif