On 2022-11-02 10:29, Morten Brørup wrote:
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


I have no opinion on that matter, but I have another question: if you remove 'unused1', should you also remove the unused0 field?

Reply via email to