mempool: dump includes list of memory chunks

Message ID 98CBD80474FA8B44BF855DF32C47DC35E9F4B4@smartserver.smartshare.dk (mailing list archive)
State Not Applicable, archived
Delegated to: Thomas Monjalon
Headers
Series mempool: dump includes list of memory chunks |

Checks

Context Check Description
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS

Commit Message

Morten Brørup May 27, 2024, 12:29 p.m. UTC
PING for review.

@Paul, @Du and @Ferruh, if you think the information provided by this patch would have been useful for your recent work with the mempool, please Review or ACK it.

-Morten


From: Morten Brørup [mailto:mb@smartsharesystems.com] 
Sent: Thursday, 16 May 2024 11.00

Added information about the memory chunks holding the objects in the
mempool when dumping the status of the mempool to a file.

Signed-off-by: Morten Brørup <mb@smartsharesystems.com>
---
 lib/mempool/rte_mempool.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

-- 
2.17.1
  

Patch

diff --git a/lib/mempool/rte_mempool.c b/lib/mempool/rte_mempool.c
index 12390a2c81..e9a8a5b411 100644
--- a/lib/mempool/rte_mempool.c
+++ b/lib/mempool/rte_mempool.c
@@ -1230,6 +1230,7 @@  rte_mempool_dump(FILE *f, struct rte_mempool *mp)
 #endif
 	struct rte_mempool_memhdr *memhdr;
 	struct rte_mempool_ops *ops;
+	unsigned int n;
 	unsigned common_count;
 	unsigned cache_count;
 	size_t mem_len = 0;
@@ -1264,6 +1265,15 @@  rte_mempool_dump(FILE *f, struct rte_mempool *mp)
 			(long double)mem_len / mp->size);
 	}
 
+	fprintf(f, "  mem_list:\n");
+	n = 0;
+	STAILQ_FOREACH(memhdr, &mp->mem_list, next) {
+		fprintf(f, "    addr[%u]=%p\n", n, memhdr->addr);
+		fprintf(f, "    iova[%u]=0x%" PRIx64 "\n", n, memhdr->iova);
+		fprintf(f, "    len[%u]=%zu\n", n, memhdr->len);
+		n++;
+	}
+
 	cache_count = rte_mempool_dump_cache(f, mp);
 	common_count = rte_mempool_ops_get_count(mp);
 	if ((cache_count + common_count) > mp->size)